strongbolt 0.3.12 → 0.3.13

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 (88) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +56 -0
  3. data/.rubocop_todo.yml +91 -0
  4. data/Gemfile +1 -1
  5. data/Gemfile.lock +18 -2
  6. data/Rakefile +1 -1
  7. data/app/controllers/strongbolt/capabilities_controller.rb +36 -45
  8. data/app/controllers/strongbolt/roles_controller.rb +39 -47
  9. data/app/controllers/strongbolt/security_controller.rb +2 -3
  10. data/app/controllers/strongbolt/user_groups_controller.rb +48 -54
  11. data/app/controllers/strongbolt/user_groups_users_controller.rb +2 -4
  12. data/app/controllers/strongbolt_controller.rb +1 -1
  13. data/circle.yml +13 -0
  14. data/lib/generators/strongbolt/fix_generator.rb +5 -6
  15. data/lib/generators/strongbolt/fix_unique_group_members_generator.rb +2 -3
  16. data/lib/generators/strongbolt/indexes_generator.rb +3 -4
  17. data/lib/generators/strongbolt/install_generator.rb +8 -9
  18. data/lib/generators/strongbolt/templates/fix_unique_group_members.rb +1 -1
  19. data/lib/generators/strongbolt/templates/indexes.rb +1 -1
  20. data/lib/generators/strongbolt/templates/migration.rb +11 -12
  21. data/lib/generators/strongbolt/templates/strongbolt.rb +1 -1
  22. data/lib/generators/strongbolt/views_generator.rb +4 -4
  23. data/lib/strongbolt.rb +51 -54
  24. data/lib/strongbolt/base.rb +1 -1
  25. data/lib/strongbolt/bolted.rb +12 -13
  26. data/lib/strongbolt/bolted_controller.rb +46 -57
  27. data/lib/strongbolt/capabilities_role.rb +5 -5
  28. data/lib/strongbolt/capability.rb +32 -31
  29. data/lib/strongbolt/configuration.rb +18 -19
  30. data/lib/strongbolt/controllers/url_helpers.rb +5 -5
  31. data/lib/strongbolt/engine.rb +9 -9
  32. data/lib/strongbolt/errors.rb +4 -4
  33. data/lib/strongbolt/generators/migration.rb +4 -6
  34. data/lib/strongbolt/helpers.rb +5 -7
  35. data/lib/strongbolt/rails/routes.rb +4 -4
  36. data/lib/strongbolt/role.rb +11 -12
  37. data/lib/strongbolt/roles_user_group.rb +5 -5
  38. data/lib/strongbolt/rspec.rb +2 -2
  39. data/lib/strongbolt/rspec/user.rb +13 -15
  40. data/lib/strongbolt/tenantable.rb +78 -80
  41. data/lib/strongbolt/user_abilities.rb +44 -54
  42. data/lib/strongbolt/user_group.rb +8 -10
  43. data/lib/strongbolt/user_groups_user.rb +6 -6
  44. data/lib/strongbolt/version.rb +1 -1
  45. data/lib/tasks/strongbolt_tasks.rake +4 -4
  46. data/spec/controllers/strongbolt/capabilities_controller_spec.rb +28 -45
  47. data/spec/controllers/strongbolt/roles_controller_spec.rb +39 -72
  48. data/spec/controllers/strongbolt/user_groups_controller_spec.rb +34 -65
  49. data/spec/controllers/strongbolt/user_groups_users_controller_spec.rb +11 -19
  50. data/spec/controllers/without_authorization_controller_spec.rb +5 -5
  51. data/spec/dummy/app/controllers/posts_controller.rb +2 -2
  52. data/spec/dummy/app/controllers/test_controller.rb +1 -1
  53. data/spec/dummy/app/controllers/without_authorization_controller.rb +1 -1
  54. data/spec/dummy/bin/rails +1 -1
  55. data/spec/dummy/config.ru +1 -1
  56. data/spec/dummy/config/application.rb +4 -5
  57. data/spec/dummy/config/initializers/cookies_serializer.rb +1 -1
  58. data/spec/dummy/config/initializers/strongbolt.rb +2 -2
  59. data/spec/dummy/config/routes.rb +1 -3
  60. data/spec/dummy/db/migrate/20150630212236_create_strongbolt_tables.rb +9 -10
  61. data/spec/dummy/db/migrate/20150630212251_create_strongbolt_tables_indexes.rb +2 -2
  62. data/spec/dummy/db/migrate/20160531110509_fix_unique_group_members.rb +1 -1
  63. data/spec/fabricators/capability_fabricator.rb +4 -4
  64. data/spec/fabricators/role_fabricator.rb +3 -3
  65. data/spec/fabricators/user_fabricator.rb +2 -2
  66. data/spec/fabricators/user_group_fabricator.rb +3 -3
  67. data/spec/fixtures/application.rb +6 -3
  68. data/spec/fixtures/controllers.rb +1 -1
  69. data/spec/spec_helper.rb +7 -8
  70. data/spec/strongbolt/bolted_controller_spec.rb +110 -208
  71. data/spec/strongbolt/bolted_spec.rb +26 -40
  72. data/spec/strongbolt/capability_spec.rb +72 -86
  73. data/spec/strongbolt/configuration_spec.rb +33 -46
  74. data/spec/strongbolt/controllers/url_helpers_spec.rb +7 -9
  75. data/spec/strongbolt/helpers_spec.rb +14 -16
  76. data/spec/strongbolt/role_spec.rb +32 -35
  77. data/spec/strongbolt/tenantable_spec.rb +88 -86
  78. data/spec/strongbolt/user_abilities_multiple_tenants_spec.rb +29 -34
  79. data/spec/strongbolt/user_abilities_spec.rb +142 -188
  80. data/spec/strongbolt/user_group_spec.rb +14 -14
  81. data/spec/strongbolt/users_tenant_spec.rb +10 -12
  82. data/spec/strongbolt_spec.rb +53 -73
  83. data/spec/support/controller_macros.rb +1 -3
  84. data/spec/support/db_setup.rb +31 -25
  85. data/spec/support/helpers.rb +12 -12
  86. data/spec/support/transactional_specs.rb +1 -3
  87. data/strongbolt.gemspec +14 -12
  88. metadata +20 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7d2d10e16e058d8de08c3b8bfad0d4a0fc26326a
