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.
@@ -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
- serialize :can_manage_roles
14
- after_save :propagate_managed_by
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.managed_by = self.from_permissions_model.managed_by
34
- self.can_manage_roles = self.from_permissions_model.can_manage_roles
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; create_seeds :roles, SEED_SPECIFICATIONS; end
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, SEEDED_ORDERED_ROLES, 'Admin') ; end
10
- def create_system_admin; create_with(2, SEEDED_ORDERED_ROLES[1..5], 'Admin') ; end
11
- def create_dealer_admin; create_with(3, SEEDED_ORDERED_ROLES[2..5], 'Dealer') ; end
12
- def create_corporate_admin; create_with(4, SEEDED_ORDERED_ROLES[3..5], 'Corporate') ; end
13
- def create_brand_admin; create_with(5, ['Merchant'], 'Brand') ; end
14
- def create_merchant_admin; create_with(6, ['Merchant'], 'Merchant') ; end
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, other_roles, domain_type)
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
@@ -5,7 +5,7 @@
5
5
  <%= form_for Role.new, :remote => true do |f| %>
6
6
  <%= f.text_field :name, :maxlength => 31, :size => 12 %>
7
7
  &nbsp;&nbsp;&nbsp;
8
- <%= f.submit 'create role', :class => 'fncyBtn' %>
8
+ <%= f.submit 'new role', :class => 'fncyBtn' %>
9
9
  <%- end %>
10
10
  </td>
11
11
  </tr>
@@ -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="Save"/> or
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, :can_manage_roles, "Manages users with roles" %>
13
+ <%= label :role, :manages_role_ids, "Manages users with roles" %>
14
14
  </td>
15
15
  <td>
16
- <%= label :role, :managed_by, "Managed by users with roles" %>
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, :can_manage_roles, all_roles_grouped_by_domain_type.collect(&:name) - [@role.name], {}, {:multiple => true, :size => [all_roles.size, 12].min} %>
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, :managed_by, all_roles_grouped_by_domain_type.collect(&:name), {}, {:multiple => true, :size => [all_roles.size, 12].min} %>
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: 9
4
+ hash: 7
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 11
10
- version: 0.0.11
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-03 00:00:00 Z
18
+ date: 2012-06-06 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: rspec