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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1cdf4f698b10f2c824ecdaae1763a6f35ef03559
4
- data.tar.gz: 0f8c517039ebcaf12f1137111f1d2e037ed6da0e
3
+ metadata.gz: 64146eca6e414833fc625640dbcf12effbd80543
4
+ data.tar.gz: f611e1895d9ca6dbde6c3dfeca952b06f3461690
5
5
  SHA512:
6
- metadata.gz: b90ed6e54dbe42ab56692c427522c396ef14d4699de217b30771a930e56c8b1a3ce71a9e64d71ccf9ef16fea4c374bfd524528f5d35cd17fcb58e5d50c8bef2f
7
- data.tar.gz: 6695700a3483021e2bdc0c29c4bf5fe5028933453d054f2930fc0c622039e608b5093b99a77a829b583c698d0bfe56ce2df92f8f5a9735981520553310d6eadf
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
 
@@ -0,0 +1,6 @@
1
+ module Spree
2
+ module Admin
3
+ class PermissionsController < ResourceController
4
+ end
5
+ end
6
+ end
@@ -1,5 +1,5 @@
1
1
  module Spree
2
- module Admin
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::User.new
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
@@ -14,4 +14,4 @@ module Spree
14
14
  send(title, current_ability, user)
15
15
  end
16
16
  end
17
- end
17
+ 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, :presence => true, :uniqueness => true
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
@@ -2,4 +2,4 @@ module Spree
2
2
  Spree.user_class.class_eval do
3
3
  has_and_belongs_to_many :roles, join_table: 'spree_roles_users', class_name: 'Spree::Role'
4
4
  end
5
- end
5
+ 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,2 @@
1
+ <!-- insert_bottom "[data-hook='admin_configurations_sidebar_menu']" -->
2
+ <%= configurations_sidebar_menu_item(Spree.t(:permissions), spree.admin_permissions_path) if can? :manage, Spree::Permission %>
@@ -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 %>
@@ -7,6 +7,13 @@ en:
7
7
  edit_role: "Edit Role"
8
8
  listing_roles: "Listing Roles"
9
9
  roles: "Roles"
10
- name: "Name"
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"
@@ -1,5 +1,6 @@
1
1
  Spree::Core::Engine.routes.draw do
2
2
  namespace :admin do
3
- resources :roles, :except => [:show, :destroy]
3
+ resources :roles, except: [:show]
4
+ resources :permissions, except: [:show]
4
5
  end
5
6
  end
@@ -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, 'spree/admin/overview'
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::User
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::User, :role_ids
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::User
51
- current_ability.cannot :create, Spree::User, :role_ids
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: 1.3.0
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: 2014-11-24 00:00:00.000000000 Z
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: 2.4.0.rc3
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: 2.4.0.rc3
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: rspec-activemodel-mocks
84
+ name: shoulda-matchers
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ">="
87
+ - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '0'
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: '0'
96
+ version: '2.8'
97
97
  - !ruby/object:Gem::Dependency
98
- name: shoulda-matchers
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/add_roles_to_admin_configuration_sidebar.rb
270
- - app/views/spree/admin/roles/_form.html.erb
271
- - app/views/spree/admin/roles/edit.html.erb
272
- - app/views/spree/admin/roles/index.html.erb
273
- - app/views/spree/admin/roles/new.html.erb
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: 1.9.3
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.2.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,2 +0,0 @@
1
- <h1><%= Spree.t(:edit_role) %></h1>
2
- <%= render :partial => 'form', :locals => { :method => :put } %>
@@ -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>
@@ -1,2 +0,0 @@
1
- <h1><%= Spree.t(:new_role) %></h1>
2
- <%= render :partial => 'form', :locals => { :method => :post } %>