4
- data.tar.gz: 3e9e1ab3a667b3e3fe3b793b2f63f7b0f0f38628
3
+ metadata.gz: 7327ac274c00438b501748f6f93f57237710e630
4
+ data.tar.gz: ba02bcccd69e25f437e0d9cee195bf8b326c1b83
5
5
  SHA512:
6
- metadata.gz: 20a4dc9f2d28742bad737f88f7119d372b5508d2bf12811883269e35bebd1bc89ebd651debe5827a13629be8b85deab51afe231f0246a155f7181ecf38f584c3
7
- data.tar.gz: bfdae782dc0ebd0e2ecb36cf160bf9660e1636aa10f5a1770810f0e0a76cae96850e51ff269bcb7d79e3768e2f99c995d230f35627931519841361083a56fa91
6
+ metadata.gz: 2699cb99bba155a48cf9bc82281d0fe2f1babc575bdb82ba88b5af722e0f8f471b5e835a25f872fcbe608a3d895e3fe039b74bb3b0559719c2e0cd997e73c0b2
7
+ data.tar.gz: d70f5117422b493c5cf568970adab8c3ffee464aaa16c9049d56e93b0473bcc995c71f3856acd31de09e3c9da7833fdc6cb9b8a11c070652cd0028c95bd9ca11
@@ -0,0 +1,56 @@
1
+ inherit_from: .rubocop_todo.yml
2
+
3
+ AllCops:
4
+ Exclude:
5
+ - 'bin/**/*'
6
+ - 'vendor/**/*'
7
+ - 'lib/generators/strongbolt/templates/strongbolt.rb'
8
+ - 'spec/dummy/db/schema.rb'
9
+
10
+ # Cop names are not displayed in offense messages by default. Change behavior
11
+ # by overriding DisplayCopNames, or by giving the -D/--display-cop-names
12
+ # option.
13
+ DisplayCopNames: false
14
+
15
+ Metrics/AbcSize:
16
+ Enabled: false
17
+
18
+ Metrics/BlockLength:
19
+ Enabled: false
20
+
21
+ Metrics/BlockNesting:
22
+ Enabled: false
23
+
24
+ Metrics/ClassLength:
25
+ Enabled: false
26
+
27
+ Metrics/CyclomaticComplexity:
28
+ Enabled: false
29
+
30
+ Metrics/LineLength:
31
+ Enabled: false
32
+
33
+ Metrics/MethodLength:
34
+ Enabled: false
35
+
36
+ Metrics/ModuleLength:
37
+ Enabled: false
38
+
39
+ Metrics/ParameterLists:
40
+ Enabled: false
41
+
42
+ Metrics/PerceivedComplexity:
43
+ Enabled: false
44
+
45
+ Style/ClassVars:
46
+ Enabled: false
47
+
48
+ Style/Documentation:
49
+ Enabled: false
50
+
51
+ Style/FrozenStringLiteralComment:
52
+ Enabled: false
53
+
54
+ Style/RedundantSelf:
55
+ Enabled: false
56
+
@@ -0,0 +1,91 @@
1
+ # This configuration was generated by
2
+ # `rubocop --auto-gen-config`
3
+ # on 2017-07-10 16:50:49 +0200 using RuboCop version 0.49.1.
4
+ # The point is for the user to remove these configuration records
5
+ # one by one as the offenses are removed from the code base.
6
+ # Note that changes in the inspected code, or installation of new
7
+ # versions of RuboCop, may require this file to be generated again.
8
+
9
+ # Offense count: 3
10
+ Lint/HandleExceptions:
11
+ Exclude:
12
+ - 'lib/strongbolt/bolted_controller.rb'
13
+ - 'spec/support/helpers.rb'
14
+
15
+ # Offense count: 1
16
+ Lint/LiteralInCondition:
17
+ Exclude:
18
+ - 'lib/strongbolt/rspec/user.rb'
19
+
20
+ # Offense count: 1
21
+ Lint/ShadowingOuterLocalVariable:
22
+ Exclude:
23
+ - 'lib/strongbolt/tenantable.rb'
24
+
25
+ # Offense count: 1
26
+ Lint/UselessAssignment:
27
+ Exclude:
28
+ - 'lib/strongbolt/user_abilities.rb'
29
+
30
+ # Offense count: 1
31
+ # Configuration parameters: EnforcedStyle, SupportedStyles.
32
+ # SupportedStyles: nested, compact
33
+ Style/ClassAndModuleChildren:
34
+ Exclude:
35
+ - 'lib/strongbolt/rails/routes.rb'
36
+
37
+ # Offense count: 1
38
+ # Configuration parameters: AllowedVariables.
39
+ Style/GlobalVars:
40
+ Exclude:
41
+ - 'spec/strongbolt/bolted_controller_spec.rb'
42
+
43
+ # Offense count: 8
44
+ # Configuration parameters: MinBodyLength.
45
+ Style/GuardClause:
46
+ Exclude:
47
+ - 'lib/strongbolt/bolted_controller.rb'
48
+ - 'lib/strongbolt/capability.rb'
49
+ - 'lib/strongbolt/configuration.rb'
50
+ - 'lib/strongbolt/role.rb'
51
+ - 'lib/strongbolt/rspec/user.rb'
52
+ - 'lib/strongbolt/tenantable.rb'
53
+
54
+ # Offense count: 5
55
+ Style/IdenticalConditionalBranches:
56
+ Exclude:
57
+ - 'lib/strongbolt/rspec/user.rb'
58
+ - 'lib/strongbolt/user_abilities.rb'
59
+
60
+ # Offense count: 2
61
+ # Cop supports --auto-correct.
62
+ # Configuration parameters: EnforcedStyle, SupportedStyles.
63
+ # SupportedStyles: line_count_dependent, lambda, literal
64
+ Style/Lambda:
65
+ Exclude:
66
+ - 'lib/strongbolt/capability.rb'
67
+ - 'lib/strongbolt/tenantable.rb'
68
+
69
+ # Offense count: 1
70
+ Style/MethodMissing:
71
+ Exclude:
72
+ - 'lib/strongbolt/configuration.rb'
73
+
74
+ # Offense count: 1
75
+ # Cop supports --auto-correct.
76
+ # Configuration parameters: AutoCorrect, EnforcedStyle, SupportedStyles.
77
+ # SupportedStyles: predicate, comparison
78
+ Style/NumericPredicate:
79
+ Exclude:
80
+ - 'spec/**/*'
81
+ - 'lib/strongbolt/role.rb'
82
+
83
+ # Offense count: 1
84
+ # Configuration parameters: NamePrefix, NamePrefixBlacklist, NameWhitelist.
85
+ # NamePrefix: is_, has_, have_
86
+ # NamePrefixBlacklist: is_, has_, have_
87
+ # NameWhitelist: is_a?
88
+ Style/PredicateName:
89
+ Exclude:
90
+ - 'spec/**/*'
91
+ - 'lib/strongbolt/user_abilities.rb'
data/Gemfile CHANGED
@@ -1,4 +1,4 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in strongbolt.gemspec
4
- gemspec
4
+ gemspec
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- strongbolt (0.3.11)
4
+ strongbolt (0.3.12)
5
5
  awesome_nested_set (~> 3.1.0)
