diff --git a/config/settings.yml b/config/settings.yml index 1e905ede3..d07261f8f 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 000000000..416607b43 --- /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 dc18ca280..08d17fa00 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 0a83168df..5f2ba63d1 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 2d32abdcb..5fdf05540 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