spree_admin_roles_and_access 1.3.0 → 2.0.0

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