6
6
  grant (~> 3.0)
7
7
  simple_form (~> 3.0)
@@ -36,6 +36,7 @@ GEM
36
36
  thread_safe (~> 0.1)
37
37
  tzinfo (~> 1.1)
38
38
  arel (5.0.1.20140414130214)
39
+ ast (2.3.0)
39
40
  awesome_nested_set (3.1.1)
40
41
  activerecord (>= 4.0.0, < 5.1)
41
42
  builder (3.2.2)
@@ -57,6 +58,10 @@ GEM
57
58
  mime-types-data (~> 3.2015)
58
59
  mime-types-data (3.2016.0521)
59
60
  minitest (5.9.0)
61
+ parallel (1.11.2)
62
+ parser (2.4.0.0)
63
+ ast (~> 2.2)
64
+ powerpack (0.1.1)
60
65
  rack (1.5.5)
61
66
  rack-test (0.6.3)
62
67
  rack (>= 1.0)
@@ -75,6 +80,8 @@ GEM
75
80
  activesupport (= 4.1.15)
76
81
  rake (>= 0.8.7)
77
82
  thor (>= 0.18.1, < 2.0)
83
+ rainbow (2.2.2)
84
+ rake
78
85
  rake (11.2.2)
79
86
  rspec (3.5.0)
