From 0d7cead4790555d8e0f792fc36ca6173865d100a Mon Sep 17 00:00:00 2001 From: Eric Davis Date: Sun, 22 Aug 2010 19:49:26 +0000 Subject: [PATCH] Merged r4013 from trunk. git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.0-stable@4025 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- config/settings.yml | 2 ++ ...dar_and_gantt_modules_where_appropriate.rb | 12 +++++++ lib/redmine.rb | 11 +++++-- test/fixtures/enabled_modules.yml | 32 +++++++++++++++++++ test/unit/lib/redmine_test.rb | 4 ++- 5 files changed, 57 insertions(+), 4 deletions(-) create mode 100644 db/migrate/20100819172912_enable_calendar_and_gantt_modules_where_appropriate.rb diff --git a/config/settings.yml b/config/settings.yml index 1e905ede..d07261f8 100644 --- a/config/settings.yml +++ b/config/settings.yml @@ -150,6 +150,8 @@ default_projects_modules: - wiki - repository - boards + - calendar + - gantt # Role given to a non-admin user who creates a project new_project_user_role_id: format: int diff --git a/db/migrate/20100819172912_enable_calendar_and_gantt_modules_where_appropriate.rb b/db/migrate/20100819172912_enable_calendar_and_gantt_modules_where_appropriate.rb new file mode 100644 index 00000000..416607b4 --- /dev/null +++ b/db/migrate/20100819172912_enable_calendar_and_gantt_modules_where_appropriate.rb @@ -0,0 +1,12 @@ +class EnableCalendarAndGanttModulesWhereAppropriate < ActiveRecord::Migration + def self.up + EnabledModule.find(:all, :conditions => ["name = ?", 'issue_tracking']).each do |e| + EnabledModule.create(:name => 'calendar', :project_id => e.project_id) + EnabledModule.create(:name => 'gantt', :project_id => e.project_id) + end + end + + def self.down + EnabledModule.delete_all("name = 'calendar' OR name = 'gantt'") + end +end diff --git a/lib/redmine.rb b/lib/redmine.rb index dc18ca28..08d17fa0 100644 --- a/lib/redmine.rb +++ b/lib/redmine.rb @@ -76,9 +76,6 @@ Redmine::AccessControl.map do |map| # Queries map.permission :manage_public_queries, {:queries => [:new, :edit, :destroy]}, :require => :member map.permission :save_queries, {:queries => [:new, :edit, :destroy]}, :require => :loggedin - # Gantt & calendar - map.permission :view_gantt, :gantts => :show - map.permission :view_calendar, :calendars => :show # Watchers map.permission :view_issue_watchers, {} map.permission :add_issue_watchers, {:watchers => :new} @@ -137,6 +134,14 @@ Redmine::AccessControl.map do |map| map.permission :delete_messages, {:messages => :destroy}, :require => :member map.permission :delete_own_messages, {:messages => :destroy}, :require => :loggedin end + + map.project_module :calendar do |map| + map.permission :view_calendar, :calendars => :show + end + + map.project_module :gantt do |map| + map.permission :view_gantt, :gantts => :show + end end Redmine::MenuManager.map :top_menu do |menu| diff --git a/test/fixtures/enabled_modules.yml b/test/fixtures/enabled_modules.yml index 0a83168d..5f2ba63d 100644 --- a/test/fixtures/enabled_modules.yml +++ b/test/fixtures/enabled_modules.yml @@ -63,3 +63,35 @@ enabled_modules_016: name: boards project_id: 2 id: 16 +enabled_modules_017: + name: calendar + project_id: 1 + id: 17 +enabled_modules_018: + name: gantt + project_id: 1 + id: 18 +enabled_modules_019: + name: calendar + project_id: 2 + id: 19 +enabled_modules_020: + name: gantt + project_id: 2 + id: 20 +enabled_modules_021: + name: calendar + project_id: 3 + id: 21 +enabled_modules_022: + name: gantt + project_id: 3 + id: 22 +enabled_modules_023: + name: calendar + project_id: 5 + id: 23 +enabled_modules_024: + name: gantt + project_id: 5 + id: 24 diff --git a/test/unit/lib/redmine_test.rb b/test/unit/lib/redmine_test.rb index 2d32abdc..5fdf0554 100644 --- a/test/unit/lib/redmine_test.rb +++ b/test/unit/lib/redmine_test.rb @@ -62,12 +62,14 @@ class RedmineTest < ActiveSupport::TestCase end def test_project_menu - assert_number_of_items_in_menu :project_menu, 12 + assert_number_of_items_in_menu :project_menu, 14 assert_menu_contains_item_named :project_menu, :overview assert_menu_contains_item_named :project_menu, :activity assert_menu_contains_item_named :project_menu, :roadmap assert_menu_contains_item_named :project_menu, :issues assert_menu_contains_item_named :project_menu, :new_issue + assert_menu_contains_item_named :project_menu, :calendar + assert_menu_contains_item_named :project_menu, :gantt assert_menu_contains_item_named :project_menu, :news assert_menu_contains_item_named :project_menu, :documents assert_menu_contains_item_named :project_menu, :wiki