spree_admin_roles_and_access 1.3.0 → 2.0.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.
- checksums.yaml +4 -4
- data/README.md +0 -5
- data/app/controllers/spree/admin/permissions_controller.rb +6 -0
- data/app/controllers/spree/admin/roles_controller.rb +2 -2
- data/app/models/spree/ability_decorator.rb +2 -2
- data/app/models/spree/permission.rb +1 -1
- data/app/models/spree/role_decorator.rb +4 -4
- data/app/models/spree/user_decorator.rb +1 -1
- data/app/overrides/spree/admin/roles/_form/add_permissions_to_role_form.html.erb.deface +13 -0
- data/app/overrides/spree/admin/shared/sub_menu/_configuration/add_permissions_to_configuration_sub_menu.html.erb.deface +2 -0
- data/app/views/spree/admin/permissions/_form.html.erb +22 -0
- data/app/views/spree/admin/permissions/edit.html.erb +10 -0
- data/app/views/spree/admin/permissions/index.html.erb +40 -0
- data/app/views/spree/admin/permissions/new.html.erb +10 -0
- data/config/locales/en.yml +8 -1
- data/config/locales/ru.yml +14 -0
- data/config/routes.rb +2 -1
- data/lib/spree/permissions.rb +5 -6
- metadata +20 -18
- data/app/overrides/add_roles_to_admin_configuration_sidebar.rb +0 -8
- data/app/views/spree/admin/roles/_form.html.erb +0 -19
- data/app/views/spree/admin/roles/edit.html.erb +0 -2
- data/app/views/spree/admin/roles/index.html.erb +0 -32
- data/app/views/spree/admin/roles/new.html.erb +0 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 64146eca6e414833fc625640dbcf12effbd80543
|
4
|
+
data.tar.gz: f611e1895d9ca6dbde6c3dfeca952b06f3461690
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a45920143eb48b5918613f6f607ec98a749300f9a7814ed11d64c5ff42544c7da2ac268f5aa64032b8cec1cbdf572d5a1174342f434163468ec1f9975f3017e2
|
7
|
+
data.tar.gz: 3f26e89a3a966d30a58f19b329b095c59dcc2496e992229b7da4415c2b4f011b0e7e1bff39e9875be1d75ccbf89172ceaa33773ad24c79cba1221b4c39841cb7
|
data/README.md
CHANGED
@@ -81,11 +81,6 @@ Points to remember
|
|
81
81
|
Override a module Permission. And define the permission in a method, and create a permission in the database.
|
82
82
|
|
83
83
|
|
84
|
-
To Do
|
85
|
-
-----
|
86
|
-
|
87
|
-
To provide a space in admin end, from where permissions can be added dynamically.
|
88
|
-
|
89
84
|
Testing
|
90
85
|
-------
|
91
86
|
|
@@ -1,5 +1,5 @@
|
|
1
1
|
module Spree
|
2
|
-
|
2
|
+
module Admin
|
3
3
|
class RolesController < ResourceController
|
4
4
|
before_filter :load_permissions, :only => [:edit, :new, :create, :update]
|
5
5
|
before_filter :restrict_unless_editable, :only => [:edit, :update]
|
@@ -22,4 +22,4 @@ module Spree
|
|
22
22
|
end
|
23
23
|
end
|
24
24
|
end
|
25
|
-
end
|
25
|
+
end
|
@@ -10,7 +10,7 @@ module Spree
|
|
10
10
|
alias_action :show, :to => :read
|
11
11
|
alias_action :delete, :to => :destroy
|
12
12
|
|
13
|
-
user ||= Spree
|
13
|
+
user ||= Spree.user_class.new
|
14
14
|
|
15
15
|
user_roles(user).each do |role|
|
16
16
|
ability(role, user)
|
@@ -30,4 +30,4 @@ module Spree
|
|
30
30
|
role.ability(self, user)
|
31
31
|
end
|
32
32
|
end
|
33
|
-
end
|
33
|
+
end
|
@@ -1,8 +1,8 @@
|
|
1
1
|
Spree::Role.class_eval do
|
2
|
-
|
2
|
+
|
3
3
|
has_and_belongs_to_many :permissions, :join_table => 'spree_roles_permissions', :class_name => 'Spree::Permission'
|
4
4
|
|
5
|
-
validates :name, :
|
5
|
+
validates :name, uniqueness: true, allow_blank: true
|
6
6
|
|
7
7
|
def ability(current_ability, user)
|
8
8
|
permissions.each do |permission|
|
@@ -14,5 +14,5 @@ Spree::Role.class_eval do
|
|
14
14
|
permissions.pluck(:title).include?(permission_title)
|
15
15
|
end
|
16
16
|
|
17
|
-
scope :default_role, lambda { where(:is_default => true) }
|
18
|
-
end
|
17
|
+
scope :default_role, lambda { where(:is_default => true) }
|
18
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
<!-- insert_bottom "[data-hook='additional_role_fields']" -->
|
2
|
+
|
3
|
+
<div data-hook="admin_role_form_permissions" class="form-group">
|
4
|
+
<strong><%= Spree.t(:permissions) %></strong>
|
5
|
+
<% @permissions.each do |permission| %>
|
6
|
+
<div class="checkbox">
|
7
|
+
<%= label_tag "user_spree_permission_#{permission.title}" do %>
|
8
|
+
<%= check_box_tag 'role[permission_ids][]', permission.id, @role.has_permission?(permission.title), id: "user_spree_permission_#{permission.title}" %>
|
9
|
+
<%= permission.title.gsub('-',' ').titleize %>
|
10
|
+
<% end %>
|
11
|
+
</div>
|
12
|
+
<% end %>
|
13
|
+
</div>
|
@@ -0,0 +1,22 @@
|
|
1
|
+
<div data-hook="admin_permission_form_fields">
|
2
|
+
<div data-hook="permission_title" class="form-group">
|
3
|
+
<%= f.label :title, Spree.t(:permission_title) %> <span class="required">*</span>
|
4
|
+
<%= f.text_field :title, class: 'form-control' %>
|
5
|
+
</div>
|
6
|
+
<div data-hook="permission_priority" class="form-group">
|
7
|
+
<%= f.label :priority, Spree.t(:permission_priority) %> <span class="required">*</span>
|
8
|
+
<%= f.number_field :priority, in: 0..9, step: 1, class: 'form-control' %>
|
9
|
+
</div>
|
10
|
+
<div data-hook="permission_visible" class="checkbox">
|
11
|
+
<label>
|
12
|
+
<%= f.check_box :visible, value: true %><%= Spree.t(:permission_visible) %>
|
13
|
+
</label>
|
14
|
+
</div>
|
15
|
+
<div data-hook="permission_boolean" class="checkbox">
|
16
|
+
<label>
|
17
|
+
<%= f.check_box :boolean, value: true %> <%= Spree.t(:permission_boolean) %>
|
18
|
+
</label>
|
19
|
+
</div>
|
20
|
+
|
21
|
+
<div data-hook="additional_permission_fields"></div>
|
22
|
+
</div>
|
@@ -0,0 +1,10 @@
|
|
1
|
+
<% content_for :page_title do %>
|
2
|
+
<%= Spree.t(:editing_resource, resource: Spree::Permission.model_name.human) %>
|
3
|
+
<% end %>
|
4
|
+
|
5
|
+
<%= form_for [:admin, @permission] do |f| %>
|
6
|
+
<fieldset>
|
7
|
+
<%= render partial: 'form', locals: { f: f } %>
|
8
|
+
<%= render partial: 'spree/admin/shared/edit_resource_links' %>
|
9
|
+
</fieldset>
|
10
|
+
<% end %>
|
@@ -0,0 +1,40 @@
|
|
1
|
+
<% content_for :page_title do %>
|
2
|
+
<%= Spree.t(:permissions) %>
|
3
|
+
<% end %>
|
4
|
+
|
5
|
+
<% content_for :page_actions do %>
|
6
|
+
<%= button_link_to Spree.t(:new_permission), new_object_url, class: "btn-success", icon: 'add', id: 'admin_new_permission_link' %>
|
7
|
+
<% end if can? :create, Spree::Permission %>
|
8
|
+
|
9
|
+
<% if @permissions.any? %>
|
10
|
+
<table class="table">
|
11
|
+
<thead>
|
12
|
+
<tr data-hook="admin_permissions_index_headers">
|
13
|
+
<th><%= Spree.t(:permission_title) %></th>
|
14
|
+
<th><%= Spree.t(:permission_priority) %></th>
|
15
|
+
<th><%= Spree.t(:permission_visible) %></th>
|
16
|
+
<th><%= Spree.t(:permission_boolean) %></th>
|
17
|
+
<th class="actions"></th>
|
18
|
+
</tr>
|
19
|
+
</thead>
|
20
|
+
<tbody>
|
21
|
+
<% @permissions.each do |permission|%>
|
22
|
+
<tr id="<%= spree_dom_id permission %>" data-hook="admin_permissions_index_rows">
|
23
|
+
<td><%= permission.title %></td>
|
24
|
+
<td><%= permission.priority %></td>
|
25
|
+
<td><%= permission.visible %></td>
|
26
|
+
<td><%= permission.boolean %></td>
|
27
|
+
<td class="actions text-right">
|
28
|
+
<%= link_to_edit(permission, no_text: true) if can? :edit, permission %>
|
29
|
+
<%= link_to_delete(permission, no_text: true) if can? :destroy, permission %>
|
30
|
+
</td>
|
31
|
+
</tr>
|
32
|
+
<% end %>
|
33
|
+
</tbody>
|
34
|
+
</table>
|
35
|
+
<% else %>
|
36
|
+
<div class="alert alert-warning">
|
37
|
+
<%= Spree.t(:no_resource_found, resource: plural_resource_name(Spree::Permission)) %>,
|
38
|
+
<%= link_to(Spree.t(:add_one), new_object_url) if can? :create, Spree::Permission %>!
|
39
|
+
</div>
|
40
|
+
<% end %>
|
@@ -0,0 +1,10 @@
|
|
1
|
+
<% content_for :page_title do %>
|
2
|
+
<%= Spree.t(:new_permission) %>
|
3
|
+
<% end %>
|
4
|
+
|
5
|
+
<%= form_for [:admin, @permission] do |f| %>
|
6
|
+
<fieldset>
|
7
|
+
<%= render partial: 'form', locals: { f: f } %>
|
8
|
+
<%= render partial: 'spree/admin/shared/new_resource_links' %>
|
9
|
+
</fieldset>
|
10
|
+
<% end %>
|
data/config/locales/en.yml
CHANGED
@@ -7,6 +7,13 @@ en:
|
|
7
7
|
edit_role: "Edit Role"
|
8
8
|
listing_roles: "Listing Roles"
|
9
9
|
roles: "Roles"
|
10
|
-
|
10
|
+
role_name: "Name"
|
11
|
+
role_editable: "Editable"
|
12
|
+
role_is_default: "Is default"
|
11
13
|
permissions: "Permissions"
|
12
14
|
save_changes: "Save Changes"
|
15
|
+
new_permission: "New Permission"
|
16
|
+
permission_title: "Title"
|
17
|
+
permission_priority: "Priority"
|
18
|
+
permission_visible: "Visible"
|
19
|
+
permission_boolean: "Boolean"
|
@@ -0,0 +1,14 @@
|
|
1
|
+
ru:
|
2
|
+
spree:
|
3
|
+
new_role: "Создать роль"
|
4
|
+
edit_role: "Редактировать роль"
|
5
|
+
listing_roles: "Список ролей"
|
6
|
+
permissions: "Права доступа"
|
7
|
+
new_permission: "Создать право доступа"
|
8
|
+
role_name: "Наименование"
|
9
|
+
role_editable: "Доступно редактирование"
|
10
|
+
role_is_default: "По-умолчанию"
|
11
|
+
permission_title: "Наименование"
|
12
|
+
permission_priority: "Приоритет"
|
13
|
+
permission_visible: "Видимость"
|
14
|
+
permission_boolean: "Boolean"
|
data/config/routes.rb
CHANGED
data/lib/spree/permissions.rb
CHANGED
@@ -36,19 +36,18 @@ module Spree
|
|
36
36
|
end
|
37
37
|
|
38
38
|
define_method('default-admin-permissions') do |current_ability, user|
|
39
|
-
current_ability.can :admin,
|
40
|
-
current_ability.can :index, 'spree/admin/overview'
|
39
|
+
current_ability.can :admin, Spree::Store.default
|
41
40
|
end
|
42
41
|
|
43
42
|
define_method('can-update-spree/users') do |current_ability, user|
|
44
|
-
current_ability.can :update, Spree
|
43
|
+
current_ability.can :update, Spree.user_class
|
45
44
|
# The permission of cannot update role_ids was given to user so that no onw with this permission can change role of user.
|
46
|
-
current_ability.cannot :update, Spree
|
45
|
+
current_ability.cannot :update, Spree.user_class, :role_ids
|
47
46
|
end
|
48
47
|
|
49
48
|
define_method('can-create-spree/users') do |current_ability, user|
|
50
|
-
current_ability.can :create, Spree
|
51
|
-
current_ability.cannot :create, Spree
|
49
|
+
current_ability.can :create, Spree.user_class
|
50
|
+
current_ability.cannot :create, Spree.user_class, :role_ids
|
52
51
|
end
|
53
52
|
|
54
53
|
private
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: spree_admin_roles_and_access
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nishant 'CyRo' Tuteja
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-12-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: spree_core
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: '3.0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: '3.0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: spree_auth_devise
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -81,21 +81,21 @@ dependencies:
|
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: 3.1.0
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
84
|
+
name: shoulda-matchers
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- - "
|
87
|
+
- - "~>"
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version: '
|
89
|
+
version: '2.8'
|
90
90
|
type: :development
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- - "
|
94
|
+
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version: '
|
96
|
+
version: '2.8'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
|
-
name:
|
98
|
+
name: rspec-activemodel-mocks
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
101
|
- - ">="
|
@@ -261,22 +261,25 @@ files:
|
|
261
261
|
- app/assets/stylesheets/spree/backend/spree_admin_roles_and_access.css
|
262
262
|
- app/assets/stylesheets/spree/frontend/spree_admin_roles_and_access.css
|
263
263
|
- app/controllers/spree/admin/base_controller_decorator.rb
|
264
|
+
- app/controllers/spree/admin/permissions_controller.rb
|
264
265
|
- app/controllers/spree/admin/roles_controller.rb
|
265
266
|
- app/models/spree/ability_decorator.rb
|
266
267
|
- app/models/spree/permission.rb
|
267
268
|
- app/models/spree/role_decorator.rb
|
268
269
|
- app/models/spree/user_decorator.rb
|
269
|
-
- app/overrides/
|
270
|
-
- app/
|
271
|
-
- app/views/spree/admin/
|
272
|
-
- app/views/spree/admin/
|
273
|
-
- app/views/spree/admin/
|
270
|
+
- app/overrides/spree/admin/roles/_form/add_permissions_to_role_form.html.erb.deface
|
271
|
+
- app/overrides/spree/admin/shared/sub_menu/_configuration/add_permissions_to_configuration_sub_menu.html.erb.deface
|
272
|
+
- app/views/spree/admin/permissions/_form.html.erb
|
273
|
+
- app/views/spree/admin/permissions/edit.html.erb
|
274
|
+
- app/views/spree/admin/permissions/index.html.erb
|
275
|
+
- app/views/spree/admin/permissions/new.html.erb
|
274
276
|
- config/initializers/cancan_ability.rb
|
275
277
|
- config/initializers/cancan_controller_additions.rb
|
276
278
|
- config/initializers/cancan_rule.rb
|
277
279
|
- config/initializers/constants.rb
|
278
280
|
- config/locales/en.yml
|
279
281
|
- config/locales/es-MX.yml
|
282
|
+
- config/locales/ru.yml
|
280
283
|
- config/routes.rb
|
281
284
|
- db/migrate/20130709104101_create_spree_permissions.rb
|
282
285
|
- db/migrate/20130709104945_create_spree_roles_permissions.rb
|
@@ -297,7 +300,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
297
300
|
requirements:
|
298
301
|
- - ">="
|
299
302
|
- !ruby/object:Gem::Version
|
300
|
-
version:
|
303
|
+
version: 2.0.0
|
301
304
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
302
305
|
requirements:
|
303
306
|
- - ">="
|
@@ -306,9 +309,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
306
309
|
requirements:
|
307
310
|
- none
|
308
311
|
rubyforge_project:
|
309
|
-
rubygems_version: 2.
|
312
|
+
rubygems_version: 2.4.5
|
310
313
|
signing_key:
|
311
314
|
specification_version: 4
|
312
315
|
summary: Dynamically defines roles and grants it permissions
|
313
316
|
test_files: []
|
314
|
-
has_rdoc:
|
@@ -1,8 +0,0 @@
|
|
1
|
-
Deface::Override.new(
|
2
|
-
:virtual_path => 'spree/admin/shared/_configuration_menu',
|
3
|
-
:name => 'add_roles_to_admin_configuration_sidebar',
|
4
|
-
:insert_bottom => "[data-hook='admin_configurations_sidebar_menu']",
|
5
|
-
:text => %q{
|
6
|
-
<%= configurations_sidebar_menu_item Spree.t(:roles), admin_roles_path %>
|
7
|
-
}
|
8
|
-
)
|
@@ -1,19 +0,0 @@
|
|
1
|
-
<div>
|
2
|
-
<%= render :partial => 'spree/shared/error_messages', :locals => { :target => @role } %>
|
3
|
-
</div>
|
4
|
-
|
5
|
-
<table>
|
6
|
-
<%= form_tag [:admin, @role], :method => method do %>
|
7
|
-
<tr><td><%= Spree.t(:name) %>:</td><td><%= text_field_tag 'role[name]', @role.name %></td></tr>
|
8
|
-
<tr><td><%= Spree.t(:permissions) %>:</td>
|
9
|
-
<td><% @permissions.each do |permission| %>
|
10
|
-
<% if @role.has_permission?(permission.title) %>
|
11
|
-
<span class='permission-check-box'><%= check_box_tag 'role[permission_ids][]', permission.id, true %> <%= permission.title.gsub('-',' ').titleize %></span>
|
12
|
-
<% else %>
|
13
|
-
<span class='permission-check-box'><%= check_box_tag 'role[permission_ids][]', permission.id %> <%= permission.title.gsub('-',' ').titleize %></span>
|
14
|
-
<% end %>
|
15
|
-
<br />
|
16
|
-
<% end %></td></tr>
|
17
|
-
<tr><td></td><td><%= submit_tag Spree.t(:save_changes) %></td></tr>
|
18
|
-
<% end %>
|
19
|
-
</table>
|
@@ -1,32 +0,0 @@
|
|
1
|
-
<%= render :partial => 'spree/admin/shared/configuration_menu' %>
|
2
|
-
|
3
|
-
<% content_for :page_title do %>
|
4
|
-
<%= Spree.t(:listing_roles) %>
|
5
|
-
<% end %>
|
6
|
-
|
7
|
-
<% content_for :page_actions do %>
|
8
|
-
<li>
|
9
|
-
<%= button_link_to Spree.t(:new_role), new_admin_role_path %>
|
10
|
-
</li>
|
11
|
-
<% end %>
|
12
|
-
|
13
|
-
<%= paginate @roles %>
|
14
|
-
|
15
|
-
<table class='index'>
|
16
|
-
<thead>
|
17
|
-
<tr>
|
18
|
-
<th><%= Spree.t(:name) %></th>
|
19
|
-
</tr>
|
20
|
-
</thead>
|
21
|
-
|
22
|
-
<tbody>
|
23
|
-
<% @roles.each do |role| %>
|
24
|
-
<tr class="<%= cycle('odd', 'even') %>">
|
25
|
-
<td class="align-center"><%= role.name %></td>
|
26
|
-
<% if role.editable? %>
|
27
|
-
<td class="actions"><%= link_to_edit role, :no_text => true, :class => 'edit' %></td>
|
28
|
-
<% end %>
|
29
|
-
</tr>
|
30
|
-
<% end %>
|
31
|
-
</tbody>
|
32
|
-
</table>
|