80
87
  rspec-core (~> 3.5.0)
@@ -97,6 +104,13 @@ GEM
97
104
  rspec-mocks (~> 3.5.0)
98
105
  rspec-support (~> 3.5.0)
99
106
  rspec-support (3.5.0)
107
+ rubocop (0.49.1)
108
+ parallel (~> 1.10)
109
+ parser (>= 2.3.3.1, < 3.0)
110
+ powerpack (~> 0.1)
111
+ rainbow (>= 1.99.1, < 3.0)
112
+ ruby-progressbar (~> 1.7)
113
+ unicode-display_width (~> 1.0, >= 1.0.1)
100
114
  ruby-progressbar (1.8.1)
101
115
  shoulda-matchers (2.7.0)
102
116
  activesupport (>= 3.0.0)
@@ -115,6 +129,7 @@ GEM
115
129
  thread_safe (0.3.5)
116
130
  tzinfo (1.2.2)
117
131
  thread_safe (~> 0.1)
132
+ unicode-display_width (1.3.0)
118
133
 
119
134
  PLATFORMS
120
135
  ruby
@@ -127,9 +142,10 @@ DEPENDENCIES
127
142
  rails (~> 4.1.0)
128
143
  rake
129
144
  rspec-rails
145
+ rubocop
130
146
  shoulda-matchers (~> 2.7.0)
131
147
  sqlite3
132
148
  strongbolt!
133
149
 
134
150
  BUNDLED WITH
135
- 1.12.3
151
+ 1.15.0
data/Rakefile CHANGED
@@ -1 +1 @@
1
- require "bundler/gem_tasks"
1
+ require 'bundler/gem_tasks'
@@ -1,7 +1,5 @@
1
1
  module Strongbolt
2
-
3
2
  class CapabilitiesController < ::StrongboltController
4
-
5
3
  def index
6
4
  @capabilities = Capability.all
7
5
  end
@@ -11,67 +9,60 @@ module Strongbolt
11
9
  end
