summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--config/settings.yml2
-rw-r--r--db/migrate/20100819172912_enable_calendar_and_gantt_modules_where_appropriate.rb12
-rw-r--r--lib/redmine.rb11
-rw-r--r--test/fixtures/enabled_modules.yml32
-rw-r--r--test/unit/lib/redmine_test.rb4
5 files changed, 57 insertions, 4 deletions
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