permissify 0.0.11 → 0.0.12
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/controller/template/permissions_controller.rb +1 -3
- data/lib/generators/permissify/role/template/role.rb +5 -29
- data/lib/generators/permissify/role/template/roles.rb +16 -9
- data/lib/generators/permissify/views/template/permissions/_add_form.erb +1 -1
- data/lib/generators/permissify/views/template/permissions/_form.erb +1 -1
- data/lib/generators/permissify/views/template/roles/_permissions_fields.erb +8 -4
- data/lib/generators/permissify/views/template/roles_helper.rb +0 -1
- metadata +4 -4
@@ -38,10 +38,8 @@ class PermissionsController < ApplicationController
|
|
38
38
|
class_attributes ||= {}
|
39
39
|
# @saved = @permissions_object.update_attributes class_attributes.merge(permission_attributes)
|
40
40
|
attrs = class_attributes.merge(permission_attributes)
|
41
|
-
@permissions_object.domain_type = attrs[:domain_type]
|
42
|
-
@permissions_object.managed_by = attrs[:managed_by]
|
43
|
-
@permissions_object.can_manage_roles = attrs[:can_manage_roles]
|
44
41
|
@permissions_object.permissions = attrs[:permissions]
|
42
|
+
set_permissions_object_specific_values(attrs)
|
45
43
|
# @permissions_object.attributes = class_attributes.merge(permission_attributes)
|
46
44
|
@saved = @permissions_object.save
|
47
45
|
js_response
|
@@ -10,9 +10,9 @@ class Role < ActiveRecord::Base
|
|
10
10
|
before_create :initialize_permissions
|
11
11
|
before_validation :initialize_non_permission_values
|
12
12
|
serialize :permissions
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
has_and_belongs_to_many :managers, :class_name => 'Role', :join_table => :manages_roles, :association_foreign_key => :manage_id, :foreign_key => :role_id
|
14
|
+
has_and_belongs_to_many :manages, :class_name => 'Role', :join_table => :manages_roles, :association_foreign_key => :role_id, :foreign_key => :manage_id
|
15
|
+
|
16
16
|
class << self
|
17
17
|
include Permissify::ModelClass
|
18
18
|
include SystemFixtures::Roles
|
@@ -23,39 +23,15 @@ class Role < ActiveRecord::Base
|
|
23
23
|
end
|
24
24
|
|
25
25
|
def default_non_permissions_values
|
26
|
-
self.can_manage_roles ||= []
|
27
26
|
self.domain_type = DOMAIN_TYPES.last if self.domain_type.blank?
|
28
27
|
self.name = self.name.gsub("'","")
|
29
28
|
end
|
30
29
|
|
31
30
|
def copy_non_permissions_values
|
32
31
|
self.domain_type = self.from_permissions_model.domain_type
|
33
|
-
self.
|
34
|
-
self.
|
35
|
-
end
|
36
|
-
|
37
|
-
def manages_roles
|
38
|
-
return [] if quoted_role_names.blank?
|
39
|
-
self.class.find(:all, :conditions => ["name in (#{quoted_role_names})"], :order => :name)
|
32
|
+
self.managers = self.from_permissions_model.managers
|
33
|
+
self.manages = self.from_permissions_model.manages
|
40
34
|
end
|
41
35
|
|
42
36
|
def remove(permissions_list); permissions_list.each{|permission| self.permissions.delete(permission)}; save; end
|
43
|
-
|
44
|
-
def quoted_role_names; self.can_manage_roles.collect{|n| "'#{n}'"}.join(', ') rescue []; end
|
45
|
-
|
46
|
-
def managed_by=(role_name_list); @managed_by = role_name_list; end
|
47
|
-
def managed_by
|
48
|
-
@managed_by ||= Role.all.select{|r| r.can_manage_roles.include?(self.name)}.collect(&:name)
|
49
|
-
end
|
50
|
-
|
51
|
-
def propagate_managed_by
|
52
|
-
Role.all.each{ |r| r.update_manages_roles(managed_by.include?(r.name), self.name) } unless @managed_by.nil?
|
53
|
-
end
|
54
|
-
|
55
|
-
def update_manages_roles(manages_role_name, role_name)
|
56
|
-
old = self.manages_roles
|
57
|
-
old = [] if old.blank?
|
58
|
-
new_value = manages_role_name ? old | [role_name] : old - [role_name]
|
59
|
-
update_attribute(:can_manage_roles, new_value) if old != new_value
|
60
|
-
end
|
61
37
|
end
|
@@ -4,18 +4,25 @@ module SystemFixtures::Roles
|
|
4
4
|
SEED_SPECIFICATIONS = (1..SEEDED_ORDERED_ROLES.length).zip(SEEDED_ORDERED_ROLES)
|
5
5
|
|
6
6
|
def seeded?(role); role.id <= SEEDED_ORDERED_ROLES.length; end
|
7
|
-
def seed
|
7
|
+
def seed
|
8
|
+
create_seeds :roles, SEED_SPECIFICATIONS
|
9
|
+
Role.find(1).manage_ids = [2,3,4,5,6]
|
10
|
+
Role.find(2).manage_ids = [2,3,4,5,6]
|
11
|
+
Role.find(3).manage_ids = [3,4,5,6]
|
12
|
+
Role.find(4).manage_ids = [4,5,6]
|
13
|
+
Role.find(5).manage_ids = [6]
|
14
|
+
Role.find(6).manage_ids = [6]
|
15
|
+
end
|
8
16
|
|
9
|
-
def create_super_user; create_with(1,
|
10
|
-
def create_system_admin; create_with(2,
|
11
|
-
def create_dealer_admin; create_with(3,
|
12
|
-
def create_corporate_admin; create_with(4,
|
13
|
-
def create_brand_admin; create_with(5,
|
14
|
-
def create_merchant_admin; create_with(6,
|
17
|
+
def create_super_user; create_with(1, 'Admin') ; end
|
18
|
+
def create_system_admin; create_with(2, 'Admin') ; end
|
19
|
+
def create_dealer_admin; create_with(3, 'Dealer') ; end
|
20
|
+
def create_corporate_admin; create_with(4, 'Corporate') ; end
|
21
|
+
def create_brand_admin; create_with(5, 'Brand') ; end
|
22
|
+
def create_merchant_admin; create_with(6, 'Merchant') ; end
|
15
23
|
|
16
|
-
def create_with(id,
|
24
|
+
def create_with(id, domain_type)
|
17
25
|
role = create_with_id(:role, id, SEED_SPECIFICATIONS.assoc(id)[1])
|
18
|
-
role.can_manage_roles = other_roles
|
19
26
|
role.domain_type = domain_type
|
20
27
|
role.save
|
21
28
|
role
|
@@ -21,7 +21,7 @@
|
|
21
21
|
<td></td>
|
22
22
|
<td colspan="2">
|
23
23
|
<%- if allowed_to?(:update, @permissions_category) %>
|
24
|
-
<input type="submit" value="
|
24
|
+
<input type="submit" value="save" class="fncyBtn"/> or
|
25
25
|
<%- end %>
|
26
26
|
<a href="#" onclick="toggle_views(); self.scrollTo(0, 0); $('af_permissions_categories').hide();">cancel</a>
|
27
27
|
</td>
|
@@ -10,18 +10,22 @@
|
|
10
10
|
|
11
11
|
<tr>
|
12
12
|
<td>
|
13
|
-
<%= label :role, :
|
13
|
+
<%= label :role, :manages_role_ids, "Manages users with roles" %>
|
14
14
|
</td>
|
15
15
|
<td>
|
16
|
-
<%= label :role, :
|
16
|
+
<%= label :role, :role_manager_ids, "Managed by users with roles" %>
|
17
17
|
</td>
|
18
18
|
</tr>
|
19
19
|
|
20
20
|
<tr>
|
21
21
|
<td>
|
22
|
-
<%= select :role, :
|
22
|
+
<%= select :role, :manage_ids,
|
23
|
+
all_roles_grouped_by_domain_type.select{|r| r.id != @role.id}.collect{|r| [r.name, r.id]},
|
24
|
+
{}, {:multiple => true, :size => [all_roles.size, 12].min} %>
|
23
25
|
</td>
|
24
26
|
<td>
|
25
|
-
<%= select :role, :
|
27
|
+
<%= select :role, :manager_ids,
|
28
|
+
all_roles_grouped_by_domain_type.collect{|r| [r.name, r.id]},
|
29
|
+
{}, {:multiple => true, :size => [all_roles.size, 12].min} %>
|
26
30
|
</td>
|
27
31
|
</tr>
|
@@ -4,5 +4,4 @@ module RolesHelper
|
|
4
4
|
def additional_column1_value; @permissions_object.domain_type; end
|
5
5
|
def additional_column2_value; "#{@permissions_object.users.count} users"; end
|
6
6
|
def all_roles; @lazy_all_roles ||= Role.all; end
|
7
|
-
def roles_that_current_user_manages; @lazy_roles_that_current_user_manages = @current_user.manages_roles; end
|
8
7
|
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: 7
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 12
|
10
|
+
version: 0.0.12
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Frederick Fix
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2012-06-
|
18
|
+
date: 2012-06-06 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: rspec
|