1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- module AutoWizard
- =begin
- creates or updates Users, EmailAddresses and sets Settings based on the 'auto_wizard.json' file placed in the root directory.
- there is an example file 'contrib/auto_wizard_example.json'
- AutoWizard.setup
- returns
- the first created User if a 'auto_wizard.json' file was found and processed, containing at least one entry in Users
- the User with id 1 (NULL) if a 'auto_wizard.json' file was found and processed, containing no Users
- nil if no 'auto_wizard.json' file was found
- =end
- def self.setup
- auto_wizard_file_name = 'auto_wizard.json'
- auto_wizard_file_name = "#{Rails.root.to_s}/#{auto_wizard_file_name}"
- return if !File.file?(auto_wizard_file_name)
- auto_wizard_file = File.read(auto_wizard_file_name)
- auto_wizard_hash = JSON.parse(auto_wizard_file)
- admin_user = User.find( 1 )
- # create Users
- if auto_wizard_hash['Users']
- roles = Role.where( name: ['Agent', 'Admin'] )
- groups = Group.all
- auto_wizard_hash['Users'].each { |user_data|
- user_data_symbolized = user_data.symbolize_keys
- user_data_symbolized = user_data_symbolized.merge(
- {
- active: true,
- roles: roles,
- groups: groups,
- updated_by_id: admin_user.id,
- created_by_id: admin_user.id
- }
- )
- created_user = User.create_or_update(
- user_data_symbolized
- )
- # use first created user as admin
- next if admin_user.id != 1
- admin_user = created_user
- }
- end
- # set Settings
- if auto_wizard_hash['Settings']
- auto_wizard_hash['Settings'].each { |setting_data|
- Setting.set( setting_data['name'], setting_data['value'] )
- }
- end
- # add EmailAddresses
- if auto_wizard_hash['EmailAddresses']
- auto_wizard_hash['EmailAddresses'].each { |email_address_data|
- email_address_data_symbolized = email_address_data.symbolize_keys
- email_address_data_symbolized = email_address_data_symbolized.merge(
- {
- updated_by_id: admin_user.id,
- created_by_id: admin_user.id
- }
- )
- EmailAddress.create_if_not_exists(
- email_address_data_symbolized
- )
- }
- end
- admin_user
- end
- end
|