permissify 0.0.6 → 0.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -5,11 +5,8 @@ module Permissify
5
5
 
6
6
  def generate_role
7
7
  copy_file "role.rb", "app/models/role.rb"
8
- # also make the following?
9
- # d app/models/system_fixtures
10
- # f app/models/system_fixtures/roles.rb
11
- # d app/models/permissions
12
- # f app/models/permissions/roles.rb
8
+ empty_directory "app/models/system_fixtures"
9
+ copy_file "roles.rb", "app/models/system_fixtures/roles.rb"
13
10
  end
14
11
  end
15
12
  end
@@ -0,0 +1,93 @@
1
+ module SystemFixtures::Roles
2
+ SEEDED_ORDERED_ROLES = ['super user', 'system admin', 'dealer admin', 'corporate admin', 'brand admin', 'merchant admin']
3
+ SEED_SPECIFICATIONS = (1..SEEDED_ORDERED_ROLES.length).zip(SEEDED_ORDERED_ROLES)
4
+
5
+ def seeded?(role); role.id < 7; end
6
+ def seed; create_seeds :roles, SEED_SPECIFICATIONS; end
7
+
8
+ def create_super_user; create_with(1, SEEDED_ORDERED_ROLES, 'Admin') ; end
9
+ def create_system_admin; create_with(2, SEEDED_ORDERED_ROLES[1..5], 'Admin') ; end
10
+ def create_dealer_admin; create_with(3, SEEDED_ORDERED_ROLES[2..5], 'Dealer') ; end
11
+ def create_corporate_admin; create_with(4, SEEDED_ORDERED_ROLES[3..5], 'Corporate') ; end
12
+ def create_brand_admin; create_with(5, ['Merchant'], 'Brand') ; end
13
+ def create_merchant_admin; create_with(6, ['Merchant'], 'Merchant') ; end
14
+
15
+ def create_with(id, other_roles, domain_type)
16
+ role = create_with_id(:role, id, SEED_SPECIFICATIONS.assoc(id)[1])
17
+ role.can_manage_roles = other_roles
18
+ role.domain_type = domain_type
19
+ role.save
20
+ role
21
+ end
22
+
23
+ def super_user_permissions
24
+ @@permissions = Ability.create_permissions_hash # %w(loyalty_id)
25
+ select_gm_application_role
26
+ select_oo_role
27
+ select_egift_permissions :admin, %w(salespageoption giftcards emailcampaign systemvariables sitecontent iprestriction search)
28
+ remove %w(opt_in_opt_out_opt_in)
29
+ end
30
+ def system_admin_permissions
31
+ @@permissions = Ability.create_permissions_hash %w(product_configurations roles_and_permissions marketing_campaign_templates ps_marketing loyalty_id)
32
+ select_gm_application_role
33
+ select_oo_role
34
+ select_egift_permissions :staff, %w(salespageoption giftcards emailcampaign systemvariables sitecontent iprestriction search)
35
+ remove %w(opt_in_opt_out_opt_in)
36
+ end
37
+ def dealer_admin_permissions
38
+ @@permissions = Ability.create_permissions_hash(
39
+ %w(reservation_book shoutout marketing_campaigns restaurant_exception_days restaurant_messaging_and_notifications social_media_posts email sms landing_pages loyalty_id),
40
+ %w(product_configurations roles_and_permissions marketing_campaign_templates ps_marketing store_id branch_zoura brand_zoura corporate_zoura offers_and_incentives))
41
+ remove %w(email_limit sms_send opt_in_opt_out_opt_in transactional_templates administrative_settings_update)
42
+ remove %w(transactional_templates_updatemerchant transactional_templates_view marketing_campaign_templates_view marketing_campaign_templates_update)
43
+ select_gm_application_role nil
44
+ select_oo_role
45
+ select_egift_permissions :staff, []
46
+ end
47
+
48
+ def corporate_admin_permissions
49
+ msa_permissions %w(corporate_portal_create brand_portal_create)
50
+ select_gm_application_role
51
+ select_oo_role
52
+ select_view_only_loyalty_id
53
+ end
54
+ def brand_admin_permissions
55
+ msa_permissions %w(corporate brand_portal_create brand_portal_update)
56
+ select_gm_application_role
57
+ select_oo_role
58
+ select_view_only_loyalty_id
59
+ end
60
+ def merchant_admin_permissions
61
+ msa_permissions %w(restaurant_dashboard corporate brand)
62
+ select_gm_application_role
63
+ select_oo_role :reportmanager
64
+ select_view_only_loyalty_id
65
+ remove %w(report_manager_user_rights_consoleuser report_manager_user_rights_voidorder report_manager_user_rights_transferorder pos_api_key_generate)
66
+ end
67
+ def msa_permissions(exclude_abilities)
68
+ no_abilities = exclude_abilities + %w(product_types product_configurations roles_and_permissions marketing_campaign_templates ps_marketing dealer_user_management store_id branch_zoura brand_zoura corporate_zoura transactional_templates administrative_settings_update loyalty_id)
69
+ @@permissions = Ability.create_permissions_hash([], no_abilities)
70
+ select_egift_permissions :merchant, []
71
+ end
72
+
73
+ def select_view_only_loyalty_id(role = :storeadmin)
74
+ select :loyalty_id, %w(create update delete), role
75
+ end
76
+ def select_gm_application_role(role = :storeadmin)
77
+ select :gm_application_roles, %w(applicationadmin storeadmin brandadmin host), role
78
+ end
79
+ def select_oo_role(role = :merchantmanager)
80
+ select :oo_roles, %w(merchantmanager reportmanager callcenteremployee), role
81
+ remove [:report_manager_user_rights_mercurypaymentsedit] if role == :merchantmanager
82
+ end
83
+ def select_egift_permissions(role = :staff, rights = %w(salespageoption giftcards emailcampaign systemvariables sitecontent iprestriction))
84
+ select :egift_roles, %w(admin staff merchant), role
85
+ select :egift_rights, %w(salespageoption giftcards emailcampaign systemvariables sitecontent iprestriction paymentconfiguration newmerchant reports search), rights
86
+ end
87
+ def select(category, options, selected)
88
+ selected = [selected.to_s] unless selected.kind_of?(Array)
89
+ remove((options - selected).collect{|permission_option| "#{category}_#{permission_option}"})
90
+ end
91
+
92
+ def remove(permissions); permissions.each{|permission| @@permissions.delete(permission.to_s)}; @@permissions; end
93
+ end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: permissify
3
3
  version: !ruby/object:Gem::Version
4
- hash: 19
4
+ hash: 17
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 6
10
- version: 0.0.6
9
+ - 7
10
+ version: 0.0.7
11
11
  platform: ruby
12
12
  authors:
13
13
  - Frederick Fix
@@ -72,6 +72,7 @@ files:
72
72
  - lib/generators/permissify/product/USAGE
73
73
  - lib/generators/permissify/role/role_generator.rb
74
74
  - lib/generators/permissify/role/template/role.rb
75
+ - lib/generators/permissify/role/template/roles.rb
75
76
  - lib/generators/permissify/role/USAGE
76
77
  - lib/permissify/aggregate.rb
77
78
  - lib/permissify/controller.rb