active_admin_role 0.1.1 → 0.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.
Files changed (43) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +1 -0
  3. data/.rubocop.yml +16 -13
  4. data/.rubocop_todo.yml +23 -0
  5. data/.travis.yml +12 -3
  6. data/Appraisals +8 -9
  7. data/Gemfile +13 -10
  8. data/README.md +8 -4
  9. data/Rakefile +32 -3
  10. data/active_admin_role.gemspec +4 -3
  11. data/app/models/active_admin/manageable_resource.rb +51 -0
  12. data/app/models/active_admin/managed_resource.rb +5 -42
  13. data/app/models/active_admin/permission.rb +12 -17
  14. data/app/models/active_admin/permission_reloader.rb +47 -0
  15. data/app/models/active_admin_role/can_can/ability.rb +17 -0
  16. data/app/models/active_admin_role/dsl.rb +7 -0
  17. data/app/models/active_admin_role/role_based_authorizable.rb +43 -0
  18. data/gemfiles/{rails42.gemfile → 5.0.gemfile} +11 -11
  19. data/gemfiles/5.1.gemfile +26 -0
  20. data/gemfiles/5.2.gemfile +26 -0
  21. data/lib/active_admin_role.rb +3 -10
  22. data/lib/active_admin_role/active_admin/dsl.rb +1 -2
  23. data/lib/active_admin_role/active_admin/resource_controller.rb +11 -11
  24. data/lib/active_admin_role/config.rb +3 -2
  25. data/lib/active_admin_role/engine.rb +5 -2
  26. data/lib/active_admin_role/version.rb +1 -1
  27. data/lib/generators/active_admin_role/helper.rb +41 -41
  28. data/lib/generators/active_admin_role/install_generator.rb +16 -13
  29. data/lib/generators/active_admin_role/templates/admin/{permission.rb → permissions.tt} +1 -1
  30. data/lib/generators/active_admin_role/templates/{initializer.rb → initializer.tt} +0 -0
  31. data/lib/generators/active_admin_role/templates/migration/{add_role_to_admin_users.rb → add_role_to_admin_users.tt} +0 -0
  32. data/lib/generators/active_admin_role/templates/migration/{create_active_admin_managed_resources.rb → create_active_admin_managed_resources.tt} +0 -0
  33. data/lib/generators/active_admin_role/templates/migration/{create_active_admin_permissions.rb → create_active_admin_permissions.tt} +0 -0
  34. data/lib/generators/active_admin_role/templates/model/{ability.rb → ability.tt} +0 -0
  35. metadata +35 -21
  36. data/.ruby-style.yml +0 -242
  37. data/gemfiles/.bundle/config +0 -2
  38. data/gemfiles/rails50.gemfile +0 -27
  39. data/lib/active_admin_role/can_can/ability.rb +0 -15
  40. data/lib/active_admin_role/manageable_resource.rb +0 -45
  41. data/lib/active_admin_role/model.rb +0 -7
  42. data/lib/active_admin_role/role_based_authorizable.rb +0 -45
  43. data/tasks/test.rake +0 -10
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_admin_role
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yoshiyuki Hirano
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-10-09 00:00:00.000000000 Z
11
+ date: 2018-04-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activeadmin
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 1.0.0.pre4
19
+ version: 1.2.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: 1.0.0.pre4
26
+ version: 1.2.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: cancancan
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: 1.15.0
41
+ - !ruby/object:Gem::Dependency
42
+ name: railties
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: 5.0.0
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: 5.0.0
41
55
  description: Role based authorization with CanCanCan for Active Admin
42
56
  email:
43
57
  - yhirano@me.com
@@ -48,7 +62,7 @@ files:
48
62
  - ".gitignore"
49
63
  - ".rspec"
50
64
  - ".rubocop.yml"
51
- - ".ruby-style.yml"
65
+ - ".rubocop_todo.yml"
52
66
  - ".travis.yml"
53
67
  - Appraisals
54
68
  - Gemfile
@@ -56,33 +70,33 @@ files:
56
70
  - README.md
57
71
  - Rakefile
