curupira 0.1.3 → 0.1.4

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: 8ca4be82e390515697d16daa359b5a036d5d7189
4
- data.tar.gz: 49744e964b4f0572f47371659ae0cba69b503237
3
+ metadata.gz: eb29f068e6f4690afe2f64cf6587fd838f184c06
4
+ data.tar.gz: 0190a4567118d2378326c2a8b3e63e867012d648
5
5
  SHA512:
6
- metadata.gz: 21fc605d450e4b1ec20d09e7014c29a7516b328efb814f442a187db99c0aaa1bff6b341cb14bcd8750351c8939c598d820adb93767008b27b26cecf25ccaf8e1
7
- data.tar.gz: a8416b6983a96add5385eb7cb806442ad6d5878e1f5e7cff48260c9abec3ab94db3cbe2d90d976b87444d5336a9e298156358424302442edd26a9aaf234c8ba5
6
+ metadata.gz: 77124ff40f7f18dd59ad0ea3f61877334ac56d58420ac1cb1d71b213987a0b7cb3ba2e77dabcb514a33d6f2df7b9ca3670303b6be879782a4f5dc1720ea5a8d3
7
+ data.tar.gz: f1e03c952fd4de4338a27990c6a33562398fec2d4a66d24fa05f8107429f2033bb9b6eb9ec34d2b73fd159cddba784e816a0e634d4e285ccdcdf2287c853070e
@@ -1,45 +1,45 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- curupira (0.1.3)
4
+ curupira (0.1.4)
5
5
  cocoon
6
6
  jquery-rails
7
- rails (~> 4.2.0)
7
+ rails (~> 4.2.3)
8
8
  sorcery
9
9
 
10
10
  GEM
11
11
  remote: https://rubygems.org/
12
12
  specs:
13
- actionmailer (4.2.0)
14
- actionpack (= 4.2.0)
15
- actionview (= 4.2.0)
16
- activejob (= 4.2.0)
13
+ actionmailer (4.2.3)
14
+ actionpack (= 4.2.3)
15
+ actionview (= 4.2.3)
16
+ activejob (= 4.2.3)
17
17
  mail (~> 2.5, >= 2.5.4)
18
18
  rails-dom-testing (~> 1.0, >= 1.0.5)
19
- actionpack (4.2.0)
20
- actionview (= 4.2.0)
21
- activesupport (= 4.2.0)
22
- rack (~> 1.6.0)
19
+ actionpack (4.2.3)
20
+ actionview (= 4.2.3)
21
+ activesupport (= 4.2.3)
22
+ rack (~> 1.6)
23
23
  rack-test (~> 0.6.2)
24
24
  rails-dom-testing (~> 1.0, >= 1.0.5)
25
- rails-html-sanitizer (~> 1.0, >= 1.0.1)
26
- actionview (4.2.0)
27
- activesupport (= 4.2.0)
25
+ rails-html-sanitizer (~> 1.0, >= 1.0.2)
26
+ actionview (4.2.3)
27
+ activesupport (= 4.2.3)
28
28
  builder (~> 3.1)
29
29
  erubis (~> 2.7.0)
30
30
  rails-dom-testing (~> 1.0, >= 1.0.5)
31
- rails-html-sanitizer (~> 1.0, >= 1.0.1)
32
- activejob (4.2.0)
33
- activesupport (= 4.2.0)
31
+ rails-html-sanitizer (~> 1.0, >= 1.0.2)
32
+ activejob (4.2.3)
33
+ activesupport (= 4.2.3)
34
34
  globalid (>= 0.3.0)
35
- activemodel (4.2.0)
36
- activesupport (= 4.2.0)
35
+ activemodel (4.2.3)
36
+ activesupport (= 4.2.3)
37
37
  builder (~> 3.1)
38
- activerecord (4.2.0)
39
- activemodel (= 4.2.0)
40
- activesupport (= 4.2.0)
38
+ activerecord (4.2.3)
39
+ activemodel (= 4.2.3)
40
+ activesupport (= 4.2.3)
41
41
  arel (~> 6.0)
42
- activesupport (4.2.0)
42
+ activesupport (4.2.3)
43
43
  i18n (~> 0.7)
44
44
  json (~> 1.7, >= 1.7.7)
45
45
  minitest (~> 5.1)
@@ -49,25 +49,23 @@ GEM
49
49
  activesupport (>= 3.0)
50
50
  railties (>= 3.0)
51
51
  rspec-rails (>= 2.2)
52
- arel (6.0.0)
53
- bcrypt (3.1.10)
52
+ arel (6.0.3)
53
+ bcrypt (3.1.11)
54
54
  builder (3.2.2)
55
- byebug (3.5.1)
56
- columnize (~> 0.8)
57
- debugger-linecache (~> 1.2)
58
- slop (~> 3.6)
55
+ byebug (4.0.5)
56
+ columnize (= 0.9.0)
59
57
  capybara (2.4.4)
60
58
  mime-types (>= 1.16)
61
59
  nokogiri (>= 1.3.3)
62
60
  rack (>= 1.0.0)
63
61
  rack-test (>= 0.5.4)
64
62
  xpath (~> 2.0)
65
- cocoon (1.2.6)
63
+ cocoon (1.2.9)
66
64
  codeclimate-test-reporter (0.4.7)
67
65
  simplecov (>= 0.7.1, < 1.0.0)
68
66
  coderay (1.1.0)
69
67
  columnize (0.9.0)
70
- debugger-linecache (1.2.0)
68
+ concurrent-ruby (1.0.2)
71
69
  diff-lcs (1.2.5)
72
70
  docile (1.1.5)
73
71
  erubis (2.7.0)
@@ -76,75 +74,74 @@ GEM
76
74
  factory_girl_rails (4.5.0)
77
75
  factory_girl (~> 4.5.0)
78
76
  railties (>= 3.0.0)
79
- faraday (0.9.1)
77
+ faraday (0.9.2)
80
78
  multipart-post (>= 1.2, < 3)
81
- globalid (0.3.3)
79
+ globalid (0.3.7)
82
80
  activesupport (>= 4.1.0)
83
- hike (1.2.3)
84
81
  i18n (0.7.0)
85
- jquery-rails (4.0.3)
86
- rails-dom-testing (~> 1.0)
82
+ jquery-rails (4.2.1)
83
+ rails-dom-testing (>= 1, < 3)
87
84
  railties (>= 4.2.0)
88
85
  thor (>= 0.14, < 2.0)
89
- json (1.8.2)
90
- jwt (1.4.1)
91
- loofah (2.0.1)
86
+ json (1.8.3)
87
+ jwt (1.5.4)
88
+ loofah (2.0.2)
92
89
  nokogiri (>= 1.5.9)
93
- mail (2.6.3)
94
- mime-types (>= 1.16, < 3)
90
+ mail (2.6.4)
91
+ mime-types (>= 1.16, < 4)
95
92
  method_source (0.8.2)
96
- mime-types (2.4.3)
93
+ mime-types (2.6.1)
97
94
  mini_portile (0.6.2)
98
- minitest (5.5.1)
99
- multi_json (1.10.1)
95
+ minitest (5.8.0)
96
+ multi_json (1.11.2)
100
97
  multi_xml (0.5.5)
