spree_admin_roles_and_access 1.0.0 → 1.1.0

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/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2013 [name of plugin creator]
1
+ Copyright (c) 2014 Vinsol
2
2
  All rights reserved.
3
3
 
4
4
  Redistribution and use in source and binary forms, with or without modification,
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- SpreeAdminRolesAndAccess
1
+ SpreeAdminRolesAndAccess [![Code Climate](https://codeclimate.com/github/vinsol/spree_admin_roles_and_access.png)](https://codeclimate.com/github/vinsol/spree_admin_roles_and_access) [![Build Status](https://travis-ci.org/vinsol/spree_admin_roles_and_access.png?branch=master)](https://travis-ci.org/vinsol/spree_admin_roles_and_access)
2
2
  ========================
3
3
 
4
4
  This spree extension is build on CanCan to dynamically add new roles and define its access through permissions.
@@ -12,6 +12,12 @@ Add spree_admin_roles_and_access to your Gemfile:
12
12
  gem 'spree_admin_roles_and_access'
13
13
  ```
14
14
 
15
+ But if you are using 2.0.x version of spree
16
+
17
+ ```ruby
18
+ gem 'spree_admin_roles_and_access', '1.0.0'
19
+ ```
20
+
15
21
  Bundle your dependencies and run the installation generator:
16
22
 
17
23
  ```shell
@@ -77,3 +83,11 @@ bundle
77
83
  bundle exec rake test_app
78
84
  bundle exec rspec spec
79
85
  ```
86
+
87
+
88
+ Credits
89
+ -------
90
+
91
+ [![vinsol.com: Ruby on Rails, iOS and Android developers](http://vinsol.com/vin_logo.png "Ruby on Rails, iOS and Android developers")](http://vinsol.com)
92
+
93
+ Copyright (c) 2014 [vinsol.com](http://vinsol.com "Ruby on Rails, iOS and Android developers"), released under the New MIT License
@@ -9,6 +9,10 @@ module Spree
9
9
  end
10
10
 
11
11
  private
12
+ def permitted_resource_params
13
+ params.require(:role).permit(:name, :permission_ids => [])
14
+ end
15
+
12
16
  def load_permissions
13
17
  @permissions = Spree::Permission.visible.all
14
18
  end
@@ -2,15 +2,13 @@ module Spree
2
2
  class Permission < ActiveRecord::Base
3
3
  include Permissions
4
4
 
5
- attr_accessible :title, :priority
6
-
7
- default_scope order(:priority)
5
+ default_scope { order(:priority) }
8
6
 
9
7
  has_and_belongs_to_many :roles, :join_table => 'spree_roles_permissions', :class_name => 'Spree::Role'
10
8
 
11
9
  validates :title, :presence => true, :uniqueness => true
12
10
 
13
- scope :visible, where(:visible => true)
11
+ scope :visible, lambda { where(:visible => true) }
14
12
 
15
13
  def ability(current_ability, user)
16
14
  send(title, current_ability, user)
@@ -1,5 +1,4 @@
1
1
  Spree::Role.class_eval do
2
- attr_accessible :name, :permission_ids
3
2
 
4
3
  has_and_belongs_to_many :permissions, :join_table => 'spree_roles_permissions', :class_name => 'Spree::Permission'
5
4
 
@@ -15,5 +14,5 @@ Spree::Role.class_eval do
15
14
  permissions.pluck(:title).include?(permission_title)
16
15
  end
17
16
 
18
- scope :default_role, where(:is_default => true)
17
+ scope :default_role, lambda { where(:is_default => true) }
19
18
  end
@@ -1,18 +1,22 @@
1
1
  module Spree
2
2
  module Permissions
3
- def method_missing(name, current_ability, user)
4
- can, action, subject, attribute = find_action_and_subject(name)
3
+ def method_missing(name, *args, &block)
4
+ if name.to_s.starts_with?('can')
5
+ can, action, subject, attribute = find_action_and_subject(name)
5
6
 
6
- Permissions.send(:define_method, name) do |current_ability, user|
7
- if attribute.nil?
8
- current_ability.send(can, action, subject)
9
- else
10
- current_ability.send(can, action, subject, attribute)
7
+ Permissions.send(:define_method, name) do |current_ability, user|
8
+ if attribute.nil?
9
+ current_ability.send(can, action, subject)
10
+ else
11
+ current_ability.send(can, action, subject, attribute)
12
+ end
11
13
  end
14
+ send(name, args[0], args[1]) if self.respond_to?(name)
15
+ else
16
+ super
12
17
  end
13
- send(name, current_ability, user) if self.respond_to?(name)
14
18
  end
15
-
19
+
16
20
  define_method('default-permissions') do |current_ability, user|
17
21
  current_ability.can [:read, :update, :destroy], Spree.user_class do |resource|
18
22
  resource == user
metadata CHANGED
@@ -1,92 +1,111 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: spree_admin_roles_and_access
3
- version: !ruby/object:Gem::Version
4
- version: 1.0.0
3
+ version: !ruby/object:Gem::Version
4
+ hash: 19
5
5
  prerelease:
6
+ segments:
7
+ - 1
8
+ - 1
9
+ - 0
10
+ version: 1.1.0
6
11
  platform: ruby
7
- authors:
12
+ authors:
8
13
  - Nishant 'CyRo' Tuteja
9
14
  autorequire:
10
15
  bindir: bin
11
16
  cert_chain: []
12
- date: 2014-01-17 00:00:00.000000000 Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
17
+
18
+ date: 2014-03-10 00:00:00 Z
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
15
21
  name: spree_core
16
- requirement: !ruby/object:Gem::Requirement
17
- none: false
18
- requirements:
19
- - - ~>
20
- - !ruby/object:Gem::Version
21
- version: '2.0'
22
- type: :runtime
23
22
  prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
23
+ requirement: &id001 !ruby/object:Gem::Requirement
25
24
  none: false
26
- requirements:
25
+ requirements:
27
26
  - - ~>
28
- - !ruby/object:Gem::Version
29
- version: '2.0'
27
+ - !ruby/object:Gem::Version
28
+ hash: 1
29
+ segments:
30
+ - 2
31
+ - 1
32
+ version: "2.1"
33
+ type: :runtime
34
+ version_requirements: *id001
30
35
  description:
31
36
  email: info@vinsol.com
32
37
  executables: []
38
+
33
39
  extensions: []
40
+
34
41
  extra_rdoc_files: []
35
- files:
42
+
43
+ files:
36
44
  - LICENSE
37
45
  - README.md
38
- - app/assets/stylesheets/store/spree_admin_roles_and_access.css
39
- - app/assets/stylesheets/admin/spree_admin_roles_and_access.css
40
- - app/assets/javascripts/store/spree_admin_roles_and_access.js
41
46
  - app/assets/javascripts/admin/spree_admin_roles_and_access.js
42
- - app/overrides/add_roles_to_admin_configuration_sidebar.rb
43
- - app/models/spree/permission.rb
44
- - app/models/spree/user_decorator.rb
45
- - app/models/spree/role_decorator.rb
46
- - app/models/spree/ability_decorator.rb
47
+ - app/assets/javascripts/store/spree_admin_roles_and_access.js
48
+ - app/assets/stylesheets/admin/spree_admin_roles_and_access.css
49
+ - app/assets/stylesheets/store/spree_admin_roles_and_access.css
47
50
  - app/controllers/spree/admin/base_controller_decorator.rb
48
51
  - app/controllers/spree/admin/roles_controller.rb
52
+ - app/models/spree/ability_decorator.rb
53
+ - app/models/spree/permission.rb
54
+ - app/models/spree/role_decorator.rb
55
+ - app/models/spree/user_decorator.rb
56
+ - app/overrides/add_roles_to_admin_configuration_sidebar.rb
49
57
  - app/views/spree/admin/roles/_form.html.erb
50
- - app/views/spree/admin/roles/new.html.erb
51
58
  - app/views/spree/admin/roles/edit.html.erb
52
59
  - app/views/spree/admin/roles/index.html.erb
53
- - config/routes.rb
54
- - config/locales/en.yml
55
- - config/initializers/cancan_controller_additions.rb
56
- - config/initializers/constants.rb
60
+ - app/views/spree/admin/roles/new.html.erb
57
61
  - config/initializers/cancan_ability.rb
62
+ - config/initializers/cancan_controller_additions.rb
58
63
  - config/initializers/cancan_rule.rb
64
+ - config/initializers/constants.rb
65
+ - config/locales/en.yml
66
+ - config/routes.rb
59
67
  - lib/generators/spree_admin_roles_and_access/install/install_generator.rb
60
68
  - lib/spree/permissions.rb
61
- - lib/spree_admin_roles_and_access.rb
62
69
  - lib/spree_admin_roles_and_access/engine.rb
70
+ - lib/spree_admin_roles_and_access.rb
63
71
  - lib/tasks/populate.rake
64
- - db/migrate/20130709104945_create_spree_roles_permissions.rb
65
72
  - db/migrate/20130709104101_create_spree_permissions.rb
73
+ - db/migrate/20130709104945_create_spree_roles_permissions.rb
66
74
  - db/migrate/20130709105614_add_editable_is_default_and_index_on_editable_is_default_and_name_to_spree_roles.rb
67
75
  homepage: http://vinsol.com
68
76
  licenses: []
77
+
69
78
  post_install_message:
70
79
  rdoc_options: []
71
- require_paths:
80
+
81
+ require_paths:
72
82
  - lib
73
- required_ruby_version: !ruby/object:Gem::Requirement
83
+ required_ruby_version: !ruby/object:Gem::Requirement
74
84
  none: false
75
- requirements:
76
- - - ! '>='
77
- - !ruby/object:Gem::Version
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ hash: 53
89
+ segments:
90
+ - 1
91
+ - 9
92
+ - 3
78
93
  version: 1.9.3
79
- required_rubygems_version: !ruby/object:Gem::Requirement
94
+ required_rubygems_version: !ruby/object:Gem::Requirement
80
95
  none: false
81
- requirements:
82
- - - ! '>='
83
- - !ruby/object:Gem::Version
84
- version: '0'
85
- requirements:
96
+ requirements:
97
+ - - ">="
98
+ - !ruby/object:Gem::Version
99
+ hash: 3
100
+ segments:
101
+ - 0
102
+ version: "0"
103
+ requirements:
86
104
  - none
87
105
  rubyforge_project:
88
- rubygems_version: 1.8.25
106
+ rubygems_version: 1.8.24
89
107
  signing_key:
90
108
  specification_version: 3
91
109
  summary: Dynamically defines roles and grants it permissions
92
110
  test_files: []
111
+