summaryrefslogtreecommitdiffstats
path: root/db/migrate/20150208105930_replace_move_issues_permission.rb
blob: d9ccb486a634cdd7581aac1c83c39a79048995a2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class ReplaceMoveIssuesPermission < ActiveRecord::Migration[4.2]
  def self.up
    Role.all.each do |role|
      if role.has_permission?(:edit_issues) && !role.has_permission?(:move_issues)
        # inserts one line per tracker and status
        rule = WorkflowPermission.connection.quote_column_name('rule') # rule is a reserved keyword in SQLServer
        WorkflowPermission.connection.execute(
          "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