101
98
  multipart-post (2.0.0)
102
99
  nokogiri (1.6.6.2)
103
100
  mini_portile (~> 0.6.0)
104
- oauth (0.4.7)
105
- oauth2 (1.0.0)
101
+ oauth (0.5.1)
102
+ oauth2 (1.2.0)
106
103
  faraday (>= 0.8, < 0.10)
107
104
  jwt (~> 1.0)
108
105
  multi_json (~> 1.3)
109
106
  multi_xml (~> 0.5)
110
- rack (~> 1.2)
107
+ rack (>= 1.2, < 3)
111
108
  pry (0.10.1)
112
109
  coderay (~> 1.1.0)
113
110
  method_source (~> 0.8.1)
114
111
  slop (~> 3.4)
115
- pry-rails (0.3.3)
112
+ pry-rails (0.3.4)
116
113
  pry (>= 0.9.10)
117
- rack (1.6.0)
114
+ rack (1.6.4)
118
115
  rack-test (0.6.3)
119
116
  rack (>= 1.0)
120
- rails (4.2.0)
121
- actionmailer (= 4.2.0)
122
- actionpack (= 4.2.0)
123
- actionview (= 4.2.0)
124
- activejob (= 4.2.0)
125
- activemodel (= 4.2.0)
126
- activerecord (= 4.2.0)
127
- activesupport (= 4.2.0)
117
+ rails (4.2.3)
118
+ actionmailer (= 4.2.3)
119
+ actionpack (= 4.2.3)
120
+ actionview (= 4.2.3)
121
+ activejob (= 4.2.3)
122
+ activemodel (= 4.2.3)
123
+ activerecord (= 4.2.3)
124
+ activesupport (= 4.2.3)
128
125
  bundler (>= 1.3.0, < 2.0)
129
- railties (= 4.2.0)
126
+ railties (= 4.2.3)
130
127
  sprockets-rails
131
128
  rails-deprecated_sanitizer (1.0.3)
132
129
  activesupport (>= 4.2.0.alpha)
133
- rails-dom-testing (1.0.5)
130
+ rails-dom-testing (1.0.6)
134
131
  activesupport (>= 4.2.0.beta, < 5.0)
135
132
  nokogiri (~> 1.6.0)
136
133
  rails-deprecated_sanitizer (>= 1.0.1)
137
- rails-html-sanitizer (1.0.1)
134
+ rails-html-sanitizer (1.0.2)
138
135
  loofah (~> 2.0)
139
- railties (4.2.0)
140
- actionpack (= 4.2.0)
141
- activesupport (= 4.2.0)
136
+ railties (4.2.3)
137
+ actionpack (= 4.2.3)
138
+ activesupport (= 4.2.3)
142
139
  rake (>= 0.8.7)
143
140
  thor (>= 0.18.1, < 2.0)
144
141
  rake (10.4.2)
145
- rspec-core (3.2.1)
142
+ rspec-core (3.2.3)
146
143
  rspec-support (~> 3.2.0)
147
- rspec-expectations (3.2.0)
144
+ rspec-expectations (3.2.1)
148
145
  diff-lcs (>= 1.2.0, < 2.0)
149
146
  rspec-support (~> 3.2.0)
150
147
  rspec-mocks (3.2.1)
@@ -165,23 +162,20 @@ GEM
165
162
  simplecov-html (~> 0.9.0)
166
163
  simplecov-html (0.9.0)
167
164
  slop (3.6.0)
168
- sorcery (0.9.0)
165
+ sorcery (0.9.1)
169
166
  bcrypt (~> 3.1)
170
167
  oauth (~> 0.4, >= 0.4.4)
171
168
  oauth2 (>= 0.8.0)
172
- sprockets (2.12.3)
173
- hike (~> 1.2)
174
- multi_json (~> 1.0)
175
- rack (~> 1.0)
176
- tilt (~> 1.1, != 1.3.0)
177
- sprockets-rails (2.2.4)
178
- actionpack (>= 3.0)
179
- activesupport (>= 3.0)
180
- sprockets (>= 2.8, < 4.0)
169
+ sprockets (3.7.0)
170
+ concurrent-ruby (~> 1.0)
171
+ rack (> 1, < 3)
172
+ sprockets-rails (3.2.0)
173
+ actionpack (>= 4.0)
174
+ activesupport (>= 4.0)
175
+ sprockets (>= 3.0.0)
181
176
  sqlite3 (1.3.10)
182
177
  thor (0.19.1)
183
- thread_safe (0.3.4)
184
- tilt (1.4.1)
178
+ thread_safe (0.3.5)
185
179
  tzinfo (1.2.2)
186
180
  thread_safe (~> 0.1)
187
181
  xpath (2.0.0)
@@ -200,3 +194,6 @@ DEPENDENCIES
200
194
  pry-rails
201
195
  rspec-rails
202
196
  sqlite3
197
+
198
+ BUNDLED WITH
199
+ 1.11.2
data/README.md CHANGED
@@ -21,6 +21,19 @@ And run:
21
21
  bundle install
22
22
  ```
23
23
 
24
+ ## Environment preparation
25
+ It's necessary to setup user and password on database.yml. Ex:
26
+ ```ruby
27
+ user: "postgres"
28
+ password: "postgres"
29
+ ```
30
+
31
+ After this, run:
32
+
33
+ ```console
34
+ rake db:create
35
+ ```
36
+
24
37
  ## Rails Configuration
25
38
 
26
39
  ```console
@@ -29,9 +42,60 @@ rails generate curupira:install
29
42
 
30
43
  The generator will install an initializer which describes ALL of Sorcery's configuration options, models and migrations for authentication and authorization solution.
31
44
 
45
+ So, run migrations:
46
+
47
+ ```console
48
+ rake db:migrate
49
+ ```
50
+
51
+ You have to add an admin user to application. Edit the seeds.rb file:
52
+
53
+ ```ruby
54
+ User.create(username: "user", name: "Default Admin User", email: "user@mail.com", password: "123456", admin: true)
55
+ ```
56
+
57
+ Then run:
58
+
59
+ ```console
60
+ rake db:seed
61
+ ```
62
+
63
+ Run the following task:
64
+
65
+ ```console
66
+ rake curupira:db:generate_features
67
+ ```
68
+
69
+ Replace your en.yml file by curupira/spec/dummy/config/locales/en.yml
70
+
71
+ ## Root path
72
+
73
+ If you dont't have root path configurations on your applications, follow these step:
74
+
75
+ Add this line to routes.rb file:
76
+
77
+ ```ruby
78
+ root to: "home#index"
79
+ ```
80
+
81
+ Create the home controller:
82
+
83
+ ```ruby
84
+ class HomeController < ApplicationController
85
+ def index
86
+ end
87
+ end
88
+ ```
89
+
90
+ Create the index home page:
91
+
92
+ ```ruby
93
+ app/views/home/index.html.erb
94
+ ```
95
+
32
96
  ## Controller filters and helpers
33
97
 
34
- Curupira will provide some helpers to use inside controllers and views. To setup controller with user authentication, just this add before_action:
98
+ Curupira will provide some helpers to use inside controllers and views. To setup controller with user authentication, just add this before_action:
35
99
 
