12345678910111213141516171819202122232425262728293031323334353637 |
- # Copyright (C) 2012-2024 Zammad Foundation, https://zammad-foundation.org/
- class RoleSignupColumnFix < ActiveRecord::Migration[5.2]
- def change
- # return if it's a new setup
- return if !Setting.exists?(name: 'system_init_done')
- if !column_exists?(:permissions, :allow_signup)
- add_column :permissions, :allow_signup, :boolean, null: false, default: false
- end
- Permission.reset_column_information
- signup_permissions = [
- 'user_preferences',
- 'user_preferences.password',
- 'user_preferences.notifications',
- 'user_preferences.access_token',
- 'user_preferences.language',
- 'user_preferences.linked_accounts',
- 'user_preferences.device',
- 'user_preferences.avatar',
- 'user_preferences.calendar',
- 'user_preferences.out_of_office',
- 'ticket.customer',
- ]
- Permission.where(name: signup_permissions).update(allow_signup: true)
- Role.where(default_at_signup: true).find_each do |role|
- role.permissions.where.not(name: signup_permissions).find_each do |permission|
- role.permission_revoke(permission.name)
- end
- end
- end
- end
|