12
10
 
13
11
  def create
14
- begin
15
- @capability = Capability.where(capability_params).first_or_create
12
+ @capability = Capability.where(capability_params).first_or_create
16
13
 
17
- # If we have a role id, we add the capability to the role
18
- if params[:role_id].present?
19
- @role = Role.find params[:role_id]
20
- @role.capabilities << @capability
14
+ # If we have a role id, we add the capability to the role
15
+ if params[:role_id].present?
16
+ @role = Role.find params[:role_id]
17
+ @role.capabilities << @capability
21
18
 
22
- respond_to do |format|
23
- format.html { redirect_to role_path(@role) }
24
- format.json { head :ok }
25
- end
26
- else
27
- redirect_to capabilities_path
19
+ respond_to do |format|
20
+ format.html { redirect_to role_path(@role) }
21
+ format.json { head :ok }
28
22
  end
29
- rescue ActionController::ParameterMissing => e
30
- flash[:danger] = "Permission could not be created: ERROR #{e}"
23
+ else
31
24
  redirect_to capabilities_path
32
25
  end
26
+ rescue ActionController::ParameterMissing => e
27
+ flash[:danger] = "Permission could not be created: ERROR #{e}"
28
+ redirect_to capabilities_path
33
29
  end
34
30
 
35
31
  def destroy
36
- begin
37
-
38
- # If we're passed a role id
39
- if params[:role_id].present?
40
- @role = Role.find params[:role_id]
32
+ # If we're passed a role id
33
+ if params[:role_id].present?
34
+ @role = Role.find params[:role_id]
41
35
 
42
- if params[:id].present?
43
- conditions = {id: params[:id]}
44
- else
45
- conditions = capability_params
46
- end
36
+ conditions = if params[:id].present?
37
+ { id: params[:id] }
38
+ else
39
+ capability_params
40
+ end
47
41
 
48
- @capability = @role.capabilities.find_by(conditions)
49
- @role.capabilities.delete @capability
42
+ @capability = @role.capabilities.find_by(conditions)
43
+ @role.capabilities.delete @capability
50
44
 
51
- respond_to do |format|
52
- format.html { redirect_to role_path(@role) }
53
- format.json { head :ok }
54
- end
55
- else
56
- @capability = Capability.find params[:id]
57
- @capability.destroy
58
-
59
- redirect_to capabilities_path
45
+ respond_to do |format|
46
+ format.html { redirect_to role_path(@role) }
47
+ format.json { head :ok }
60
48
  end
61
- rescue ActiveRecord::DeleteRestrictionError
62
- flash[:danger] = "Permission has roles using it, delete relationships before deleting it"
63
-
64
- redirect_to capability_path(@capability)
49
+ else
50
+ @capability = Capability.find params[:id]
51
+ @capability.destroy
52
+
53
+ redirect_to capabilities_path
65
54
  end
55
+ rescue ActiveRecord::DeleteRestrictionError
56
+ flash[:danger] = 'Permission has roles using it, delete relationships before deleting it'
57
+
58
+ redirect_to capability_path(@capability)
66
59
  end
67
60
 
68
61
  private
69
62
 
70
63
  def capability_params
71
64
  params.require(:capability).permit(:model, :action,
72
- :require_ownership, :require_tenant_access)
65
+ :require_ownership, :require_tenant_access)
73
66
  end
74
-
75
67
  end
76
-
77
- end
68
+ end
@@ -1,9 +1,8 @@
1
1
  module Strongbolt
2
2
  class RolesController < ::StrongboltController
3
-
4
3
  def index
5
4
  @roles = Role.includes(:parent)
6
- .order('parent_id IS NOT NULL', 'parent_id', 'name')
5
+ .order('parent_id IS NOT NULL', 'parent_id', 'name')
7
6
  end
8
7
 
9
8
  def new
@@ -26,58 +25,52 @@ module Strongbolt
26
25
  end
27
26
 
28
27
  def create
