spree_admin_roles_and_access 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
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
+