58
72
  - active_admin_role.gemspec
73
+ - app/models/active_admin/manageable_resource.rb
59
74
  - app/models/active_admin/managed_resource.rb
60
75
  - app/models/active_admin/permission.rb
76
+ - app/models/active_admin/permission_reloader.rb
77
+ - app/models/active_admin_role/can_can/ability.rb
78
+ - app/models/active_admin_role/dsl.rb
79
+ - app/models/active_admin_role/role_based_authorizable.rb
61
80
  - config/locales/en.yml
62
81
  - config/locales/ja.yml
63
- - gemfiles/.bundle/config
64
- - gemfiles/rails42.gemfile
65
- - gemfiles/rails50.gemfile
82
+ - gemfiles/5.0.gemfile
83
+ - gemfiles/5.1.gemfile
84
+ - gemfiles/5.2.gemfile
66
85
  - lib/active_admin_role.rb
67
86
  - lib/active_admin_role/active_admin/dsl.rb
68
87
  - lib/active_admin_role/active_admin/resource_controller.rb
69
- - lib/active_admin_role/can_can/ability.rb
70
88
  - lib/active_admin_role/config.rb
71
89
  - lib/active_admin_role/engine.rb
72
- - lib/active_admin_role/manageable_resource.rb
73
- - lib/active_admin_role/model.rb
74
- - lib/active_admin_role/role_based_authorizable.rb
75
90
  - lib/active_admin_role/version.rb
76
91
  - lib/generators/active_admin_role/USAGE
77
92
  - lib/generators/active_admin_role/helper.rb
78
93
  - lib/generators/active_admin_role/install_generator.rb
79
- - lib/generators/active_admin_role/templates/admin/permission.rb
80
- - lib/generators/active_admin_role/templates/initializer.rb
81
- - lib/generators/active_admin_role/templates/migration/add_role_to_admin_users.rb
82
- - lib/generators/active_admin_role/templates/migration/create_active_admin_managed_resources.rb
83
- - lib/generators/active_admin_role/templates/migration/create_active_admin_permissions.rb
84
- - lib/generators/active_admin_role/templates/model/ability.rb
85
- - tasks/test.rake
94
+ - lib/generators/active_admin_role/templates/admin/permissions.tt
95
+ - lib/generators/active_admin_role/templates/initializer.tt
96
+ - lib/generators/active_admin_role/templates/migration/add_role_to_admin_users.tt
97
+ - lib/generators/active_admin_role/templates/migration/create_active_admin_managed_resources.tt
98
+ - lib/generators/active_admin_role/templates/migration/create_active_admin_permissions.tt
99
+ - lib/generators/active_admin_role/templates/model/ability.tt
86
100
  homepage: https://github.com/yhirano55/active_admin_role
87
101
  licenses:
88
102
  - MIT
@@ -95,7 +109,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
95
109
  requirements:
96
110
  - - ">="
97
111
  - !ruby/object:Gem::Version
98
- version: 2.1.0
112
+ version: 2.2.2
99
113
  required_rubygems_version: !ruby/object:Gem::Requirement
100
114
  requirements:
101
115
  - - ">="
@@ -103,7 +117,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
103
117
  version: '0'
104
118
  requirements: []
105
119
  rubyforge_project:
106
- rubygems_version: 2.6.13
120
+ rubygems_version: 2.7.6
107
121
  signing_key:
108
122
  specification_version: 4
109
123
  summary: Role based authorization with CanCanCan for Active Admin
