ecm_rbac 1.0.1 → 1.2.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: 696bacc1b0dd1799b577487bb2c74ff765eb1f39
4
- data.tar.gz: 7adf7dcd893a17b2f8acf30415c76760b11ee6e8
3
+ metadata.gz: 9c8b02d4a0eaf040af21b2231717895fd91d5ac9
4
+ data.tar.gz: 28e37f1b4a9f72e7b01ef2680303eef2fba980fc
5
5
  SHA512:
6
- metadata.gz: 4774a3d21f04dafd94cc30c44e1038c26a3c73574d798de3208a2372e9d5ec05e7deb547cf9d46686658314d14908e89be7e2885aa82332b0bfa84978211e663
7
- data.tar.gz: 481f896cf39216c1b001fc353752101626dd43e1b770ee612ddfe3e7b592b371c38ab73507b0d51b60f1bab706e63df626d2290f3d26865140c6921b7b8bf1b7
6
+ metadata.gz: 9dfc2054a5bfc480127a46d2406768fb10c3fa38f0a6133c7e422c3805466445dbaa47ad4558d5cdb1d949bbd5ccfb5fc24b5c99840d2f63d0df4e40f005b12d
7
+ data.tar.gz: 493aa5e35112db5f9c0f5ced6df6db8428dfb73b4291b0b762933efa063555a707e2a3eb48cc1a5c600d120f46aad5da5db1c30e1eb7b6de0e0056e3ec76cbf7
@@ -0,0 +1,8 @@
1
+ module Ecm
2
+ module Rbac
3
+ class ApplicationService < Rails::AddOns::Service::Base
4
+ class Result < Rails::AddOns::Service::Result::Base
5
+ end
6
+ end
7
+ end
8
+ end
@@ -2,8 +2,8 @@ require_dependency 'itsf_services'
2
2
  require_dependency 'active_model/validations/file_readability_validator'
3
3
 
4
4
  module Ecm::Rbac
5
- class ImportDefaultPermissionsService < Itsf::Services::V2::Service::Base
6
- class Response < Itsf::Services::V2::Response::Base
5
+ class ImportDefaultPermissionsService < ApplicationService
6
+ class Result < ApplicationService::Result
7
7
  attr_accessor :permissions, :roles, :role_permissions
8
8
  end
9
9
 
@@ -11,27 +11,24 @@ module Ecm::Rbac
11
11
 
12
12
  validates :filename, file_readability: true
13
13
 
14
- def do_work
15
- say 'Start'
16
- say 'Validating input', indent: 1
17
- unless valid?
18
- say "Inputs are invalid. Errors: #{errors.full_messages.to_sentence}", indent: 1
19
- say 'Aborted'
20
- return response
14
+ def _perform
15
+ say 'Validating input' do
16
+ unless valid?
17
+ say "Inputs are invalid. Errors: #{errors.full_messages.to_sentence}"
18
+ say 'Aborted'
19
+ return
20
+ end
21
21
  end
22
- say 'Input is valid', indent: 1
23
22
 
24
- return response unless load_yaml
25
- return response unless yaml_structure_valid?
23
+ return unless load_yaml
24
+ return unless yaml_structure_valid?
26
25
 
27
26
  load_permissions
28
27
  load_roles
29
28
 
30
- response.permissions = create_or_update_permissions
31
- response.roles = create_or_update_roles
32
- response.role_permissions = create_or_update_role_permissions
33
- say 'Done'
34
- respond
29
+ @result.permissions = create_or_update_permissions
30
+ @result.roles = create_or_update_roles
31
+ @result.role_permissions = create_or_update_role_permissions
35
32
  end
36
33
 
37
34
  private
@@ -46,7 +43,7 @@ module Ecm::Rbac
46
43
  permission.save!
47
44
  end
48
45
  end
49
- say "Saved #{permissions.count} permissions", indent: 1
46
+ say "Saved #{permissions.count} permissions"
50
47
  permissions
51
48
  end
52
49
 
@@ -56,14 +53,14 @@ module Ecm::Rbac
56
53
  role.save!
