Revision 1a6e0963
Added by Marek Hulán about 10 years ago
db/migrate/20140219183343_migrate_permissions.rb | ||
---|---|---|
class MigratePermissions < ActiveRecord::Migration
|
||
def self.up
|
||
if old_permissions_present
|
||
make_sure_all_permissions_are_present
|
||
migrate_roles
|
||
migrate_user_filters
|
||
|
||
... | ... | |
end
|
||
end
|
||
|
||
# STEP 0 - add missing permissions to DB
|
||
# some engines could have defined new permissions during their initialization
|
||
# but permissions table hadn't existed yet so we check all registered
|
||
# permissions and create those that are missing in database
|
||
def self.make_sure_all_permissions_are_present
|
||
engine_permissions = Foreman::AccessControl.permissions.select { |p| p.engine.present? }
|
||
engine_permissions.each do |permission|
|
||
FakePermission.find_or_create_by_name_and_resource_type(permission.name, permission.resource_type)
|
||
end
|
||
end
|
||
|
||
# STEP 1 - migrate roles
|
||
# for all role permissions we'll create unlimited filters
|
||
# we'll group permissions into filters by their resource
|
Also available in: Unified diff
Fixes #5689 - Plugin permissions are migrated too