@@ -1,242 +0,0 @@
1
- AllCops:
2
- Exclude:
3
- - "vendor/**/*"
4
- UseCache: false
5
- Style/CollectionMethods:
6
- Description: Preferred collection methods.
7
- StyleGuide: https://github.com/bbatsov/ruby-style-guide#map-find-select-reduce-size
8
- Enabled: true
9
- PreferredMethods:
10
- collect: map
11
- collect!: map!
12
- find: detect
13
- find_all: select
14
- reduce: inject
15
- Style/DotPosition:
16
- Description: Checks the position of the dot in multi-line method calls.
17
- StyleGuide: https://github.com/bbatsov/ruby-style-guide#consistent-multi-line-chains
18
- Enabled: true
19
- EnforcedStyle: trailing
20
- SupportedStyles:
21
- - leading
22
- - trailing
23
- Style/FileName:
24
- Description: Use snake_case for source file names.
25
- StyleGuide: https://github.com/bbatsov/ruby-style-guide#snake-case-files
26
- Enabled: false
27
- Exclude: []
28
- Style/GuardClause:
29
- Description: Check for conditionals that can be replaced with guard clauses
30
- StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-nested-conditionals
31
- Enabled: false
32
- MinBodyLength: 1
33
- Style/IfUnlessModifier:
34
- Description: Favor modifier if/unless usage when you have a single-line body.
35
- StyleGuide: https://github.com/bbatsov/ruby-style-guide#if-as-a-modifier
36
- Enabled: false
37
- MaxLineLength: 80
38
- Style/OptionHash:
39
- Description: Don't use option hashes when you can use keyword arguments.
40
- Enabled: false
41
- Style/PercentLiteralDelimiters:
42
- Description: Use `%`-literal delimiters consistently
43
- StyleGuide: https://github.com/bbatsov/ruby-style-guide#percent-literal-braces
44
- Enabled: false
45
- PreferredDelimiters:
46
- "%": "()"
47
- "%i": "()"
48
- "%q": "()"
49
- "%Q": "()"
50
- "%r": "{}"
51
- "%s": "()"
52
- "%w": "()"
53
- "%W": "()"
54
- "%x": "()"
55
- Style/PredicateName:
56
- Description: Check the names of predicate methods.
57
- StyleGuide: https://github.com/bbatsov/ruby-style-guide#bool-methods-qmark
58
- Enabled: true
59
- NamePrefix:
60
- - is_
61
- - has_
62
- - have_
63
- NamePrefixBlacklist:
64
- - is_
65
- Exclude:
66
- - spec/**/*
67
- Style/RaiseArgs:
68
- Description: Checks the arguments passed to raise/fail.
69
- StyleGuide: https://github.com/bbatsov/ruby-style-guide#exception-class-messages
70
- Enabled: false
71
- EnforcedStyle: exploded
72
- SupportedStyles:
73
- - compact
74
- - exploded
75
- Style/SignalException:
76
- Description: Checks for proper usage of fail and raise.
77
- StyleGuide: https://github.com/bbatsov/ruby-style-guide#fail-method
78
- Enabled: false
79
- EnforcedStyle: semantic
80
- SupportedStyles:
81
- - only_raise
82
- - only_fail
83
- - semantic
84
- Style/SingleLineBlockParams:
85
- Description: Enforces the names of some block params.
86
- StyleGuide: https://github.com/bbatsov/ruby-style-guide#reduce-blocks
87
- Enabled: false
88
- Methods:
89
- - reduce:
90
- - a
91
- - e
92
- - inject:
93
- - a
94
- - e
95
- Style/SingleLineMethods:
96
- Description: Avoid single-line methods.
97
- StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-single-line-methods
98
- Enabled: false
99
- AllowIfMethodIsEmpty: true
100
- Style/StringLiterals:
101
- Description: Checks if uses of quotes match the configured preference.
102
- StyleGuide: https://github.com/bbatsov/ruby-style-guide#consistent-string-literals
103
- Enabled: true
104
- EnforcedStyle: double_quotes
105
- SupportedStyles:
106
- - single_quotes
107
- - double_quotes
108
- Style/StringLiteralsInInterpolation:
109
- Description: Checks if uses of quotes inside expressions in interpolated strings
110
- match the configured preference.
111
- Enabled: true
112
- EnforcedStyle: single_quotes
113
- SupportedStyles:
114
- - single_quotes
115
- - double_quotes
116
- Style/TrailingCommaInArguments:
117
- Description: 'Checks for trailing comma in argument lists.'
118
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-trailing-array-commas'
119
- Enabled: false
120
- EnforcedStyleForMultiline: no_comma
121
- SupportedStyles:
122
- - comma
123
- - consistent_comma
124
- - no_comma
125
- Style/TrailingCommaInLiteral:
126
- Description: 'Checks for trailing comma in array and hash literals.'
127
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-trailing-array-commas'
128
- Enabled: false
129
- EnforcedStyleForMultiline: no_comma
130
- SupportedStyles:
131
- - comma
132
- - consistent_comma
133
- - no_comma
134
- Metrics/AbcSize:
135
- Description: A calculated magnitude based on number of assignments, branches, and
136
- conditions.
137
- Enabled: false
138
- Max: 15
139
- Metrics/ClassLength:
140
- Description: Avoid classes longer than 100 lines of code.
141
- Enabled: false
142
- CountComments: false
143
- Max: 100
144
- Metrics/ModuleLength:
145
- CountComments: false
146
- Max: 100
147
- Description: Avoid modules longer than 100 lines of code.
148
- Enabled: false
149
- Metrics/CyclomaticComplexity:
150
- Description: A complexity metric that is strongly correlated to the number of test
151
- cases needed to validate a method.
152
- Enabled: false
153
- Max: 6
154
- Metrics/MethodLength:
155
- Description: Avoid methods longer than 10 lines of code.
156
- StyleGuide: https://github.com/bbatsov/ruby-style-guide#short-methods
157
- Enabled: false
158
- CountComments: false
159
- Max: 10
160
- Metrics/ParameterLists:
161
- Description: Avoid parameter lists longer than three or four parameters.
162
- StyleGuide: https://github.com/bbatsov/ruby-style-guide#too-many-params
163
- Enabled: false
164
- Max: 5
165
- CountKeywordArgs: true
166
- Metrics/PerceivedComplexity:
167
- Description: A complexity metric geared towards measuring complexity for a human
168
- reader.
169
- Enabled: false
170
- Max: 7
171
- Lint/AssignmentInCondition:
172
- Description: Don't use assignment in conditions.
173
- StyleGuide: https://github.com/bbatsov/ruby-style-guide#safe-assignment-in-condition
174
- Enabled: false
175
- AllowSafeAssignment: true
176
- Style/InlineComment:
177
- Description: Avoid inline comments.
178
- Enabled: false
179
- Style/AccessorMethodName:
180
- Description: Check the naming of accessor methods for get_/set_.
181
- Enabled: false
182
- Style/Alias:
183
- Description: Use alias_method instead of alias.
184
- StyleGuide: https://github.com/bbatsov/ruby-style-guide#alias-method
185
- Enabled: false
186
- Style/Documentation:
187
- Description: Document classes and non-namespace modules.
188
- Enabled: false
189
- Style/DoubleNegation:
190
- Description: Checks for uses of double negation (!!).
191
- StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-bang-bang
192
- Enabled: false
193
- Style/EachWithObject:
194
- Description: Prefer `each_with_object` over `inject` or `reduce`.
195
- Enabled: false
196
- Style/EmptyLiteral:
197
- Description: Prefer literals to Array.new/Hash.new/String.new.
198
- StyleGuide: https://github.com/bbatsov/ruby-style-guide#literal-array-hash
199
- Enabled: false
200
- Style/ModuleFunction:
201
- Description: Checks for usage of `extend self` in modules.
202
- StyleGuide: https://github.com/bbatsov/ruby-style-guide#module-function
203
- Enabled: false
204
- Style/OneLineConditional:
205
- Description: Favor the ternary operator(?:) over if/then/else/end constructs.
206
- StyleGuide: https://github.com/bbatsov/ruby-style-guide#ternary-operator
207
- Enabled: false
208
- Style/PerlBackrefs:
209
- Description: Avoid Perl-style regex back references.
210
- StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-perl-regexp-last-matchers
211
- Enabled: false
212
- Style/Send:
213
- Description: Prefer `Object#__send__` or `Object#public_send` to `send`, as `send`
214
- may overlap with existing methods.
215
- StyleGuide: https://github.com/bbatsov/ruby-style-guide#prefer-public-send
216
- Enabled: false
217
- Style/SpecialGlobalVars:
218
- Description: Avoid Perl-style global variables.
219
- StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-cryptic-perlisms
220
- Enabled: false
221
- Style/VariableInterpolation:
222
- Description: Don't interpolate global, instance and class variables directly in
223
- strings.
224
- StyleGuide: https://github.com/bbatsov/ruby-style-guide#curlies-interpolate
225
- Enabled: false
226
- Style/WhenThen:
227
- Description: Use when x then ... for one-line cases.
228
- StyleGuide: https://github.com/bbatsov/ruby-style-guide#one-line-cases
229
- Enabled: false
230
- Lint/EachWithObjectArgument:
231
- Description: Check for immutable argument given to each_with_object.
232
- Enabled: true
233
- Lint/HandleExceptions:
234
- Description: Don't suppress exception.
235
- StyleGuide: https://github.com/bbatsov/ruby-style-guide#dont-hide-exceptions
236
- Enabled: false
237
- Lint/LiteralInCondition:
238
- Description: Checks of literals used in conditions.
239
- Enabled: false
240
- Lint/LiteralInInterpolation:
241
- Description: Checks for literals used in interpolation.
242
- Enabled: false
@@ -1,2 +0,0 @@
1
- ---
2
- BUNDLE_DISABLE_SHARED_GEMS: "true"
@@ -1,27 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "rails", "~> 5.0.0"
6
- gem "activeadmin", :github => "activeadmin/activeadmin"
7
- gem "devise", "~> 4.2.0"
8
- gem "pry"
9
- gem "appraisal"
10
- gem "inherited_resources", :github => "activeadmin/inherited_resources"
11
-
12
- group :development do
13
- gem "bundler", "~> 1.13.0"
14
- gem "rake", "~> 10.0"
15
- gem "rubocop", "~> 0.40.0"
16
- end
17
-
18
- group :test do
19
- gem "capybara"
20
- gem "rspec-rails"
21
- gem "database_cleaner"
22
- gem "shoulda-matchers"
23
- gem "sqlite3", :platforms => :mri
24
- gem "poltergeist"
25
- end
26
-
27
- gemspec :path => "../"
@@ -1,15 +0,0 @@
1
- module ActiveAdminRole
2
- module CanCan
3
- module Ability
4
- private
5
-
6
- def register_role_based_abilities(user)
7
- return if user.guest_user?
8
-
9
- (::ActiveAdmin::Permission.indexed_cache[user.role] || []).select(&:active?).each do |permission|
10
- send(*permission.to_condition)
11
- end
12
- end
13
- end
14
- end
15
- end
@@ -1,45 +0,0 @@
1
- require "set"
2
-
3
- module ActiveAdminRole
4
- class ManageableResource
5
- def call
6
- namespace = ::ActiveAdmin.application.default_namespace
7
- ::ActiveAdmin.application.namespaces[namespace].resources.inject([]) do |result, resource|
8
- class_name = resource.controller.resource_class.to_s
9
- name = resource.resource_name.name
10
- actions = collect_defined_actions(resource)
11
-
12
- result += eval_actions(actions).map do |action|
13
- { class_name: class_name, name: name, action: action }
14
- end
15
-
16
- result
17
- end
18
- end
19
-
20
- private
21
-
22
- def collect_defined_actions(resource)
23
- if resource.respond_to?(:defined_actions)
24
- defined_actions = resource.defined_actions
25
- member_actions = resource.member_actions.map(&:name)
26
- collection_actions = resource.collection_actions.map(&:name)
27
- batch_actions = resource.batch_actions_enabled? ? [:batch_action] : []
28
-
29
- defined_actions | member_actions | member_actions | collection_actions | batch_actions
30
- else
31
- resource.page_actions.map(&:name) | [:index]
32
- end
33
- end
34
-
35
- def eval_actions(actions)
36
- actions.inject(Set.new) do |result, action|
37
- result << (actions_dictionary[action] || action).to_s
38
- end
39
- end
40
-
41
- def actions_dictionary
42
- @_actions_dictionary ||= ::ActiveAdmin::BaseController::Authorization::ACTIONS_DICTIONARY.dup
43
- end
44
- end
45
- end