36
100
  ```ruby
37
101
  before_action :require_login
@@ -53,7 +117,7 @@ Curupira will generate views to add users, roles, groups and features in databas
53
117
  rails generate curupira:views
54
118
  ```
55
119
 
56
- For dafault, the curupira views use coccon for nested forms.
120
+ For default, the curupira views use coccon for nested forms.
57
121
 
58
122
  ## Configuring controllers
59
123
 
@@ -65,7 +129,7 @@ rails generate curupira:controllers
65
129
 
66
130
  ## Partials
67
131
 
68
- You should add in application.html.erb partials for menu, and helper for dispaly flash messages:
132
+ You should add in application.html.erb partials for menu, and helper for display flash messages:
69
133
 
70
134
  ```ruby
71
135
  <%- flash.each do |name, msg| -%>
@@ -78,9 +142,15 @@ You should add in application.html.erb partials for menu, and helper for dispaly
78
142
  ```
79
143
 
80
144
  * Add to your application.js
145
+ ```ruby
81
146
  //= require jquery
82
147
  //= require cocoon
148
+ ```
149
+
150
+ ## Using curupira
151
+
152
+ Open http://localhost:3000/session/new and inform the same user configured on seed file.
83
153
 
84
154
  ## License
85
155
 
86
- Curupira is released under the [MIT License](http://www.opensource.org/licenses/MIT).
156
+ Curupira is released under the [MIT License](http://www.opensource.org/licenses/MIT).
@@ -6,7 +6,7 @@ class Curupira::PasswordsController < ApplicationController
6
6
  end
7
7
 
8
8
  def create
9
- @user = User.find_by(params[:user])
9
+ @user = User.find_by(email: params[:user][:email])
10
10
  if @user.present?
11
11
  @user.deliver_reset_password_instructions!
12
12
  redirect_to new_session_path, notice: "Verifique seu email para receber instruções de recuperação de senha"
@@ -0,0 +1,19 @@
1
+ class Curupira::PermissionsController < Curupira::AuthorizedController
2
+ def create
3
+ @group_user = GroupUser.find(params[:group_user_id])
4
+
5
+ if @group_user.update(permissions_params)
6
+ redirect_to users_path, notice: "Permissões atualizadas com sucesso"
7
+ else
8
+ render :show
9
+ end
10
+ end
11
+
12
+ private
13
+
14
+ def permissions_params
15
+ params.require(:group_user).permit(
16
+ role_group_users_attributes:[:id, :role_id, :group_user_id]
17
+ )
18
+ end
19
+ end
@@ -1,4 +1,4 @@
1
- class Curupira::SessionsController < ApplicationController
1
+ class Curupira::SessionsController < ActionController::Base
2
2
  before_filter :redirect_to_root_with_errors, if: :current_user, except: :destroy
3
3
 
4
4
  def new
@@ -9,7 +9,7 @@ class Curupira::SessionsController < ApplicationController
9
9
  @user = login(params[:user][:username], params[:user][:password])
10
10
 
11
11
  if @user
12
- redirect_back_or_to(root_path, notice: 'Bem vindo!')
12
+ redirect_to(root_path, notice: 'Bem vindo!')
13
13
  else
14
14
  @user = User.new username: params[:user][:username]
15
15
  flash[:alert] = "Login ou senha inválidos"
@@ -41,7 +41,7 @@ class Curupira::UsersController < Curupira::AuthorizedController
41
41
 
42
42
  def permission
43
43
  @user = User.find(params[:user_id])
44
- @group_user = @user.group_users.find_by(group_id: params[:group_id])
44
+ @group_user = @user.group_users.find(params[:group_user_id])
45
45
  @group = @group_user.group
46
46
  end
47
47
 
@@ -4,16 +4,17 @@ module Curupira::AuthorizeHelper
4
4
  options ||= {}
5
5
 
6
6
  html_options = convert_options_to_data_attributes(options, html_options)
7
-
7
+
8
8
  url = url_for(options)
9
+ method = html_options["data-method"].to_s.upcase if html_options["data-method"]
9
10
 
10
- request_data = Rails.application.routes.recognize_path(url)
11
+ request_data = Rails.application.routes.recognize_path(url, method: method)
11
12
 
12
13
  if has_authorization_for(request_data)
13
14
  html_options['href'] ||= url
14
15
  else
15
16
  html_options['style'] = "cursor: not-allowed;"
16
- html_options['class'] = "not-allowed";
17
+ html_options['class'] = "#{html_options['class']} not-allowed";
17
18
  end
18
19
 
19
20
  content_tag(:a, name || url, html_options, &block)
@@ -22,16 +22,18 @@
22
22
  <div id="user_groups">
23
23
  <h3>Usuários vinculados</h3>
24
24
 
25
- <ul>
26
- <% @role.group_users.group(:group_id).each do |gu| %>
27
- <h4>Grupo <%= link_to gu.group.name, gu.group %></h4>
28
- <% @role.group_users.where(group_id:gu.group_id).each do |group_user|%>
29
- <ul>
30
- <li><%= link_to group_user.user.name, group_user.user %></li>
31
- </ul>
25
+ <% if @role.group_users.present? %>
26
+ <ul>
27
+ <% @role.group_users.group(:group_id).each do |gu| %>
28
+ <h4>Grupo <%= link_to gu.group.name, gu.group %></h4>
29
+ <% @role.group_users.where(group_id:gu.group_id).each do |group_user|%>
30
+ <ul>
31
+ <li><%= link_to group_user.user.name, group_user.user %></li>
32
+ </ul>
33
+ <% end %>
32
34
  <% end %>
33
- <% end %>
34
- </ul>
35
+ </ul>
36
+ <% end %>
35
37
  </div>
36
38
 
37
39
  <%= link_to "Voltar", roles_path %>
@@ -5,7 +5,7 @@
5
5
  </div>
6
6
 
7
7
  <div class="field">
8
- <%= f.label :name, "Nome" %><br>
8
+ <%= f.label :name, "Nome completo" %><br>
9
9
  <%= f.text_field :name %>
10
10
  </div>
11
11
 
@@ -1,10 +1,9 @@
1
1
  <div class="nested-fields">
2
2
  <% if f.object.role.blank? || f.object.role.active? %>
3
-
4
3
  <%= f.select :role_id, active_role_groups_select_options(@group) %>
5
4
  <% else %>
6
5
  <%= f.object.role.name %>
7
6
  <% end %>
8
-
7
+ <%= f.hidden_field :group_user_id, value: @group_user.id %>
9
8
  <%= link_to_remove_association "Remover", f %>
10
9
  </div>
@@ -4,17 +4,22 @@ Usuário <%= @user.name %>
4
4
 
5
5
  Grupo <%= @group.name %>
6
6
 
7
- <%= form_for @user do |f| %>
7
+ <%= form_for @group_user, url: permissions_path(@group_user) do |f| %>
8
8
  <div class="group_users">
9
9
  <h3>Perfil</h3>
10
10
 
11
- <%= f.fields_for :role_group_users do |b| %>
12
- <%= render "role_group_user_fields", f: b %>
13
- <% end %>
11
+ <%= f.fields_for :role_group_users do |b| %>
12
+ <%= render "role_group_user_fields", f: b %>
13
+ <% end %>
14
14
 
15
15
  <div class="links">
16
16
  <%= link_to_add_association 'Adicionar perfil', f, :role_group_users %>
17
17
  </div>
18
18
  </div>
19
+
20
+ <div class="actions">
21
+ <%= f.submit %><br>
22
+ or <%= link_to :cancel, users_path %>
23
+ </div>
19
24
  <% end %>
20
25
 
@@ -16,7 +16,7 @@
16
16
 
17
17
  <ul>
18
18
  <% @user.group_users.each do |group_user| %>
19
- <li><%= group_user.group.name %> <%= link_to "Vincular perfis do grupo", user_permission_path(@user,group_user.group) %>
19
+ <li><%= group_user.group.name %> <%= link_to "Vincular perfis do grupo", user_permission_path(@user, group_user) %>
20
20
  <% group_user.role_group_users.each do |role_group_user|%>
21
21
  <p><%= role_group_user.role.name %></p>
22
22
  <% end %>
@@ -25,4 +25,14 @@
25
25
  </ul>
26
26
  </div>
27
27
 
28
+ <div>
29
+ <h3>Perfis</h3>
30
+
31
+ <ul>
32
+ <% @user.role_group_users.each do |permission| %>
33
+ <li><%= permission.role.name %></li>
34
+ <% end -%>
35
+ </ul>
36
+ </div>
37
+
28
38
  <%= link_to "Voltar", users_path %>
@@ -17,7 +17,7 @@ Gem::Specification.new do |s|
17
17
  s.test_files = Dir["spec/**/*"]
18
18
  s.require_paths = ["lib"]
19
19
 
20
- s.add_dependency "rails", "~> 4.2.0"
20
+ s.add_dependency "rails", "~> 4.2.3"
21
21
  s.add_dependency "sorcery"
22
22
  s.add_dependency "cocoon"
23
23
  s.add_dependency "jquery-rails"
@@ -15,11 +15,11 @@ module Curupira
15
15
  end
16
16
 
17
17
  def has_authorization?
18
- return true if current_user.admin?
19
- query(params).present?
18
+ has_authorization_for(params)
20
19
  end
21
20
 
22
21
  def has_authorization_for(params)
22
+ return true if current_user.admin?
23
23
  query(params).present?
24
24
  end
25
25
 
@@ -31,7 +31,7 @@ module Curupira
31
31
 
32
32
  def query(params)
33
33
  User.joins(
34
- role_group_users: { role: { features: [:action_labels] } }
34
+ role_group_users: { role: { features: [:action_labels] } }
35
35
  )
36
36
  .where(
37
37
  features: { controller: params[:controller] },
@@ -3,9 +3,11 @@ module ActionDispatch::Routing
3
3
  def curupira_routes
4
4
  scope module: 'curupira' do
5
5
  resources :users, except: :destroy do
6
- get 'groups/:group_id/roles', to: 'users#permission',as: 'permission', action: :permission, controller: :users
6
+ get 'groups/:group_user_id/roles', to: 'users#permission',as: 'permission', action: :permission, controller: :users
7
7
  end
8
8
 
9
+ patch 'permissions/:group_user_id', to: 'permissions#create', as: 'permissions'
10
+
9
11
  resources :groups, except: :destroy
10
12
  resources :roles, except: :destroy
11
13
  resource :session, only: [:new, :create] do
@@ -1,3 +1,3 @@
1
1
  module Curupira
2
- VERSION = "0.1.3"
2
+ VERSION = "0.1.4"
3
3
  end
@@ -17,26 +17,11 @@ module Curupira
17
17
  copy_file 'sorcery.rb', 'config/initializers/sorcery.rb'
18
18
  end
19
19
 
20
- def create_role_group_user
21
- create_model "role_group_user"
22
- create_migration_to("role_group_user")
23
- end
24
-
25
- def create_authorization
26
- create_model "authorization"
27
- create_migration_to("authorization")
28
- end
29
-
30
20
  def create_feature
31
21
  create_model "feature"
32
22
  create_migration_to("feature")
33
23
  end
34
24
 
35
- def create_groups
36
- create_model "group"
37
- create_migration_to("group")
38
- end
39
-
40
25
  def create_role
41
26
  create_model "role"
42
27
  create_migration_to("role")
@@ -54,11 +39,26 @@ module Curupira
54
39
  end
55
40
  end
56
41
 
42
+ def create_groups
43
+ create_model "group"
44
+ create_migration_to("group")
45
+ end
46
+
57
47
  def create_group_user
58
48
  create_model "group_user"
59
49
  create_migration_to("group_user")
60
50
  end
61
51
 
52
+ def create_authorization
53
+ create_model "authorization"
54
+ create_migration_to("authorization")
55
+ end
56
+
57
+ def create_role_group_user
58
+ create_model "role_group_user"
59
+ create_migration_to("role_group_user")
60
+ end
61
+
62
62
  def create_role_group
63
63
  create_model "role_group"
64
64
  create_migration_to("role_group")
@@ -6,7 +6,7 @@ class CreateRoleGroupUsers < ActiveRecord::Migration
6
6
 
7
7
  t.timestamps null: false
8
8
  end
9
- add_foreign_key :authorizations, :group_users
10
- add_foreign_key :authorizations, :roles
9
+ add_foreign_key :role_group_users, :group_users
10
+ add_foreign_key :role_group_users, :roles
11
11
  end
12
12
  end
@@ -0,0 +1,43 @@
1
+ namespace :curupira do
2
+ namespace :db do
3
+ desc "Generate the records of the features"
4
+ task :generate_features => :environment do
5
+ Rails.application.eager_load!
6
+
7
+ def eval_curupira_action(controller, action)
8
+ feature_desc = case action.to_s
9
+ when "index", "show", "search"
10
+ I18n.t("curupira.features.#{controller}.show")
11
+ when "create", "new"
12
+ I18n.t("curupira.features.#{controller}.create")
13
+ when "edit", "update"
14
+ I18n.t("curupira.features.#{controller}.edit")
15
+ when "delete", "destroy"
16
+ I18n.t("curupira.features.#{controller}.delete")
17
+ else
18
+ "Other: " << action.to_s
19
+ end
20
+ end
21
+
22
+ Curupira::AuthorizedController.subclasses.each do |controller|
23
+ clazz = controller.to_s.underscore.gsub("_controller", "")
24
+
25
+ feature = Feature.create name: I18n.t("curupira.features.#{clazz}.manage"), controller: clazz
26
+ feature.action_labels << ActionLabel.create(name: "manage")
27
+
28
+ controller.action_methods.each do |action|
29
+ feature_description = eval_curupira_action(clazz, action)
30
+
31
+ feature = Feature.find_by(name: feature_description)
32
+
33
+ if feature.present?
34
+ feature.action_labels << ActionLabel.create(name: action)
35
+ else
36
+ feature = Feature.create name: feature_description, controller: clazz
37
+ feature.action_labels << ActionLabel.create(name: action)
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,43 @@
1
+ require 'rails_helper'
2
+
3
+ describe Curupira::PermissionsController do
4
+ let(:user) { FactoryGirl.create :user }
5
+
6
+ before do
7
+ login_user(user)
8
+ end
9
+
10
+ describe "POST create" do
11
+ let(:group) { FactoryGirl.create :group }
12
+ let!(:group_user) { FactoryGirl.create :group_user, user: user, group: group }
13
+ let!(:role) { FactoryGirl.create :role }
14
+
15
+ let(:params) do
16
+ {
17
+ role_group_users_attributes: {
18
+ "0": {
19
+ role_id: role.id,
20
+ group_user_id: group_user.id,
21
+ _destroy: true
22
+ }
23
+ }
24
+ }
25
+ end
26
+
27
+ before do
28
+ patch :create, user_id: user, group_user_id: group_user, group_user: params
29
+ end
30
+
31
+ it "sets flash message" do
32
+ expect(flash[:notice]).to eql "Permissões atualizadas com sucesso"
33
+ end
34
+
35
+ it "redirects to user" do
36
+ expect(response).to redirect_to users_path
37
+ end
38
+
39
+ it "updates user permissions" do
40
+ expect(user.role_group_users).to_not be_empty
41
+ end
42
+ end
43
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: curupira
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Paulo Moura
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2015-03-23 00:00:00.000000000 Z
14
+ date: 2016-09-30 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: rails
@@ -19,14 +19,14 @@ dependencies:
19
19
  requirements:
20
20
  - - "~>"
21
21
  - !ruby/object:Gem::Version
22
- version: 4.2.0
22
+ version: 4.2.3
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
27
  - - "~>"
28
28
  - !ruby/object:Gem::Version
29
- version: 4.2.0
29
+ version: 4.2.3
30
30
  - !ruby/object:Gem::Dependency
31
31
  name: sorcery
32
32
  requirement: !ruby/object:Gem::Requirement
@@ -131,6 +131,7 @@ files:
131
131
  - app/controllers/curupira/authorized_controller.rb
132
132
  - app/controllers/curupira/groups_controller.rb
133
133
  - app/controllers/curupira/passwords_controller.rb
134
+ - app/controllers/curupira/permissions_controller.rb
134
135
  - app/controllers/curupira/roles_controller.rb
135
136
  - app/controllers/curupira/sessions_controller.rb
136
137
  - app/controllers/curupira/users_controller.rb
@@ -198,7 +199,7 @@ files:
198
199
  - lib/generators/curupira/templates/models/user.rb
199
200
  - lib/generators/curupira/templates/sorcery.rb
200
201
  - lib/generators/curupira/views/views_generator.rb
201
- - lib/tasks/curupira_tasks.rake
202
+ - lib/tasks/generate_features.rake
202
203
  - spec/app_templates/app/models/action_label.rb
203
204
  - spec/app_templates/app/models/authorization.rb
204
205
  - spec/app_templates/app/models/feature.rb
@@ -214,6 +215,7 @@ files:
214
215
  - spec/controllers/controller_spec.rb
215
216
  - spec/controllers/groups_controller_spec.rb
216
217
  - spec/controllers/passwords_controller_spec.rb
218
+ - spec/controllers/permissions_controller_spec.rb
217
219
  - spec/controllers/roles_controller_spec.rb
218
220
  - spec/controllers/sessions_controller_spec.rb
219
221
  - spec/controllers/users_controller_spec.rb
@@ -307,6 +309,33 @@ files:
307
309
  - spec/dummy/tmp/cache/assets/development/sprockets/f08dd8750f1b67d0b39d0453340debd1
308
310
  - spec/dummy/tmp/cache/assets/development/sprockets/f4c8cc7ee30d971cd1dfe35590150076
309
311
  - spec/dummy/tmp/cache/assets/development/sprockets/f7cbd26ba1d28d48de824f0e94586655
312
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/11/11qUINZVkspPusRjYi0EsPGHgPx1ucKYEW7OZa-ROf8.cache
313
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/3V/3VpANc-zUJ4o7xwd6zey29ROk_3UHDhxxKGTqfvurns.cache
314
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/43/43vpVqY0hqfeLEu7IJrvfDfxli39gGvbKgz3CR4r7W0.cache
315
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/5L/5Lly_CA8DZvPhQV2jDQx-Y6P_y3Ygra9t5jfSlGhHDA.cache
316
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/6J/6JN1_8GdgZtvpBXXuiWuMY7xt6IjydJ3lJSZsjxCW9Q.cache
317
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/6l/6lnXZ4Zo5E5OEd0CTZ3N7e4sPYkJb2eE3fNcALJZELI.cache
318
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/C_/C_FnpuuPmQ9tbuExCy9OboIU-vODSbW_ziARCnV-fVs.cache
319
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/Dc/DcvIrhAdXfgYuyAVsBv-gJHocSghSL13sAlclmZDTPk.cache
320
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/GJ/GJviH6KdNN1xr8mBlY11cqDqKlYMWIx6e8SqSJ0rnf4.cache
321
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/No/NoS_8-C65A3rQoHefOJ8Tz2I4_MN8TQRiL98uDIS3ac.cache
322
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/OI/OI6uxGcnsKavdWTtwDAasU3wPx8QXhzBgV0X2n1KjMQ.cache
323
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/P8/P8KxPEymBRfVloJ9-DKnbW3cd5PupDTZ4vu-4jK-APY.cache
324
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/Rh/RhU8_A_NiK15IOcNzSB6T59G09jvVjGGeCXR8TKllsU.cache
325
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/Si/SijZ6H6BzYCYwbV7RUkDMAMKMnfDgQSAzYwaoBmyN7o.cache
326
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/Tv/TvweWkVPBg72gjx-rF5ymMK0BlumrTZ-sugiqadBZTQ.cache
327
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/dS/dSAcGS8d1BPh2juLRlDFyHhfvU-4TU6O18LWg1BuPaA.cache
328
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/eC/eCBvHFs-512gcf7T14QeNltyQjgeC0-6OGrC1VMtDtk.cache
329
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/eC/ecBO7Z0u69gqyfUsiZIVf-bEzR0xRpTLLyxjQXM_Zl0.cache
330
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/kF/kFoDlRfNOKV8rQGFtfNEn_8w7B2Fxxp6eF5PcKhR1xw.cache
331
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/mx/mxfh1wDtEIflp3_BhHl2qkTSeZwh5Vq6C1TSezMgWXk.cache
332
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/rY/rYWDUI_QM0zko_l6B60oMvOqLZ7r7b4fAPGXdA8-wHA.cache
333
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/rf/rf8yQEgTIUfY45f5KSvmOXr42QFfF1rIk0K-KaD0BsU.cache
334
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/t7/t7gT6u72b6dwyoLeg0f50UW52KJ70Cf_NQOaSZeQr2c.cache
335
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/tp/tpMy-AhYzGQc6PtaziCcSwZgGdCJ7FlpNC9JGtCCbqU.cache
336
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/vj/vj90cXjZ7OoCyT_aukcUFdgvA548yutCgr_UmYL4fmY.cache
337
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/xC/xCtgNNpIR8fd0Lapcl6ZJn07yGA9G0AoiO2qf-CrRf8.cache
338
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/yQ/yQswlYk44cbTKwozBGSLLK0FHDQZZ9RYKpYO4TYG0Lo.cache
310
339
  - spec/dummy/tmp/cache/assets/test/sprockets/0c983616312a5fe6b5b66a208a100a26
311
340
  - spec/dummy/tmp/cache/assets/test/sprockets/13fe41fee1fe35b49d145bcc06610705
312
341
  - spec/dummy/tmp/cache/assets/test/sprockets/1a802b68d6ceb6709753c85c0cce26f9
@@ -321,6 +350,51 @@ files:
321
350
  - spec/dummy/tmp/cache/assets/test/sprockets/da26f8d0b212d2421b0762dddbe54fe0
322
351
  - spec/dummy/tmp/cache/assets/test/sprockets/f4c8cc7ee30d971cd1dfe35590150076
323
352
  - spec/dummy/tmp/cache/assets/test/sprockets/f7cbd26ba1d28d48de824f0e94586655
353
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/-Ape6aFiaJnfRzBFB6I1zug3-zUvknte1pQkhxXPpNg.cache
354
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/077Fbzuoh-E-rpzc5jB37x6Xr-n_rpiqcmZQdFD27pM.cache
355
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/10KNHaXGM6cnSryFJaOFczUpsLH0hFAjai507S8oH0w.cache
356
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/2L1JdmPVWPI-Az1labUU562gbVg--NGiArU5-86yLEQ.cache
357
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/3VpANc-zUJ4o7xwd6zey29ROk_3UHDhxxKGTqfvurns.cache
358
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/3xHdTymIczufAwXWeD5LK17RVgOn0kb8w62TD5dzJgs.cache
359
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/5Lly_CA8DZvPhQV2jDQx-Y6P_y3Ygra9t5jfSlGhHDA.cache
360
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/62nVKVQ4YqTKpZTemqK3GdQMBmQGwCbRPNMDsHPZi1c.cache
361
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/6aUjL8cKWqp-X8tueq0ot6qMbP2u63cZV_L_JMc02Fg.cache
362
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/6lnXZ4Zo5E5OEd0CTZ3N7e4sPYkJb2eE3fNcALJZELI.cache
363
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/DcvIrhAdXfgYuyAVsBv-gJHocSghSL13sAlclmZDTPk.cache
364
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/FXNsifiWDvkk8ng-18WuhQnIz9t_IZl_9HJKOakstBo.cache
365
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/FmcJJJY9WCKuOFj-LOt-E68psiTy3YUYgPf7K_sybHs.cache
366
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/JncY3pMTMZkvr5yyc0XZCvchmrzvRgtHAmYZgmkvK-4.cache
367
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/K6ugJQ_c97Yhsps2QESN0Wf8R4s0iZyoHM30zcZ4WX0.cache
368
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/LWxjOFBIglLYLShGg7ykFNfWCbzX3V37yht6G60EEv4.cache
369
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/MA_6eqUl7I4cRpT4sdbWMz9uodflrQFwUHcv_IL_vA0.cache
370
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/OI6uxGcnsKavdWTtwDAasU3wPx8QXhzBgV0X2n1KjMQ.cache
371
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/QVuN44siAlvIB-ksVqPX1CnJCgjJWlB-3ceyrUsqWGc.cache
372
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/RHWWOO-XznAww7nsYwQgtVLgv-fdZhTLYZbQCl0bfbU.cache
373
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/TNybb-vepiqZe7qd_PZ1AVop8mis7FEyYUab9olKxgk.cache
374
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/d6iF3VREbfQnoaDyM--smaNWw9UcZCR--rQo_EB6LWo.cache
375
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/dC91FCTVA1M5TMy3n1apuF2RqouhoEZj5BJPp-WNAFc.cache
376
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/e76RtuOlhp9HDwzjhT61Pf0RH-1NbZ4-4oe98V5QZFg.cache
377
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/eCBvHFs-512gcf7T14QeNltyQjgeC0-6OGrC1VMtDtk.cache
378
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/eMF4rFUN28D_zO3JgUB1uiD-mSWEBMM96KiXF8bHApM.cache
379
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/gQVWokADN6RhnhfT7_1XqQ8C8eFyIzSLQVJWXNxURK4.cache
380
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/hO-SK4Bc37Mh-85lSOsjHc0Bcb6yfABH9VZeyb5shG8.cache
381
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/k1t_sYFw252PeH-qB5uhj1wZRpbg22yVJCbAoXDbsqA.cache
382
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/kDS8MqPGDT8NcP18XxNX1Z_pu2ailuRWgyos5P673GQ.cache
383
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/kMlIbqAoqA-1iUf06YxtiGIt9J8n3D2SZDueR2vs1wY.cache
384
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/kuT_Vv3uXVNCkvep27iTk6qu5jOuT71W2zbJtGsvSjc.cache
385
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/mHfhzehSyMA3PM-T61bBntiakCcO6YyCFQSpMau9Nbs.cache
386
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/oTDmIqgUtHor42nDB-LFAQqCfetrOJNB8nLqTyp2jLo.cache
387
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/p7fvByhbhzavXggwUXri4UydX38RF37re6dl_o5-CD8.cache
388
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/qJsZ01axPSNj9qMx-mJ5Y1ETJe0hZi7LNTn2R10KJNQ.cache
389
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/rYWDUI_QM0zko_l6B60oMvOqLZ7r7b4fAPGXdA8-wHA.cache
390
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/rmj1RWw9Swge9e9WWxJJ3J7w3Otcx9FCXc_d4ZQ4uyE.cache
391
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/twhZBO0UlNDyG0tN0-4m0mh0oIKM2WIwJVdJhBkNmEY.cache
392
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/xCtgNNpIR8fd0Lapcl6ZJn07yGA9G0AoiO2qf-CrRf8.cache
393
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/xkdwrxy6TmnTk-JYNRQU995VtO5IiAe8nTscS9uBWfI.cache
394
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/y--KTSOBOYC4T3CfzpJbExDGVWRmhvR-B8E1rMPSbtI.cache
395
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/yQswlYk44cbTKwozBGSLLK0FHDQZZ9RYKpYO4TYG0Lo.cache
396
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/z1tcJJHpo7HO8epwbTzeLoApbuzFuip81H_J2BFEULQ.cache
397
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/zFNySDTiarqcpPtEvX26xVDa5IrCmhl3VG3gHIVitC4.cache
324
398
  - spec/features/link_authorize_spec.rb
325
399
  - spec/features/list_users_spec.rb
326
400
  - spec/features/log_in_spec.rb
@@ -351,15 +425,15 @@ files:
351
425
  - spec/tmp/app/models/user.rb
352
426
  - spec/tmp/config/initializers/sorcery.rb
353
427
  - spec/tmp/config/routes.rb
354
- - spec/tmp/db/migrate/20150323194119_create_role_group_users.rb
355
- - spec/tmp/db/migrate/20150323194120_create_authorizations.rb
356
- - spec/tmp/db/migrate/20150323194121_create_features.rb
357
- - spec/tmp/db/migrate/20150323194122_create_groups.rb
358
- - spec/tmp/db/migrate/20150323194123_create_roles.rb
359
- - spec/tmp/db/migrate/20150323194124_sorcery_core.rb
360
- - spec/tmp/db/migrate/20150323194125_create_group_users.rb
361
- - spec/tmp/db/migrate/20150323194126_create_role_groups.rb
362
- - spec/tmp/db/migrate/20150323194127_create_action_labels.rb
428
+ - spec/tmp/db/migrate/20160930024816_create_features.rb
429
+ - spec/tmp/db/migrate/20160930024817_create_roles.rb
430
+ - spec/tmp/db/migrate/20160930024818_sorcery_core.rb
431
+ - spec/tmp/db/migrate/20160930024819_create_groups.rb
432
+ - spec/tmp/db/migrate/20160930024820_create_group_users.rb
433
+ - spec/tmp/db/migrate/20160930024821_create_authorizations.rb
434
+ - spec/tmp/db/migrate/20160930024822_create_role_group_users.rb
435
+ - spec/tmp/db/migrate/20160930024823_create_role_groups.rb
436
+ - spec/tmp/db/migrate/20160930024824_create_action_labels.rb
363
437
  homepage: https://rubygems.org/gems/curupira
364
438
  licenses:
365
439
  - MIT
@@ -380,7 +454,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
380
454
  version: '0'
381
455
  requirements: []
382
456
  rubyforge_project:
383
- rubygems_version: 2.4.6
457
+ rubygems_version: 2.4.5.1
384
458
  signing_key:
385
459
  specification_version: 4
386
460
  summary: Curupira!
@@ -400,6 +474,7 @@ test_files:
400
474
  - spec/controllers/controller_spec.rb
401
475
  - spec/controllers/groups_controller_spec.rb
402
476
  - spec/controllers/passwords_controller_spec.rb
477
+ - spec/controllers/permissions_controller_spec.rb
403
478
  - spec/controllers/roles_controller_spec.rb
404
479
  - spec/controllers/sessions_controller_spec.rb
405
480
  - spec/controllers/users_controller_spec.rb
@@ -487,6 +562,33 @@ test_files:
487
562
  - spec/dummy/tmp/cache/assets/development/sprockets/f08dd8750f1b67d0b39d0453340debd1
488
563
  - spec/dummy/tmp/cache/assets/development/sprockets/f4c8cc7ee30d971cd1dfe35590150076
489
564
  - spec/dummy/tmp/cache/assets/development/sprockets/f7cbd26ba1d28d48de824f0e94586655
565
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/11/11qUINZVkspPusRjYi0EsPGHgPx1ucKYEW7OZa-ROf8.cache
566
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/3V/3VpANc-zUJ4o7xwd6zey29ROk_3UHDhxxKGTqfvurns.cache
567
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/43/43vpVqY0hqfeLEu7IJrvfDfxli39gGvbKgz3CR4r7W0.cache
568
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/5L/5Lly_CA8DZvPhQV2jDQx-Y6P_y3Ygra9t5jfSlGhHDA.cache
569
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/6J/6JN1_8GdgZtvpBXXuiWuMY7xt6IjydJ3lJSZsjxCW9Q.cache
570
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/6l/6lnXZ4Zo5E5OEd0CTZ3N7e4sPYkJb2eE3fNcALJZELI.cache
571
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/C_/C_FnpuuPmQ9tbuExCy9OboIU-vODSbW_ziARCnV-fVs.cache
572
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/Dc/DcvIrhAdXfgYuyAVsBv-gJHocSghSL13sAlclmZDTPk.cache
573
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/dS/dSAcGS8d1BPh2juLRlDFyHhfvU-4TU6O18LWg1BuPaA.cache
574
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/eC/ecBO7Z0u69gqyfUsiZIVf-bEzR0xRpTLLyxjQXM_Zl0.cache
575
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/eC/eCBvHFs-512gcf7T14QeNltyQjgeC0-6OGrC1VMtDtk.cache
576
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/GJ/GJviH6KdNN1xr8mBlY11cqDqKlYMWIx6e8SqSJ0rnf4.cache
577
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/kF/kFoDlRfNOKV8rQGFtfNEn_8w7B2Fxxp6eF5PcKhR1xw.cache
578
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/mx/mxfh1wDtEIflp3_BhHl2qkTSeZwh5Vq6C1TSezMgWXk.cache
579
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/No/NoS_8-C65A3rQoHefOJ8Tz2I4_MN8TQRiL98uDIS3ac.cache
580
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/OI/OI6uxGcnsKavdWTtwDAasU3wPx8QXhzBgV0X2n1KjMQ.cache
581
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/P8/P8KxPEymBRfVloJ9-DKnbW3cd5PupDTZ4vu-4jK-APY.cache
582
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/rf/rf8yQEgTIUfY45f5KSvmOXr42QFfF1rIk0K-KaD0BsU.cache
583
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/Rh/RhU8_A_NiK15IOcNzSB6T59G09jvVjGGeCXR8TKllsU.cache
584
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/rY/rYWDUI_QM0zko_l6B60oMvOqLZ7r7b4fAPGXdA8-wHA.cache
585
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/Si/SijZ6H6BzYCYwbV7RUkDMAMKMnfDgQSAzYwaoBmyN7o.cache
586
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/t7/t7gT6u72b6dwyoLeg0f50UW52KJ70Cf_NQOaSZeQr2c.cache
587
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/tp/tpMy-AhYzGQc6PtaziCcSwZgGdCJ7FlpNC9JGtCCbqU.cache
588
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/Tv/TvweWkVPBg72gjx-rF5ymMK0BlumrTZ-sugiqadBZTQ.cache
589
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/vj/vj90cXjZ7OoCyT_aukcUFdgvA548yutCgr_UmYL4fmY.cache
590
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/xC/xCtgNNpIR8fd0Lapcl6ZJn07yGA9G0AoiO2qf-CrRf8.cache
591
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/yQ/yQswlYk44cbTKwozBGSLLK0FHDQZZ9RYKpYO4TYG0Lo.cache
490
592
  - spec/dummy/tmp/cache/assets/test/sprockets/0c983616312a5fe6b5b66a208a100a26
491
593
  - spec/dummy/tmp/cache/assets/test/sprockets/13fe41fee1fe35b49d145bcc06610705
492
594
  - spec/dummy/tmp/cache/assets/test/sprockets/1a802b68d6ceb6709753c85c0cce26f9
@@ -501,6 +603,51 @@ test_files:
501
603
  - spec/dummy/tmp/cache/assets/test/sprockets/da26f8d0b212d2421b0762dddbe54fe0
502
604
  - spec/dummy/tmp/cache/assets/test/sprockets/f4c8cc7ee30d971cd1dfe35590150076
503
605
  - spec/dummy/tmp/cache/assets/test/sprockets/f7cbd26ba1d28d48de824f0e94586655
606
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/-Ape6aFiaJnfRzBFB6I1zug3-zUvknte1pQkhxXPpNg.cache
607
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/077Fbzuoh-E-rpzc5jB37x6Xr-n_rpiqcmZQdFD27pM.cache
608
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/10KNHaXGM6cnSryFJaOFczUpsLH0hFAjai507S8oH0w.cache
609
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/2L1JdmPVWPI-Az1labUU562gbVg--NGiArU5-86yLEQ.cache
610
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/3VpANc-zUJ4o7xwd6zey29ROk_3UHDhxxKGTqfvurns.cache
611
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/3xHdTymIczufAwXWeD5LK17RVgOn0kb8w62TD5dzJgs.cache
612
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/5Lly_CA8DZvPhQV2jDQx-Y6P_y3Ygra9t5jfSlGhHDA.cache
613
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/62nVKVQ4YqTKpZTemqK3GdQMBmQGwCbRPNMDsHPZi1c.cache
614
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/6aUjL8cKWqp-X8tueq0ot6qMbP2u63cZV_L_JMc02Fg.cache
615
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/6lnXZ4Zo5E5OEd0CTZ3N7e4sPYkJb2eE3fNcALJZELI.cache
616
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/d6iF3VREbfQnoaDyM--smaNWw9UcZCR--rQo_EB6LWo.cache
617
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/dC91FCTVA1M5TMy3n1apuF2RqouhoEZj5BJPp-WNAFc.cache
618
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/DcvIrhAdXfgYuyAVsBv-gJHocSghSL13sAlclmZDTPk.cache
619
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/e76RtuOlhp9HDwzjhT61Pf0RH-1NbZ4-4oe98V5QZFg.cache
620
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/eCBvHFs-512gcf7T14QeNltyQjgeC0-6OGrC1VMtDtk.cache
621
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/eMF4rFUN28D_zO3JgUB1uiD-mSWEBMM96KiXF8bHApM.cache
622
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/FmcJJJY9WCKuOFj-LOt-E68psiTy3YUYgPf7K_sybHs.cache
623
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/FXNsifiWDvkk8ng-18WuhQnIz9t_IZl_9HJKOakstBo.cache
624
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/gQVWokADN6RhnhfT7_1XqQ8C8eFyIzSLQVJWXNxURK4.cache
625
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/hO-SK4Bc37Mh-85lSOsjHc0Bcb6yfABH9VZeyb5shG8.cache
626
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/JncY3pMTMZkvr5yyc0XZCvchmrzvRgtHAmYZgmkvK-4.cache
627
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/k1t_sYFw252PeH-qB5uhj1wZRpbg22yVJCbAoXDbsqA.cache
628
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/K6ugJQ_c97Yhsps2QESN0Wf8R4s0iZyoHM30zcZ4WX0.cache
629
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/kDS8MqPGDT8NcP18XxNX1Z_pu2ailuRWgyos5P673GQ.cache
630
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/kMlIbqAoqA-1iUf06YxtiGIt9J8n3D2SZDueR2vs1wY.cache
631
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/kuT_Vv3uXVNCkvep27iTk6qu5jOuT71W2zbJtGsvSjc.cache
632
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/LWxjOFBIglLYLShGg7ykFNfWCbzX3V37yht6G60EEv4.cache
633
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/MA_6eqUl7I4cRpT4sdbWMz9uodflrQFwUHcv_IL_vA0.cache
634
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/mHfhzehSyMA3PM-T61bBntiakCcO6YyCFQSpMau9Nbs.cache
635
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/OI6uxGcnsKavdWTtwDAasU3wPx8QXhzBgV0X2n1KjMQ.cache
636
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/oTDmIqgUtHor42nDB-LFAQqCfetrOJNB8nLqTyp2jLo.cache
637
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/p7fvByhbhzavXggwUXri4UydX38RF37re6dl_o5-CD8.cache
638
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/qJsZ01axPSNj9qMx-mJ5Y1ETJe0hZi7LNTn2R10KJNQ.cache
639
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/QVuN44siAlvIB-ksVqPX1CnJCgjJWlB-3ceyrUsqWGc.cache
640
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/RHWWOO-XznAww7nsYwQgtVLgv-fdZhTLYZbQCl0bfbU.cache
641
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/rmj1RWw9Swge9e9WWxJJ3J7w3Otcx9FCXc_d4ZQ4uyE.cache
642
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/rYWDUI_QM0zko_l6B60oMvOqLZ7r7b4fAPGXdA8-wHA.cache
643
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/TNybb-vepiqZe7qd_PZ1AVop8mis7FEyYUab9olKxgk.cache
644
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/twhZBO0UlNDyG0tN0-4m0mh0oIKM2WIwJVdJhBkNmEY.cache
645
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/xCtgNNpIR8fd0Lapcl6ZJn07yGA9G0AoiO2qf-CrRf8.cache
646
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/xkdwrxy6TmnTk-JYNRQU995VtO5IiAe8nTscS9uBWfI.cache
647
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/y--KTSOBOYC4T3CfzpJbExDGVWRmhvR-B8E1rMPSbtI.cache
648
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/yQswlYk44cbTKwozBGSLLK0FHDQZZ9RYKpYO4TYG0Lo.cache
649
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/z1tcJJHpo7HO8epwbTzeLoApbuzFuip81H_J2BFEULQ.cache
650
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/zFNySDTiarqcpPtEvX26xVDa5IrCmhl3VG3gHIVitC4.cache
504
651
  - spec/features/link_authorize_spec.rb
505
652
  - spec/features/list_users_spec.rb
506
653
  - spec/features/log_in_spec.rb
@@ -531,12 +678,12 @@ test_files:
531
678
  - spec/tmp/app/models/user.rb
532
679
  - spec/tmp/config/initializers/sorcery.rb
533
680
  - spec/tmp/config/routes.rb
534
- - spec/tmp/db/migrate/20150323194119_create_role_group_users.rb
535
- - spec/tmp/db/migrate/20150323194120_create_authorizations.rb
536
- - spec/tmp/db/migrate/20150323194121_create_features.rb
537
- - spec/tmp/db/migrate/20150323194122_create_groups.rb
538
- - spec/tmp/db/migrate/20150323194123_create_roles.rb
539
- - spec/tmp/db/migrate/20150323194124_sorcery_core.rb
540
- - spec/tmp/db/migrate/20150323194125_create_group_users.rb
541
- - spec/tmp/db/migrate/20150323194126_create_role_groups.rb
542
- - spec/tmp/db/migrate/20150323194127_create_action_labels.rb
681
+ - spec/tmp/db/migrate/20160930024816_create_features.rb
682
+ - spec/tmp/db/migrate/20160930024817_create_roles.rb
683
+ - spec/tmp/db/migrate/20160930024818_sorcery_core.rb
684
+ - spec/tmp/db/migrate/20160930024819_create_groups.rb
685
+ - spec/tmp/db/migrate/20160930024820_create_group_users.rb
686
+ - spec/tmp/db/migrate/20160930024821_create_authorizations.rb
687
+ - spec/tmp/db/migrate/20160930024822_create_role_group_users.rb
688
+ - spec/tmp/db/migrate/20160930024823_create_role_groups.rb
689
+ - spec/tmp/db/migrate/20160930024824_create_action_labels.rb
@@ -1,4 +0,0 @@
1
- # desc "Explaining what the task does"
2
- # task :curupira do
3
- # # Task goes here
4
- # end