permissify 0.0.9 → 0.0.10
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.
- data/lib/generators/permissify/role/template/role.rb +1 -6
- data/lib/generators/permissify/role/template/roles.rb +1 -0
- data/lib/generators/permissify/views/template/permissions/_copy_controls.erb +1 -1
- data/lib/generators/permissify/views/template/permissions/create_response.js.erb +21 -0
- data/lib/generators/permissify/views/template/permissions/destroy_response.js.erb +5 -0
- data/lib/generators/permissify/views/template/permissions/update_response.js.erb +1 -6
- data/lib/generators/permissify/views/template/permissions_helper.rb +6 -128
- data/lib/generators/permissify/views/template/roles/_permissions_fields.erb +1 -1
- data/lib/generators/permissify/views/views_generator.rb +4 -6
- metadata +6 -8
- data/lib/generators/permissify/views/template/permissions/create_response.rjs +0 -15
- data/lib/generators/permissify/views/template/permissions/destroy_response.rjs +0 -12
- data/lib/generators/permissify/views/template/role.rb +0 -66
- data/lib/generators/permissify/views/template/roles.rb +0 -52
@@ -1,5 +1,6 @@
|
|
1
1
|
class Role < ActiveRecord::Base
|
2
2
|
DOMAIN_TYPES = %w(Admin Dealer Corporate Brand Merchant)
|
3
|
+
# DOMAIN_TYPES = %w(Admin Operations CallCenter)
|
3
4
|
include Permissify::Model
|
4
5
|
# is_paranoid
|
5
6
|
# default_scope :conditions => {:deleted_at => nil}, :order => "roles.name"
|
@@ -15,12 +16,6 @@ class Role < ActiveRecord::Base
|
|
15
16
|
class << self
|
16
17
|
include Permissify::ModelClass
|
17
18
|
include SystemFixtures::Roles
|
18
|
-
# def super_user; locate(1, 'super user'); end
|
19
|
-
# def system_admin; locate(2, 'system admin'); end
|
20
|
-
# def dealer_admin; locate(3, 'dealer admin'); end
|
21
|
-
# def corporate_admin; locate(4, 'corporate admin'); end
|
22
|
-
# def brand_admin; locate(5, 'brand admin'); end
|
23
|
-
# def merchant_admin; locate(6, 'merchant admin'); end
|
24
19
|
end
|
25
20
|
|
26
21
|
def initialize_non_permission_values
|
@@ -1,5 +1,6 @@
|
|
1
1
|
module SystemFixtures::Roles
|
2
2
|
SEEDED_ORDERED_ROLES = ['super user', 'system admin', 'dealer admin', 'corporate admin', 'brand admin', 'merchant admin']
|
3
|
+
# SEEDED_ORDERED_ROLES = ['super user', 'system admin', 'operations agent', 'call center agent']
|
3
4
|
SEED_SPECIFICATIONS = (1..SEEDED_ORDERED_ROLES.length).zip(SEEDED_ORDERED_ROLES)
|
4
5
|
|
5
6
|
def seeded?(role); role.id <= SEEDED_ORDERED_ROLES.length; end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
<%= form_for Role.new, :remote => true do |f| %>
|
2
2
|
<div id="copy_form_<%= @permissions_object.id %>" style="display:none;background-color:#fffff0;padding:3px;" class="copy_form">
|
3
|
-
|
3
|
+
<%= f.hidden_field :from, :value => @permissions_object.id %>
|
4
4
|
<%= f.text_field :name, :value => @permissions_object.name + ' copy', :maxlength => 31, :size => 17 %>
|
5
5
|
|
6
6
|
|
@@ -0,0 +1,21 @@
|
|
1
|
+
<%- if @response_message.blank? %>
|
2
|
+
$("#permissions_header").html("<%= escape_javascript(render(:partial => 'permissions/list_header')) %>");
|
3
|
+
$("#permissions").append("<%= escape_javascript(render(:partial => 'permissions/row')) %>");
|
4
|
+
$("#role_name").val("");
|
5
|
+
$("#add<%= @permissions_object.from %>_errors").hide();
|
6
|
+
$("form.new_role input#role_name").val("");
|
7
|
+
|
8
|
+
<%- if @permissions_object.from %>
|
9
|
+
$("#copy_form_<%= @permissions_object.from %>").hide();
|
10
|
+
$("#copy_link_<%= @permissions_object.from %>").show();
|
11
|
+
<%- end %>
|
12
|
+
|
13
|
+
$("#permissions_list").hide();
|
14
|
+
$("#permissions_form").html("<%= escape_javascript(render(:partial => 'permissions/form')) %>");
|
15
|
+
$("#permissions_form").show();
|
16
|
+
$("#<%= @permissions_prefix %>name").focus();
|
17
|
+
<%- else %>
|
18
|
+
$("#add<%= @permissions_object.from %>_errors").html( "<%= truncate(@response_message, :length => 253) %>");
|
19
|
+
$("#add<%= @permissions_object.from %>_errors").show();
|
20
|
+
$("#form.new_role input.role_name").focus();
|
21
|
+
<%- end %>
|
@@ -0,0 +1,5 @@
|
|
1
|
+
$("#permissions_header").html("<%= "#{permissions_group.size} #{@permissions_header}#{permissions_group.size == 1 ? '' : 's'}" %>");
|
2
|
+
$("#delete_role_<%= @permissions_object.id.to_s %>").html("DELETED");
|
3
|
+
$("#data_role_<%= @permissions_object.id.to_s %>").addClass('deletedRole');
|
4
|
+
$("#data_role_<%= @permissions_object.id.to_s %>").slideUp(3000);
|
5
|
+
// $("#errors_role_<%= @permissions_object.id.to_s %>").remove();
|
@@ -1,6 +1 @@
|
|
1
|
-
|
2
|
-
window.location = "/roles?id=<%= @permissions_object.id %>"
|
3
|
-
<%- else %>
|
4
|
-
set_page_tag page, @permissions_object
|
5
|
-
edit_model "#permissions_list", "#permissions_form", "#{@permissions_prefix}name"
|
6
|
-
<%- end %>
|
1
|
+
window.location = "/roles?id=<%= @permissions_object.id %>"
|
@@ -62,13 +62,10 @@ module PermissionsHelper
|
|
62
62
|
end
|
63
63
|
|
64
64
|
def edit_url; send("edit_#{@permissions_name}_url", :id => @permissions_object); end
|
65
|
-
def add_url; send("#{@permissions_name}s_path") ; end
|
66
|
-
def copy_url; edit_url; end # TODO : same as edit for now
|
67
65
|
def form_path; send("#{@permissions_name}_path", :id => @permissions_object.id); end
|
68
66
|
def additional_column_id(i); "ac#{i}_#{@permissions_object.id}"; end
|
69
67
|
|
70
68
|
def permissions_sections
|
71
|
-
# send("BONK_#{@permissions_name}")
|
72
69
|
{ 'role' => [ 'Tabs',
|
73
70
|
'Admin',
|
74
71
|
'Dealer Admin',
|
@@ -76,12 +73,12 @@ module PermissionsHelper
|
|
76
73
|
'Brand Admin',
|
77
74
|
'Merchant Admin'
|
78
75
|
],
|
79
|
-
'products' => [ 'Branch and Location Portals : Settings',
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
}[@permissions_name]
|
76
|
+
# 'products' => [ 'Branch and Location Portals : Settings',
|
77
|
+
# 'Branch and Location Portals : Social Media',
|
78
|
+
# 'Branch and Location Portals : Web Page',
|
79
|
+
# 'Solutions'
|
80
|
+
# ]
|
81
|
+
}[@permissions_name]
|
85
82
|
end
|
86
83
|
|
87
84
|
def models_that_have_permission
|
@@ -89,123 +86,4 @@ module PermissionsHelper
|
|
89
86
|
mthp.blank? ? 'none' : mthp
|
90
87
|
end
|
91
88
|
|
92
|
-
def copy_name
|
93
|
-
"#{@permissions_object.name} copy"
|
94
|
-
end
|
95
|
-
|
96
|
-
def destroy_message
|
97
|
-
"#{permissions_group.size} #{@permissions_header}#{permissions_group.size == 1 ? '' : 's'}<br/><div style='color:green; font-size:0.5em;'>'#{@permissions_object.name}' deleted</div>"
|
98
|
-
end
|
99
|
-
|
100
|
-
##### RJS stuff : ughhh... TODO : determine what is needed...
|
101
|
-
def set_page_tag(page, model) ; @page = page ; @page_model = model ; set_tag(model) ; end
|
102
|
-
def set_tag(model); @tag = "_#{model.class.name.titleize.downcase.gsub(' ','_')}_#{model.id}"; end
|
103
|
-
def data_tag ; tag_for 'data'; end
|
104
|
-
def delete_tag ; tag_for 'delete'; end
|
105
|
-
def errors_tag ; tag_for 'errors' ; end
|
106
|
-
def email_status_tag ; tag_for 'email_status'; end
|
107
|
-
def tag_for(t); "#{t}#{@tag}"; end
|
108
|
-
def update_list_header(header_partial, header_id=header_partial)
|
109
|
-
updated_header = render(:partial => header_partial)
|
110
|
-
@page.call '$("#' + header_id + '").html( "' + escape_javascript(updated_header) + '" );fixme'
|
111
|
-
end
|
112
|
-
|
113
|
-
def set_page_tag_and_highlight_data(page, model)
|
114
|
-
set_page_tag(page, model)
|
115
|
-
@page.visual_effect :highlight, data_tag, :duration => 1
|
116
|
-
end
|
117
|
-
|
118
|
-
def highlight_row_and_clear_add_form(table_id, add_errors_id, name_field_id)
|
119
|
-
insert_row_and_clear_add_form(table_id, add_errors_id, name_field_id)
|
120
|
-
@page.visual_effect :highlight, data_tag, :duration => 2
|
121
|
-
case name_field_id
|
122
|
-
when /create_email/
|
123
|
-
@page['#noticeExplanation'].replace_html('<h2>We will send a confirmation email to the address you entered. Click on the link in the email to activate the address and add it to your list.</h2>')
|
124
|
-
show_flash_notice_message
|
125
|
-
hide_flash_success_message
|
126
|
-
@page.show "add_email_address"
|
127
|
-
@page.hide "create_new_email"
|
128
|
-
when /create_keyword/
|
129
|
-
@page['#successExplanation'].replace_html('<h2>The keyword has been added.</h2>')
|
130
|
-
hide_flash_notice_message
|
131
|
-
show_flash_success_message
|
132
|
-
end
|
133
|
-
end
|
134
|
-
|
135
|
-
def hide_flash_error_message
|
136
|
-
@page.hide "errorExplanation"
|
137
|
-
end
|
138
|
-
|
139
|
-
def hide_flash_success_message
|
140
|
-
@page.hide "successExplanation"
|
141
|
-
end
|
142
|
-
|
143
|
-
def hide_flash_notice_message
|
144
|
-
@page.hide "noticeExplanation"
|
145
|
-
end
|
146
|
-
|
147
|
-
def show_flash_error_message
|
148
|
-
@page.show "errorExplanation"
|
149
|
-
end
|
150
|
-
|
151
|
-
def show_flash_success_message
|
152
|
-
@page.show "successExplanation"
|
153
|
-
end
|
154
|
-
|
155
|
-
def show_flash_notice_message
|
156
|
-
@page.show "noticeExplanation"
|
157
|
-
end
|
158
|
-
|
159
|
-
def insert_row_and_clear_add_form(table_id, add_errors_id, name_field_id, row_partial='row')
|
160
|
-
@page.call '$("' + table_id + '").append("' + escape_javascript(render(:partial => row_partial)) + '"); fixme'
|
161
|
-
# @page.insert_html :bottom, table_id, :partial => row_partial
|
162
|
-
@page.hide add_errors_id
|
163
|
-
@page[name_field_id].value = ''
|
164
|
-
end
|
165
|
-
|
166
|
-
def wrap_up_copy
|
167
|
-
from_id = @permissions_object.from
|
168
|
-
@page.call '$("#copy_form_' + from_id + '").hide();fixme'
|
169
|
-
@page.call '$("#copy_link_' + from_id + '").show();fixme'
|
170
|
-
end
|
171
|
-
|
172
|
-
def show_errors(error_id, field_id)
|
173
|
-
error_id = '#' + error_id + '_errors'
|
174
|
-
@page.replace_html error_id, h(truncate(@response_message, 253, "..."))
|
175
|
-
@page.show error_id
|
176
|
-
@page.visual_effect :highlight, error_id.delete('#'), :duration => 2
|
177
|
-
@page[field_id].focus.select
|
178
|
-
end
|
179
|
-
|
180
|
-
def show_model_errors
|
181
|
-
@page[errors_tag].replace_html h(truncate(@page_model.errors.full_messages.join(' '), 253, "..."))
|
182
|
-
@page.show errors_tag
|
183
|
-
@page.visual_effect :highlight, errors_tag, :duration => 1
|
184
|
-
end
|
185
|
-
|
186
|
-
def update_list_header_and_animate_delete(header_partial, delete_id_tags=[], header_id=header_partial)
|
187
|
-
update_list_header header_partial, header_id
|
188
|
-
animate_delete header_partial, delete_id_tags
|
189
|
-
end
|
190
|
-
|
191
|
-
def animate_delete(header_partial='', id_tags=[])
|
192
|
-
@page[delete_tag].replace_html '<span style="color:red"><b>DELETED</b></span>'
|
193
|
-
case header_partial
|
194
|
-
when ''
|
195
|
-
@page['#successExplanation'].replace_html('<h2>This email address has been deleted.</h2>')
|
196
|
-
when /keyword_count/
|
197
|
-
@page['#successExplanation'].replace_html('<h2>The keyword has been deleted.</h2>')
|
198
|
-
end
|
199
|
-
@page.delay(1.5) { ([data_tag, errors_tag] + id_tags).each {|id_tag| @page[id_tag].prev().prev().remove;@page[id_tag].prev().remove;@page[id_tag].remove} }
|
200
|
-
show_flash_success_message
|
201
|
-
hide_flash_notice_message
|
202
|
-
end
|
203
|
-
|
204
|
-
def edit_model(list_id, form_id, field_id, form_partial = 'form')
|
205
|
-
@page.hide list_id
|
206
|
-
@page.replace_html form_id, :partial => form_partial
|
207
|
-
@page.show form_id
|
208
|
-
@page[field_id].focus.select
|
209
|
-
end
|
210
|
-
|
211
89
|
end
|
@@ -4,12 +4,10 @@ module Permissify
|
|
4
4
|
source_root File.expand_path('../template', __FILE__)
|
5
5
|
|
6
6
|
def generate_views
|
7
|
-
copy_file "
|
8
|
-
copy_file "
|
9
|
-
|
10
|
-
directory "app/views/
|
11
|
-
|
12
|
-
empty_directory "app/views/roles"
|
7
|
+
copy_file "permissions_helper.rb", "app/helpers/permissions_helper.rb"
|
8
|
+
copy_file "roles_helper.rb", "app/helpers/roles_helper.rb"
|
9
|
+
directory "permissions", "app/views/permissions"
|
10
|
+
directory "roles", "app/views/roles"
|
13
11
|
end
|
14
12
|
end
|
15
13
|
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: 11
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 10
|
10
|
+
version: 0.0.10
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Frederick Fix
|
@@ -48,7 +48,7 @@ dependencies:
|
|
48
48
|
version: "3.2"
|
49
49
|
type: :development
|
50
50
|
version_requirements: *id002
|
51
|
-
description:
|
51
|
+
description: A not so simple authorization solution for Rails.
|
52
52
|
email: rickfix80004@gmail.com
|
53
53
|
executables: []
|
54
54
|
|
@@ -86,16 +86,14 @@ files:
|
|
86
86
|
- lib/generators/permissify/views/template/permissions/_permission_category.erb
|
87
87
|
- lib/generators/permissify/views/template/permissions/_row.erb
|
88
88
|
- lib/generators/permissify/views/template/permissions/_section.html.erb
|
89
|
-
- lib/generators/permissify/views/template/permissions/create_response.
|
90
|
-
- lib/generators/permissify/views/template/permissions/destroy_response.
|
89
|
+
- lib/generators/permissify/views/template/permissions/create_response.js.erb
|
90
|
+
- lib/generators/permissify/views/template/permissions/destroy_response.js.erb
|
91
91
|
- lib/generators/permissify/views/template/permissions/edit_response.js.erb
|
92
92
|
- lib/generators/permissify/views/template/permissions/index.html.erb
|
93
93
|
- lib/generators/permissify/views/template/permissions/update_response.js.erb
|
94
94
|
- lib/generators/permissify/views/template/permissions_helper.rb
|
95
|
-
- lib/generators/permissify/views/template/role.rb
|
96
95
|
- lib/generators/permissify/views/template/roles/_additional_index_columns.erb
|
97
96
|
- lib/generators/permissify/views/template/roles/_permissions_fields.erb
|
98
|
-
- lib/generators/permissify/views/template/roles.rb
|
99
97
|
- lib/generators/permissify/views/template/roles_helper.rb
|
100
98
|
- lib/generators/permissify/views/USAGE
|
101
99
|
- lib/generators/permissify/views/views_generator.rb
|
@@ -1,15 +0,0 @@
|
|
1
|
-
set_page_tag page, @permissions_object
|
2
|
-
if @response_message.blank?
|
3
|
-
update_list_header 'permissions/list_header', 'permissions_header'
|
4
|
-
page.call '$("#permissions").append("' + escape_javascript(render(:partial => 'permissions/row')) + '"); fixme'
|
5
|
-
page.call '$("#role_name").val("");fixme'
|
6
|
-
|
7
|
-
# wrap_up_copy if @permissions_object.from
|
8
|
-
|
9
|
-
page.call '$("#permissions_list").hide();fixme'
|
10
|
-
page.call '$("#permissions_form").html("' + escape_javascript(render(:partial => 'permissions/form')) + '"); fixme'
|
11
|
-
page.call '$("#permissions_form").show();fixme'
|
12
|
-
page.call '$("#' + @permissions_prefix + 'name").focus();fixme'
|
13
|
-
else
|
14
|
-
show_errors "add#{@permissions_object.from}", "create_name#{@permissions_object.from}"
|
15
|
-
end
|
@@ -1,12 +0,0 @@
|
|
1
|
-
if @permissions_object.destroyed?
|
2
|
-
new_count = escape_javascript(destroy_message)
|
3
|
-
header = '$("#permissions_header").html("' + new_count + '")'
|
4
|
-
page.call("#{header};fixme");
|
5
|
-
remove_row = '$("#data_role_' + @permissions_object.id.to_s + '").remove()'
|
6
|
-
page.call("#{remove_row};fixme")
|
7
|
-
remove_errors = '$("#errors_role_' + @permissions_object.id.to_s + '").remove()'
|
8
|
-
page.call("#{remove_errors};fixme")
|
9
|
-
else
|
10
|
-
# set_page_tag_and_highlight_data page, @permissions_object
|
11
|
-
show_model_errors
|
12
|
-
end
|
@@ -1,66 +0,0 @@
|
|
1
|
-
class Role < ActiveRecord::Base
|
2
|
-
DOMAIN_TYPES = %w(Admin Dealer Corporate Brand Merchant)
|
3
|
-
include Permissify::Model
|
4
|
-
# is_paranoid
|
5
|
-
# default_scope :conditions => {:deleted_at => nil}, :order => "roles.name"
|
6
|
-
has_and_belongs_to_many :users
|
7
|
-
validates_presence_of :name, :domain_type
|
8
|
-
validates_uniqueness_of :name
|
9
|
-
before_create :initialize_permissions
|
10
|
-
before_validation :initialize_non_permission_values
|
11
|
-
serialize :permissions
|
12
|
-
serialize :can_manage_roles
|
13
|
-
after_save :propagate_managed_by
|
14
|
-
|
15
|
-
class << self
|
16
|
-
include Permissify::ModelClass
|
17
|
-
include SystemFixtures::Roles
|
18
|
-
# def super_user; locate(1, 'super user'); end
|
19
|
-
# def system_admin; locate(2, 'system admin'); end
|
20
|
-
# def dealer_admin; locate(3, 'dealer admin'); end
|
21
|
-
# def corporate_admin; locate(4, 'corporate admin'); end
|
22
|
-
# def brand_admin; locate(5, 'brand admin'); end
|
23
|
-
# def merchant_admin; locate(6, 'merchant admin'); end
|
24
|
-
end
|
25
|
-
|
26
|
-
def initialize_non_permission_values
|
27
|
-
establish_from_permissions_model.nil? ? default_non_permissions_values : copy_non_permissions_values
|
28
|
-
end
|
29
|
-
|
30
|
-
def default_non_permissions_values
|
31
|
-
self.can_manage_roles ||= []
|
32
|
-
self.domain_type = DOMAIN_TYPES.last if self.domain_type.blank?
|
33
|
-
self.name = self.name.gsub("'","")
|
34
|
-
end
|
35
|
-
|
36
|
-
def copy_non_permissions_values
|
37
|
-
self.domain_type = self.from_permissions_model.domain_type
|
38
|
-
self.managed_by = self.from_permissions_model.managed_by
|
39
|
-
self.can_manage_roles = self.from_permissions_model.can_manage_roles
|
40
|
-
end
|
41
|
-
|
42
|
-
def manages_roles
|
43
|
-
return [] if quoted_role_names.blank?
|
44
|
-
self.class.find(:all, :conditions => ["name in (#{quoted_role_names})"], :order => :name)
|
45
|
-
end
|
46
|
-
|
47
|
-
def remove(permissions_list); permissions_list.each{|permission| self.permissions.delete(permission)}; save; end
|
48
|
-
|
49
|
-
def quoted_role_names; self.can_manage_roles.collect{|n| "'#{n}'"}.join(', ') rescue []; end
|
50
|
-
|
51
|
-
def managed_by=(role_name_list); @managed_by = role_name_list; end
|
52
|
-
def managed_by
|
53
|
-
@managed_by ||= Role.all.select{|r| r.can_manage_roles.include?(self.name)}.collect(&:name)
|
54
|
-
end
|
55
|
-
|
56
|
-
def propagate_managed_by
|
57
|
-
Role.all.each{ |r| r.update_manages_roles(managed_by.include?(r.name), self.name) } unless @managed_by.nil?
|
58
|
-
end
|
59
|
-
|
60
|
-
def update_manages_roles(manages_role_name, role_name)
|
61
|
-
old = self.manages_roles
|
62
|
-
old = [] if old.blank?
|
63
|
-
new_value = manages_role_name ? old | [role_name] : old - [role_name]
|
64
|
-
update_attribute(:can_manage_roles, new_value) if old != new_value
|
65
|
-
end
|
66
|
-
end
|
@@ -1,52 +0,0 @@
|
|
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 <= SEEDED_ORDERED_ROLES.length; 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
|
25
|
-
end
|
26
|
-
def system_admin_permissions
|
27
|
-
@@permissions = Ability.create_permissions_hash 'roles'
|
28
|
-
end
|
29
|
-
def dealer_admin_permissions
|
30
|
-
@@permissions = Ability.create_permissions_hash( [], %w(roles admin))
|
31
|
-
remove %w(tabs_admin)
|
32
|
-
end
|
33
|
-
|
34
|
-
def corporate_admin_permissions
|
35
|
-
msa_permissions %w(corporate_portal_create brand_portal_create)
|
36
|
-
end
|
37
|
-
def brand_admin_permissions
|
38
|
-
msa_permissions %w(corporate brand_portal_create brand_portal_update)
|
39
|
-
remove %w(tabs_corporate)
|
40
|
-
end
|
41
|
-
def merchant_admin_permissions
|
42
|
-
msa_permissions %w(corporate brand)
|
43
|
-
remove %w(tabs_brand tabs_corporate)
|
44
|
-
end
|
45
|
-
def msa_permissions(exclude_abilities)
|
46
|
-
no_abilities = exclude_abilities + %w(admin roles dealer)
|
47
|
-
@@permissions = Ability.create_permissions_hash([], no_abilities)
|
48
|
-
remove %w(tabs_admin tabs_dealer)
|
49
|
-
end
|
50
|
-
|
51
|
-
def remove(permissions); permissions.each{|permission| @@permissions.delete(permission.to_s)}; @@permissions; end
|
52
|
-
end
|