summaryrefslogtreecommitdiffstats
path: root/db/migrate/20150208105930_replace_move_issues_permission.rb
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2015-02-08 10:20:53 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2015-02-08 10:20:53 +0000
commit01f673be08be68247b72a8954379b3f0c7a9a9d3 (patch)
tree866383ef7f9e0e2b9fe73aee4f6dea417602d692 /db/migrate/20150208105930_replace_move_issues_permission.rb
parent92cdae49199e6e8cc26408d0bbeea1466e7189c6 (diff)
downloadredmine-01f673be08be68247b72a8954379b3f0c7a9a9d3.tar.gz
redmine-01f673be08be68247b72a8954379b3f0c7a9a9d3.zip
Removed :move_issues permission (#18855).
This permission was wrongly used to allow bulk issue copy. To prevent user from moving an issue to another project, the project field should now be set to read-only in the workflow permissions. A migration does this automatically for roles that have the edit_issues permission without having the move_issues permission. git-svn-id: http://svn.redmine.org/redmine/trunk@13981 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'db/migrate/20150208105930_replace_move_issues_permission.rb')
-rw-r--r--db/migrate/20150208105930_replace_move_issues_permission.rb18
1 files changed, 18 insertions, 0 deletions
diff --git a/db/migrate/20150208105930_replace_move_issues_permission.rb b/db/migrate/20150208105930_replace_move_issues_permission.rb
new file mode 100644
index 000000000..79ed506bc
--- /dev/null
+++ b/db/migrate/20150208105930_replace_move_issues_permission.rb
@@ -0,0 +1,18 @@
+class ReplaceMoveIssuesPermission < ActiveRecord::Migration
+ def self.up
+ Role.all.each do |role|
+ if role.has_permission?(:edit_issues) && !role.has_permission?(:move_issues)
+ # inserts one ligne per trakcer and status
+ WorkflowPermission.connection.insert_sql(
+ "INSERT INTO #{WorkflowPermission.table_name} (tracker_id, old_status_id, role_id, type, field_name, rule)" +
+ " SELECT t.id, s.id, #{role.id}, 'WorkflowPermission', 'project_id', 'readonly'" +
+ " FROM #{Tracker.table_name} t, #{IssueStatus.table_name} s"
+ )
+ end
+ end
+ end
+
+ def self.down
+ raise IrreversibleMigration
+ end
+end