29
- begin
30
- @role = Role.create! role_params
31
-
32
- flash[:success] = "Role was successfully created!"
33
- redirect_to role_path(@role)
34
- rescue ActiveRecord::RecordInvalid => e
35
- flash[:danger] = "Role could not be created, please review the errors below"
36
- redirect_to new_role_path
37
- rescue ActionController::ParameterMissing => e
38
- flash[:danger] = "Role could not be created: ERROR #{e}"
39
- redirect_to new_role_path
40
- rescue ActiveRecord::ActiveRecordError => e
41
- flash[:danger] = "The parent you selected leads to an impossible configuration"
42
- redirect_to edit_role_path(@role)
43
- end
28
+ @role = Role.create! role_params
29
+
30
+ flash[:success] = 'Role was successfully created!'
31
+ redirect_to role_path(@role)
32
+ rescue ActiveRecord::RecordInvalid
33
+ flash[:danger] = 'Role could not be created, please review the errors below'
34
+ redirect_to new_role_path
35
+ rescue ActionController::ParameterMissing => e
36
+ flash[:danger] = "Role could not be created: ERROR #{e}"
37
+ redirect_to new_role_path
38
+ rescue ActiveRecord::ActiveRecordError
39
+ flash[:danger] = 'The parent you selected leads to an impossible configuration'
40
+ redirect_to edit_role_path(@role)
44
41
  end
45
42
 
46
43
  def update
47
- begin
48
- @role = Role.find params[:id]
49
- @role.update_attributes! role_params
50
-
51
- flash[:success] = "Role was successfully updated!"
52
- redirect_to role_path(@role)
53
- rescue ActiveRecord::RecordInvalid => e
54
- flash[:danger] = "Role could not be updated, please review the errors below"
55
- redirect_to edit_role_path(@role)
56
- rescue ActionController::ParameterMissing => e
57
- flash[:danger] = "Role could not be updated: ERROR #{e}"
58
- redirect_to edit_role_path(@role)
59
- rescue ActiveRecord::ActiveRecordError => e
60
- flash[:danger] = "The parent you selected leads to an impossible configuration"
61
- redirect_to edit_role_path(@role)
62
- end
44
+ @role = Role.find params[:id]
45
+ @role.update_attributes! role_params
46
+
47
+ flash[:success] = 'Role was successfully updated!'
48
+ redirect_to role_path(@role)
49
+ rescue ActiveRecord::RecordInvalid
50
+ flash[:danger] = 'Role could not be updated, please review the errors below'
51
+ redirect_to edit_role_path(@role)
52
+ rescue ActionController::ParameterMissing => e
53
+ flash[:danger] = "Role could not be updated: ERROR #{e}"
54
+ redirect_to edit_role_path(@role)
55
+ rescue ActiveRecord::ActiveRecordError
56
+ flash[:danger] = 'The parent you selected leads to an impossible configuration'
57
+ redirect_to edit_role_path(@role)
63
58
  end
64
59
 
65
60
  def destroy
66
- begin
67
- @role = Role.find params[:id]
68
- @role.destroy!
61
+ @role = Role.find params[:id]
62
+ @role.destroy!
69
63
 
70
- flash[:success] = "Role #{@role.name} successfully deleted"
64
+ flash[:success] = "Role #{@role.name} successfully deleted"
71
65
 
72
- redirect_to roles_path
73
- rescue ActiveRecord::DeleteRestrictionError
74
- flash[:danger] = "Role #{@role.name} could not be deleted because #{@role.user_groups.size} user groups rely on it"
75
- redirect_to role_path(@role)
76
- end
66
+ redirect_to roles_path
67
+ rescue ActiveRecord::DeleteRestrictionError
68
+ flash[:danger] = "Role #{@role.name} could not be deleted because #{@role.user_groups.size} user groups rely on it"
69
+ redirect_to role_path(@role)
77
70
  end
78
71
 
79
- rescue_from ActiveRecord::RecordNotFound do |e|
80
- flash[:danger] = "Could not find role."
72
+ rescue_from ActiveRecord::RecordNotFound do |_e|
73
+ flash[:danger] = 'Could not find role.'
81
74
  redirect_to roles_path
82
75
  end
83
76
 
@@ -85,8 +78,7 @@ module Strongbolt
85
78
 
86
79
  def role_params
87
80
  params.require(:role).permit(:name, :parent_id, :description,
88
- :capability_ids => [])
81
+ capability_ids: [])
89
82
  end
90
-
91
83
  end
92
- end
84
+ end