releaf-permissions 0.2.1 → 1.0.3
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/LICENSE +19 -21
- data/app/assets/stylesheets/{releaf/controllers → controllers}/releaf/permissions/sessions.scss +0 -0
- data/app/builders/releaf/permissions/page/header_builder.rb +35 -0
- data/app/builders/releaf/permissions/page/layout_builder.rb +17 -0
- data/app/builders/releaf/permissions/page/menu_builder.rb +18 -0
- data/app/builders/releaf/permissions/roles/form_builder.rb +10 -6
- data/app/builders/releaf/permissions/roles/table_builder.rb +2 -6
- data/app/controllers/releaf/permissions/profile_controller.rb +25 -46
- data/app/controllers/releaf/permissions/roles_controller.rb +3 -5
- data/app/controllers/releaf/permissions/sessions_controller.rb +17 -27
- data/app/controllers/releaf/permissions/users_controller.rb +11 -14
- data/app/models/releaf/permissions/role.rb +0 -25
- data/app/models/releaf/permissions/user.rb +3 -9
- data/lib/releaf-permissions.rb +23 -27
- data/lib/releaf/permissions/access_control.rb +37 -0
- data/lib/releaf/permissions/configuration.rb +26 -0
- data/lib/releaf/permissions/controller_support.rb +33 -0
- data/lib/releaf/permissions/default_controller_resolver.rb +22 -0
- data/lib/releaf/permissions/engine.rb +1 -18
- data/lib/releaf/permissions/layout.rb +5 -0
- data/lib/releaf/permissions/{profile_component.rb → profile.rb} +6 -2
- data/lib/releaf/permissions/{roles_component.rb → roles.rb} +2 -2
- data/lib/releaf/permissions/settings_manager.rb +22 -0
- data/lib/releaf/permissions/users.rb +11 -0
- data/spec/builders/releaf/permissions/page/header_builder_spec.rb +87 -0
- data/spec/builders/releaf/permissions/page/layout_builder_spec.rb +64 -0
- data/spec/builders/releaf/permissions/page/menu_builder_spec.rb +100 -0
- data/spec/builders/{profile → releaf/permissions/profile}/form_builder_spec.rb +0 -0
- data/spec/builders/releaf/permissions/roles/form_builder_spec.rb +56 -0
- data/spec/builders/releaf/permissions/roles/table_builder_spec.rb +41 -0
- data/spec/builders/{users → releaf/permissions/users}/form_builder_spec.rb +0 -0
- data/spec/builders/{users → releaf/permissions/users}/table_builder_spec.rb +0 -0
- data/spec/controllers/permissions/profile_controller_spec.rb +0 -27
- data/spec/controllers/permissions/users_controller_spec.rb +1 -1
- data/spec/features/roles_spec.rb +3 -3
- data/spec/features/users_spec.rb +2 -2
- data/spec/lib/access_control_spec.rb +35 -50
- data/spec/lib/releaf/permissions/configuration_spec.rb +38 -0
- data/spec/lib/releaf/permissions/controller_support_spec.rb +76 -0
- data/spec/lib/releaf/permissions/default_controller_resolver_spec.rb +49 -0
- data/spec/lib/releaf/permissions/layout_spec.rb +10 -0
- data/spec/lib/releaf/permissions/profile_spec.rb +11 -0
- data/spec/lib/releaf/permissions/roles_spec.rb +10 -0
- data/spec/lib/releaf/permissions/settings_manager_spec.rb +38 -0
- data/spec/lib/releaf/permissions/users_spec.rb +17 -0
- data/spec/models/permissions/role_spec.rb +0 -28
- data/spec/models/permissions/user_spec.rb +33 -3
- metadata +56 -32
- data/app/controllers/releaf/permissions/home_controller.rb +0 -32
- data/app/lib/releaf/permissions/access_control.rb +0 -36
- data/lib/releaf/permissions/builders_autoload.rb +0 -11
- data/lib/releaf/permissions/devise_component.rb +0 -8
- data/lib/releaf/permissions/users_component.rb +0 -7
- data/releaf-permissions.gemspec +0 -19
- data/spec/builders/roles/form_builder_spec.rb +0 -38
- data/spec/builders/roles/table_builder_spec.rb +0 -29
- data/spec/controllers/permissions/home_controller_spec.rb +0 -52
data/releaf-permissions.gemspec
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
require File.expand_path("../../releaf-core/lib/releaf/version.rb", __FILE__)
|
2
|
-
|
3
|
-
Gem::Specification.new do |s|
|
4
|
-
s.name = "releaf-permissions"
|
5
|
-
s.version = Releaf::VERSION
|
6
|
-
|
7
|
-
s.summary = "Built-in admin and role support for releaf"
|
8
|
-
s.description = "Admin/role subsystem for releaf"
|
9
|
-
s.authors = ["CubeSystems"]
|
10
|
-
s.email = 'info@cubesystems.lv'
|
11
|
-
s.homepage = 'https://github.com/cubesystems/releaf'
|
12
|
-
|
13
|
-
s.files = `git ls-files`.split("\n")
|
14
|
-
s.test_files = Dir["spec/**/*"]
|
15
|
-
|
16
|
-
s.add_dependency 'releaf-core', Releaf::VERSION
|
17
|
-
s.add_dependency 'devise'
|
18
|
-
|
19
|
-
end
|
@@ -1,38 +0,0 @@
|
|
1
|
-
require 'rails_helper'
|
2
|
-
|
3
|
-
describe Releaf::Permissions::Roles::FormBuilder, type: :class do
|
4
|
-
class FormBuilderTestHelper < ActionView::Base; end
|
5
|
-
let(:template){ FormBuilderTestHelper.new }
|
6
|
-
let(:object){ Releaf::Permissions::Role.new }
|
7
|
-
let(:subject){ described_class.new(:resource, object, template, {}) }
|
8
|
-
|
9
|
-
describe "#render_default_controller" do
|
10
|
-
it "pass localized controller options to releaf item field" do
|
11
|
-
allow(Releaf.application.config).to receive(:available_controllers)
|
12
|
-
.and_return(["releaf/i18n_database/translations", "releaf/content/nodes"])
|
13
|
-
translated_controllers = {"Releaf/i18n database/translations"=>"releaf/i18n_database/translations", "Releaf/content/nodes"=>"releaf/content/nodes"}
|
14
|
-
|
15
|
-
allow(subject).to receive(:releaf_item_field).with(:default_controller, options: {select_options: translated_controllers}).and_return("x")
|
16
|
-
expect(subject.render_default_controller).to eq("x")
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
describe "#render_permissions" do
|
21
|
-
it "returns associated set field" do
|
22
|
-
options = {association: {items: "x", field: :permission}}
|
23
|
-
allow(subject).to receive(:permission_items).and_return("x")
|
24
|
-
allow(subject).to receive(:releaf_associated_set_field).with(:permissions, options: options).and_return("y")
|
25
|
-
expect(subject.render_permissions).to eq("y")
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
describe "#permission_items" do
|
30
|
-
it "returns scoped and translated controller values" do
|
31
|
-
allow(Releaf.application.config).to receive(:available_controllers)
|
32
|
-
.and_return(["releaf/content/nodes", "admin/chapters"])
|
33
|
-
allow(subject).to receive(:t).with("releaf/content/nodes", scope: "admin.controllers").and_return("controller 1")
|
34
|
-
allow(subject).to receive(:t).with("admin/chapters", scope: "admin.controllers").and_return("controller 2")
|
35
|
-
expect(subject.permission_items).to eq("controller.releaf/content/nodes" => "controller 1", "controller.admin/chapters" => "controller 2")
|
36
|
-
end
|
37
|
-
end
|
38
|
-
end
|
@@ -1,29 +0,0 @@
|
|
1
|
-
require "rails_helper"
|
2
|
-
|
3
|
-
describe Releaf::Permissions::Roles::TableBuilder, type: :class do
|
4
|
-
class TableBuilderTestHelper < ActionView::Base; end
|
5
|
-
let(:template){ TableBuilderTestHelper.new }
|
6
|
-
let(:resource_class){ Releaf::Permissions::Role }
|
7
|
-
let(:subject){ described_class.new([], resource_class, template, {}) }
|
8
|
-
|
9
|
-
describe "#column_names" do
|
10
|
-
it "returns name and default_controller as column names array" do
|
11
|
-
expect(subject.column_names).to eq([:name, :default_controller])
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
describe "#default_controller_content" do
|
16
|
-
context "when default controller is defined for given resource" do
|
17
|
-
it "returns translated value" do
|
18
|
-
allow(I18n).to receive(:t).with("releaf/i18n/database/translations", scope: "admin.controllers").and_return("x")
|
19
|
-
expect(subject.default_controller_content(resource_class.new(default_controller: "releaf/i18n_database/translations"))).to eq("x")
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
context "when default controller is not defined for given resource" do
|
24
|
-
it "returns dash" do
|
25
|
-
expect(subject.default_controller_content(resource_class.new)).to eq("-")
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
@@ -1,52 +0,0 @@
|
|
1
|
-
require 'rails_helper'
|
2
|
-
|
3
|
-
describe Releaf::Permissions::HomeController do
|
4
|
-
|
5
|
-
describe "GET home" do
|
6
|
-
context "when authorized as user" do
|
7
|
-
login_as_user :user
|
8
|
-
|
9
|
-
before do
|
10
|
-
@role = subject.current_releaf_permissions_user.role
|
11
|
-
end
|
12
|
-
|
13
|
-
it "redirects to users controller" do
|
14
|
-
get :home
|
15
|
-
expect(response).to redirect_to(url_for(action: 'index', controller: @role.default_controller, only_path: true))
|
16
|
-
end
|
17
|
-
|
18
|
-
context "when users default controller doesn't exist" do
|
19
|
-
before do
|
20
|
-
@role.update_attribute(:default_controller, 'non_existing/controllers_name')
|
21
|
-
end
|
22
|
-
|
23
|
-
it "redirects to first available controller" do
|
24
|
-
get :home
|
25
|
-
expect(response).to redirect_to(url_for(action: 'index', controller: "releaf/content/nodes", only_path: true))
|
26
|
-
end
|
27
|
-
|
28
|
-
context "when no releaf controller is available" do
|
29
|
-
before do
|
30
|
-
@role.permissions = []
|
31
|
-
@role.save!
|
32
|
-
end
|
33
|
-
|
34
|
-
it "redirects to root_path" do
|
35
|
-
get :home
|
36
|
-
expect(response).to redirect_to(root_path)
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
context "when authorized as content user" do
|
43
|
-
login_as_user :user
|
44
|
-
|
45
|
-
it "redirects to content controller" do
|
46
|
-
get :home
|
47
|
-
expect(response)
|
48
|
-
.to redirect_to(url_for(action: 'index', controller: subject.current_releaf_permissions_user.role.default_controller, only_path: true))
|
49
|
-
end
|
50
|
-
end
|
51
|
-
end
|
52
|
-
end
|