57
54
  end
58
55
  end
59
- say "Saved #{roles.count} roles", indent: 1
56
+ say "Saved #{roles.count} roles"
60
57
  roles
61
58
  end
62
59
 
63
60
  def create_or_update_role_permissions
64
61
  role_permissions = @roles.collect do |role_identifier, permissions|
65
62
  role = Ecm::Rbac::Role.where(identifier: role_identifier).first
66
- permissions.collect do |permission_identifier|
63
+ (permissions ||[]).collect do |permission_identifier|
67
64
  permission = Ecm::Rbac::Permission.where(identifier: permission_identifier).first
68
65
 
69
66
  Ecm::Rbac::RolePermission.where(role_id: role, permission_id: permission).first_or_initialize.tap do |role_permission|
@@ -71,33 +68,33 @@ module Ecm::Rbac
71
68
  end
72
69
  end
73
70
  end.flatten
74
- say "Saved #{role_permissions.count} role permissions", indent: 1
71
+ say "Saved #{role_permissions.count} role permissions"
75
72
  role_permissions
76
73
  end
77
74
 
78
75
  def load_permissions
79
- @permissions = @yaml[:defaults][:permissions]
80
- say "Loaded #{@permissions.size} permissions", indent: 1
76
+ @permissions = @yaml[:defaults][:permissions] || []
77
+ say "Loaded #{@permissions.size} permissions"
81
78
  end
82
79
 
83
80
  def load_roles
84
- @roles = @yaml[:defaults][:roles]
85
- say "Loaded #{@roles.size} roles", indent: 1
81
+ @roles = @yaml[:defaults][:roles] || []
82
+ say "Loaded #{@roles.size} roles"
86
83
  end
87
84
 
88
85
  def load_yaml
89
86
  yaml = YAML.load_file(filename)
90
87
  if yaml
91
- say "Loaded YAML from #{filename}", indent: 1
88
+ say "Loaded YAML from #{filename}"
92
89
  @yaml = yaml.with_indifferent_access
93
90
  else
94
- say "Could not load YAML from #{filename}", indent: 1
91
+ say "Could not load YAML from #{filename}"
95
92
  @yaml = yaml
96
93
  end
97
94
  end
98
95
 
99
96
  def yaml_structure_valid?
100
- say "Checking for valid YAML structure", indent: 1
97
+ say "Checking for valid YAML structure"
101
98
  unless @yaml.is_a?(Hash)
102
99
  add_error_and_say(:yaml_file, "Expected file content of #{filename} to parse to a Hash, but was #{@yaml.class}")
103
100
  return false
@@ -0,0 +1,2 @@
1
+ = table.association Ecm::Rbac::Role.model_name.human(count: :other) do |resource|
2
+ - resource.roles.map(&:identifier).join(', ')
@@ -1,5 +1,5 @@
1
1
  module Ecm
2
2
  module Rbac
3
- VERSION = '1.0.1'.freeze
3
+ VERSION = '1.2.0'.freeze
4
4
  end
5
5
  end
data/lib/ecm_rbac.rb CHANGED
@@ -1,2 +1,4 @@
1
+ require 'rails-add_ons'
2
+
1
3
  require 'ecm/rbac'
2
4
  require 'ecm/rbac/engine'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ecm_rbac
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Roberto Vasquez Angel
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-03-10 00:00:00.000000000 Z
11
+ date: 2018-03-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -44,7 +44,9 @@ files:
44
44
  - app/models/ecm/rbac/role.rb
45
45
  - app/models/ecm/rbac/role_permission.rb
46
46
  - app/models/ecm/rbac/user_role.rb
47
+ - app/services/ecm/rbac/application_service.rb
47
48
  - app/services/ecm/rbac/import_default_permissions_service.rb
49
+ - app/views/ecm/rbac/_current_user_additional_table_rows.haml
48
50
  - app/views/layouts/ecm/rbac/application.html.erb
49
51
  - config/initializers/inject_user_concern.rb
50
52
  - config/locales/de.yml