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
|
-
|
9
|
-
|
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:
|
4
|
+
hash: 17
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
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
|