ecm_rbac 1.0.1 → 1.2.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: 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