refinerycms-authentication 1.0.11 → 2.0.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.
- data/app/controllers/refinery/admin/users_controller.rb +100 -0
- data/app/controllers/refinery/passwords_controller.rb +51 -0
- data/app/controllers/refinery/sessions_controller.rb +26 -0
- data/app/controllers/refinery/users_controller.rb +42 -0
- data/app/helpers/refinery/sessions_helper.rb +4 -0
- data/app/helpers/refinery/users_helper.rb +4 -0
- data/app/mailers/refinery/user_mailer.rb +22 -0
- data/app/models/refinery/role.rb +18 -0
- data/app/models/refinery/roles_users.rb +8 -0
- data/app/models/refinery/user.rb +94 -0
- data/app/models/refinery/user_plugin.rb +8 -0
- data/app/views/refinery/admin/users/_actions.html.erb +6 -0
- data/app/views/{admin → refinery/admin}/users/_form.html.erb +15 -19
- data/app/views/{admin → refinery/admin}/users/_records.html.erb +1 -1
- data/app/views/refinery/admin/users/_user.html.erb +21 -0
- data/app/views/refinery/admin/users/_users.html.erb +4 -0
- data/app/views/refinery/admin/users/edit.html.erb +1 -0
- data/app/views/refinery/admin/users/index.html.erb +6 -0
- data/app/views/refinery/admin/users/new.html.erb +1 -0
- data/app/views/{layouts → refinery/layouts}/login.html.erb +3 -4
- data/app/views/refinery/passwords/edit.html.erb +26 -0
- data/app/views/refinery/passwords/new.html.erb +17 -0
- data/app/views/{sessions → refinery/sessions}/new.html.erb +6 -8
- data/app/views/refinery/user_mailer/reset_notification.html.erb +12 -0
- data/app/views/refinery/user_mailer/reset_notification.text.plain.erb +7 -0
- data/app/views/refinery/users/new.html.erb +29 -0
- data/config/locales/bg.yml +55 -55
- data/config/locales/cs.yml +58 -58
- data/config/locales/da.yml +55 -55
- data/config/locales/de.yml +55 -55
- data/config/locales/el.yml +55 -55
- data/config/locales/en.yml +55 -55
- data/config/locales/es.yml +55 -60
- data/config/locales/fi.yml +55 -55
- data/config/locales/fr.yml +55 -55
- data/config/locales/it.yml +51 -57
- data/config/locales/ja.yml +72 -0
- data/config/locales/ko.yml +72 -0
- data/config/locales/lt.yml +46 -46
- data/config/locales/lv.yml +55 -55
- data/config/locales/nb.yml +55 -55
- data/config/locales/nl.yml +55 -55
- data/config/locales/pl.yml +53 -59
- data/config/locales/pt-BR.yml +52 -52
- data/config/locales/rs.yml +62 -61
- data/config/locales/ru.yml +52 -52
- data/config/locales/sk.yml +55 -55
- data/config/locales/sl.yml +55 -54
- data/config/locales/sv.yml +52 -52
- data/config/locales/vi.yml +55 -55
- data/config/locales/zh-CN.yml +55 -55
- data/config/locales/zh-TW.yml +55 -55
- data/config/routes.rb +30 -24
- data/db/migrate/20100913234705_create_refinerycms_authentication_schema.rb +30 -30
- data/lib/refinery/authenticated_system.rb +40 -0
- data/lib/refinery/authentication/configuration.rb +9 -0
- data/lib/refinery/authentication/engine.rb +36 -0
- data/lib/refinery/authentication.rb +29 -0
- data/lib/refinerycms-authentication.rb +1 -54
- data/refinerycms-authentication.gemspec +14 -109
- data/spec/controllers/refinery/admin/users_controller_spec.rb +73 -0
- data/spec/factories/user.rb +38 -0
- data/spec/models/refinery/user_spec.rb +220 -0
- data/spec/requests/refinery/admin/users_spec.rb +49 -0
- data/spec/requests/refinery/passwords_spec.rb +84 -0
- data/spec/requests/refinery/sessions_spec.rb +62 -0
- metadata +109 -124
- data/app/controllers/admin/users_controller.rb +0 -86
- data/app/controllers/passwords_controller.rb +0 -42
- data/app/controllers/sessions_controller.rb +0 -23
- data/app/controllers/users_controller.rb +0 -67
- data/app/helpers/sessions_helper.rb +0 -2
- data/app/helpers/users_helper.rb +0 -2
- data/app/mailers/user_mailer.rb +0 -20
- data/app/models/role.rb +0 -16
- data/app/models/roles_users.rb +0 -6
- data/app/models/user.rb +0 -65
- data/app/models/user_plugin.rb +0 -6
- data/app/views/admin/users/_actions.html.erb +0 -5
- data/app/views/admin/users/_user.html.erb +0 -19
- data/app/views/admin/users/_users.html.erb +0 -4
- data/app/views/admin/users/edit.html.erb +0 -1
- data/app/views/admin/users/index.html.erb +0 -6
- data/app/views/admin/users/new.html.erb +0 -1
- data/app/views/passwords/edit.html.erb +0 -31
- data/app/views/passwords/new.html.erb +0 -18
- data/app/views/user_mailer/reset_notification.html.erb +0 -12
- data/app/views/user_mailer/reset_notification.text.plain.erb +0 -7
- data/app/views/users/new.html.erb +0 -41
- data/config/locales/jp.yml +0 -72
- data/config/locales/lolcat.yml +0 -55
- data/db/migrate/20100929035252_add_missing_indexes_to_roles_users.rb +0 -11
- data/db/migrate/20101206013505_change_to_devise_users_table.rb +0 -27
- data/db/migrate/20110106184757_add_remember_created_at_to_users.rb +0 -9
- data/db/migrate/20110325213325_remove_password_salt_from_users.rb +0 -13
- data/features/lost_password.feature +0 -49
- data/features/manage_users.feature +0 -88
- data/features/step_definitions/lost_password.rb +0 -8
- data/features/step_definitions/user_steps.rb +0 -41
- data/features/support/factories.rb +0 -32
- data/features/support/paths.rb +0 -24
- data/lib/authenticated_system.rb +0 -29
- data/lib/gemspec.rb +0 -38
- data/lib/generators/refinerycms_authentication_generator.rb +0 -8
- data/spec/models/user_spec.rb +0 -152
metadata
CHANGED
|
@@ -1,116 +1,92 @@
|
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: refinerycms-authentication
|
|
3
|
-
version: !ruby/object:Gem::Version
|
|
4
|
-
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
hash: 15
|
|
5
5
|
prerelease:
|
|
6
|
+
segments:
|
|
7
|
+
- 2
|
|
8
|
+
- 0
|
|
9
|
+
- 0
|
|
10
|
+
version: 2.0.0
|
|
6
11
|
platform: ruby
|
|
7
|
-
authors:
|
|
8
|
-
- Resolve Digital
|
|
12
|
+
authors:
|
|
9
13
|
- Philip Arndt
|
|
14
|
+
- "U\xC4\xA3is Ozols"
|
|
10
15
|
- David Jones
|
|
11
16
|
- Steven Heidel
|
|
12
|
-
- Uģis Ozols
|
|
13
17
|
autorequire:
|
|
14
18
|
bindir: bin
|
|
15
19
|
cert_chain: []
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
requirement: !ruby/object:Gem::Requirement
|
|
21
|
-
none: false
|
|
22
|
-
requirements:
|
|
23
|
-
- - '='
|
|
24
|
-
- !ruby/object:Gem::Version
|
|
25
|
-
version: 1.0.11
|
|
26
|
-
type: :runtime
|
|
20
|
+
|
|
21
|
+
date: 2012-03-01 00:00:00 Z
|
|
22
|
+
dependencies:
|
|
23
|
+
- !ruby/object:Gem::Dependency
|
|
27
24
|
prerelease: false
|
|
28
|
-
|
|
25
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
|
29
26
|
none: false
|
|
30
|
-
requirements:
|
|
31
|
-
- - '='
|
|
32
|
-
- !ruby/object:Gem::Version
|
|
33
|
-
version: 1.0.11
|
|
34
|
-
- !ruby/object:Gem::Dependency
|
|
35
|
-
name: activerecord
|
|
36
|
-
requirement: !ruby/object:Gem::Requirement
|
|
37
|
-
none: false
|
|
38
|
-
requirements:
|
|
27
|
+
requirements:
|
|
39
28
|
- - ~>
|
|
40
|
-
- !ruby/object:Gem::Version
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
- !ruby/object:Gem::Version
|
|
49
|
-
version: 3.0.10
|
|
50
|
-
- !ruby/object:Gem::Dependency
|
|
29
|
+
- !ruby/object:Gem::Version
|
|
30
|
+
hash: 15
|
|
31
|
+
segments:
|
|
32
|
+
- 2
|
|
33
|
+
- 0
|
|
34
|
+
- 0
|
|
35
|
+
version: 2.0.0
|
|
36
|
+
version_requirements: *id001
|
|
51
37
|
name: devise
|
|
52
|
-
requirement: !ruby/object:Gem::Requirement
|
|
53
|
-
none: false
|
|
54
|
-
requirements:
|
|
55
|
-
- - ~>
|
|
56
|
-
- !ruby/object:Gem::Version
|
|
57
|
-
version: 1.4.3
|
|
58
38
|
type: :runtime
|
|
39
|
+
- !ruby/object:Gem::Dependency
|
|
59
40
|
prerelease: false
|
|
60
|
-
|
|
61
|
-
none: false
|
|
62
|
-
requirements:
|
|
63
|
-
- - ~>
|
|
64
|
-
- !ruby/object:Gem::Version
|
|
65
|
-
version: 1.4.3
|
|
66
|
-
- !ruby/object:Gem::Dependency
|
|
67
|
-
name: friendly_id_globalize3
|
|
68
|
-
requirement: !ruby/object:Gem::Requirement
|
|
41
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
|
69
42
|
none: false
|
|
70
|
-
requirements:
|
|
71
|
-
- -
|
|
72
|
-
- !ruby/object:Gem::Version
|
|
73
|
-
|
|
43
|
+
requirements:
|
|
44
|
+
- - "="
|
|
45
|
+
- !ruby/object:Gem::Version
|
|
46
|
+
hash: 15
|
|
47
|
+
segments:
|
|
48
|
+
- 2
|
|
49
|
+
- 0
|
|
50
|
+
- 0
|
|
51
|
+
version: 2.0.0
|
|
52
|
+
version_requirements: *id002
|
|
53
|
+
name: refinerycms-core
|
|
74
54
|
type: :runtime
|
|
75
|
-
|
|
76
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
77
|
-
none: false
|
|
78
|
-
requirements:
|
|
79
|
-
- - ~>
|
|
80
|
-
- !ruby/object:Gem::Version
|
|
81
|
-
version: 3.2.1
|
|
82
|
-
description: The default authentication engine for Refinery CMS
|
|
55
|
+
description: The default authentication extension for Refinery CMS
|
|
83
56
|
email: info@refinerycms.com
|
|
84
57
|
executables: []
|
|
58
|
+
|
|
85
59
|
extensions: []
|
|
60
|
+
|
|
86
61
|
extra_rdoc_files: []
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
- app/controllers/
|
|
90
|
-
- app/controllers/
|
|
91
|
-
- app/controllers/
|
|
92
|
-
- app/
|
|
93
|
-
- app/helpers/
|
|
94
|
-
- app/
|
|
95
|
-
- app/
|
|
96
|
-
- app/models/
|
|
97
|
-
- app/models/
|
|
98
|
-
- app/models/
|
|
99
|
-
- app/
|
|
100
|
-
- app/views/admin/users/
|
|
101
|
-
- app/views/admin/users/
|
|
102
|
-
- app/views/admin/users/
|
|
103
|
-
- app/views/admin/users/
|
|
104
|
-
- app/views/admin/users/
|
|
105
|
-
- app/views/admin/users/
|
|
106
|
-
- app/views/admin/users/
|
|
107
|
-
- app/views/
|
|
108
|
-
- app/views/
|
|
109
|
-
- app/views/passwords/
|
|
110
|
-
- app/views/
|
|
111
|
-
- app/views/
|
|
112
|
-
- app/views/user_mailer/reset_notification.
|
|
113
|
-
- app/views/
|
|
62
|
+
|
|
63
|
+
files:
|
|
64
|
+
- app/controllers/refinery/admin/users_controller.rb
|
|
65
|
+
- app/controllers/refinery/passwords_controller.rb
|
|
66
|
+
- app/controllers/refinery/sessions_controller.rb
|
|
67
|
+
- app/controllers/refinery/users_controller.rb
|
|
68
|
+
- app/helpers/refinery/sessions_helper.rb
|
|
69
|
+
- app/helpers/refinery/users_helper.rb
|
|
70
|
+
- app/mailers/refinery/user_mailer.rb
|
|
71
|
+
- app/models/refinery/role.rb
|
|
72
|
+
- app/models/refinery/roles_users.rb
|
|
73
|
+
- app/models/refinery/user.rb
|
|
74
|
+
- app/models/refinery/user_plugin.rb
|
|
75
|
+
- app/views/refinery/admin/users/_actions.html.erb
|
|
76
|
+
- app/views/refinery/admin/users/_form.html.erb
|
|
77
|
+
- app/views/refinery/admin/users/_records.html.erb
|
|
78
|
+
- app/views/refinery/admin/users/_user.html.erb
|
|
79
|
+
- app/views/refinery/admin/users/_users.html.erb
|
|
80
|
+
- app/views/refinery/admin/users/edit.html.erb
|
|
81
|
+
- app/views/refinery/admin/users/index.html.erb
|
|
82
|
+
- app/views/refinery/admin/users/new.html.erb
|
|
83
|
+
- app/views/refinery/layouts/login.html.erb
|
|
84
|
+
- app/views/refinery/passwords/edit.html.erb
|
|
85
|
+
- app/views/refinery/passwords/new.html.erb
|
|
86
|
+
- app/views/refinery/sessions/new.html.erb
|
|
87
|
+
- app/views/refinery/user_mailer/reset_notification.html.erb
|
|
88
|
+
- app/views/refinery/user_mailer/reset_notification.text.plain.erb
|
|
89
|
+
- app/views/refinery/users/new.html.erb
|
|
114
90
|
- config/locales/bg.yml
|
|
115
91
|
- config/locales/cs.yml
|
|
116
92
|
- config/locales/da.yml
|
|
@@ -121,8 +97,8 @@ files:
|
|
|
121
97
|
- config/locales/fi.yml
|
|
122
98
|
- config/locales/fr.yml
|
|
123
99
|
- config/locales/it.yml
|
|
124
|
-
- config/locales/
|
|
125
|
-
- config/locales/
|
|
100
|
+
- config/locales/ja.yml
|
|
101
|
+
- config/locales/ko.yml
|
|
126
102
|
- config/locales/lt.yml
|
|
127
103
|
- config/locales/lv.yml
|
|
128
104
|
- config/locales/nb.yml
|
|
@@ -139,47 +115,56 @@ files:
|
|
|
139
115
|
- config/locales/zh-TW.yml
|
|
140
116
|
- config/routes.rb
|
|
141
117
|
- db/migrate/20100913234705_create_refinerycms_authentication_schema.rb
|
|
142
|
-
-
|
|
143
|
-
-
|
|
144
|
-
-
|
|
145
|
-
-
|
|
146
|
-
- features/lost_password.feature
|
|
147
|
-
- features/manage_users.feature
|
|
148
|
-
- features/step_definitions/lost_password.rb
|
|
149
|
-
- features/step_definitions/user_steps.rb
|
|
150
|
-
- features/support/factories.rb
|
|
151
|
-
- features/support/paths.rb
|
|
152
|
-
- lib/authenticated_system.rb
|
|
153
|
-
- lib/gemspec.rb
|
|
154
|
-
- lib/generators/refinerycms_authentication_generator.rb
|
|
118
|
+
- lib/refinery/authenticated_system.rb
|
|
119
|
+
- lib/refinery/authentication.rb
|
|
120
|
+
- lib/refinery/authentication/configuration.rb
|
|
121
|
+
- lib/refinery/authentication/engine.rb
|
|
155
122
|
- lib/refinerycms-authentication.rb
|
|
156
123
|
- license.md
|
|
157
124
|
- refinerycms-authentication.gemspec
|
|
158
|
-
- spec/
|
|
125
|
+
- spec/controllers/refinery/admin/users_controller_spec.rb
|
|
126
|
+
- spec/factories/user.rb
|
|
127
|
+
- spec/models/refinery/user_spec.rb
|
|
128
|
+
- spec/requests/refinery/admin/users_spec.rb
|
|
129
|
+
- spec/requests/refinery/passwords_spec.rb
|
|
130
|
+
- spec/requests/refinery/sessions_spec.rb
|
|
159
131
|
homepage: http://refinerycms.com
|
|
160
|
-
licenses:
|
|
132
|
+
licenses:
|
|
161
133
|
- MIT
|
|
162
134
|
post_install_message:
|
|
163
135
|
rdoc_options: []
|
|
164
|
-
|
|
136
|
+
|
|
137
|
+
require_paths:
|
|
165
138
|
- lib
|
|
166
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
|
139
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
167
140
|
none: false
|
|
168
|
-
requirements:
|
|
169
|
-
- -
|
|
170
|
-
- !ruby/object:Gem::Version
|
|
171
|
-
|
|
172
|
-
|
|
141
|
+
requirements:
|
|
142
|
+
- - ">="
|
|
143
|
+
- !ruby/object:Gem::Version
|
|
144
|
+
hash: 3
|
|
145
|
+
segments:
|
|
146
|
+
- 0
|
|
147
|
+
version: "0"
|
|
148
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
173
149
|
none: false
|
|
174
|
-
requirements:
|
|
175
|
-
- -
|
|
176
|
-
- !ruby/object:Gem::Version
|
|
177
|
-
|
|
150
|
+
requirements:
|
|
151
|
+
- - ">="
|
|
152
|
+
- !ruby/object:Gem::Version
|
|
153
|
+
hash: 3
|
|
154
|
+
segments:
|
|
155
|
+
- 0
|
|
156
|
+
version: "0"
|
|
178
157
|
requirements: []
|
|
158
|
+
|
|
179
159
|
rubyforge_project: refinerycms
|
|
180
|
-
rubygems_version: 1.8.
|
|
160
|
+
rubygems_version: 1.8.17
|
|
181
161
|
signing_key:
|
|
182
162
|
specification_version: 3
|
|
183
|
-
summary: Authentication
|
|
184
|
-
test_files:
|
|
185
|
-
|
|
163
|
+
summary: Authentication extension for Refinery CMS
|
|
164
|
+
test_files:
|
|
165
|
+
- spec/controllers/refinery/admin/users_controller_spec.rb
|
|
166
|
+
- spec/factories/user.rb
|
|
167
|
+
- spec/models/refinery/user_spec.rb
|
|
168
|
+
- spec/requests/refinery/admin/users_spec.rb
|
|
169
|
+
- spec/requests/refinery/passwords_spec.rb
|
|
170
|
+
- spec/requests/refinery/sessions_spec.rb
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
module Admin
|
|
2
|
-
class UsersController < Admin::BaseController
|
|
3
|
-
|
|
4
|
-
crudify :user,
|
|
5
|
-
:order => 'username ASC',
|
|
6
|
-
:title_attribute => 'username',
|
|
7
|
-
:xhr_paging => true
|
|
8
|
-
|
|
9
|
-
before_filter :load_available_plugins_and_roles, :only => [:new, :create, :edit, :update]
|
|
10
|
-
|
|
11
|
-
def new
|
|
12
|
-
@user = User.new
|
|
13
|
-
@selected_plugin_names = []
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
def create
|
|
17
|
-
@user = User.new(params[:user])
|
|
18
|
-
@selected_plugin_names = params[:user][:plugins] || []
|
|
19
|
-
@selected_role_names = params[:user][:roles] || []
|
|
20
|
-
|
|
21
|
-
if @user.save
|
|
22
|
-
@user.plugins = @selected_plugin_names
|
|
23
|
-
# if the user is a superuser and can assign roles according to this site's
|
|
24
|
-
# settings then the roles are set with the POST data.
|
|
25
|
-
unless current_user.has_role?(:superuser) and RefinerySetting.find_or_set(:superuser_can_assign_roles, false)
|
|
26
|
-
@user.add_role(:refinery)
|
|
27
|
-
else
|
|
28
|
-
@user.roles = @selected_role_names.collect{|r| Role[r.downcase.to_sym]}
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
redirect_to(admin_users_url, :notice => t('created', :what => @user.username, :scope => 'refinery.crudify'))
|
|
32
|
-
else
|
|
33
|
-
render :action => 'new'
|
|
34
|
-
end
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
def edit
|
|
38
|
-
@user = User.find params[:id]
|
|
39
|
-
@selected_plugin_names = @user.plugins.collect{|p| p.name}
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
def update
|
|
43
|
-
# Store what the user selected.
|
|
44
|
-
@selected_role_names = params[:user].delete(:roles) || []
|
|
45
|
-
unless current_user.has_role?(:superuser) and RefinerySetting.find_or_set(:superuser_can_assign_roles, false)
|
|
46
|
-
@selected_role_names = @user.roles.collect{|r| r.title}
|
|
47
|
-
end
|
|
48
|
-
@selected_plugin_names = params[:user][:plugins]
|
|
49
|
-
|
|
50
|
-
# Prevent the current user from locking themselves out of the User manager
|
|
51
|
-
if current_user.id == @user.id and (params[:user][:plugins].exclude?("refinery_users") || @selected_role_names.map(&:downcase).exclude?("refinery"))
|
|
52
|
-
flash.now[:error] = t('cannot_remove_user_plugin_from_current_user', :scope => 'admin.users.update')
|
|
53
|
-
render :action => "edit"
|
|
54
|
-
else
|
|
55
|
-
# Store the current plugins and roles for this user.
|
|
56
|
-
@previously_selected_plugin_names = @user.plugins.collect{|p| p.name}
|
|
57
|
-
@previously_selected_roles = @user.roles
|
|
58
|
-
@user.roles = @selected_role_names.collect{|r| Role[r.downcase.to_sym]}
|
|
59
|
-
if params[:user][:password].blank? and params[:user][:password_confirmation].blank?
|
|
60
|
-
params[:user].delete(:password)
|
|
61
|
-
params[:user].delete(:password_confirmation)
|
|
62
|
-
end
|
|
63
|
-
|
|
64
|
-
if @user.update_attributes(params[:user])
|
|
65
|
-
redirect_to admin_users_url, :notice => t('updated', :what => @user.username, :scope => 'refinery.crudify')
|
|
66
|
-
else
|
|
67
|
-
@user.plugins = @previously_selected_plugin_names
|
|
68
|
-
@user.roles = @previously_selected_roles
|
|
69
|
-
@user.save
|
|
70
|
-
render :action => 'edit'
|
|
71
|
-
end
|
|
72
|
-
end
|
|
73
|
-
end
|
|
74
|
-
|
|
75
|
-
protected
|
|
76
|
-
|
|
77
|
-
def load_available_plugins_and_roles
|
|
78
|
-
@available_plugins = ::Refinery::Plugins.registered.in_menu.collect{|a|
|
|
79
|
-
{:name => a.name, :title => a.title}
|
|
80
|
-
}.sort_by {|a| a[:title]}
|
|
81
|
-
|
|
82
|
-
@available_roles = Role.all
|
|
83
|
-
end
|
|
84
|
-
|
|
85
|
-
end
|
|
86
|
-
end
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
class PasswordsController < ::Devise::PasswordsController
|
|
2
|
-
layout 'login'
|
|
3
|
-
|
|
4
|
-
# Rather than overriding devise, it seems better to just apply the notice here.
|
|
5
|
-
after_filter :give_notice, :only => [:update]
|
|
6
|
-
def give_notice
|
|
7
|
-
unless %w(notice error alert).include?(flash.keys.map(&:to_s)) or @user.errors.any?
|
|
8
|
-
flash[:notice] = t('successful', :scope => 'users.reset', :email => @user.email)
|
|
9
|
-
end
|
|
10
|
-
end
|
|
11
|
-
protected :give_notice
|
|
12
|
-
|
|
13
|
-
# GET /registrations/password/edit?reset_password_token=abcdef
|
|
14
|
-
def edit
|
|
15
|
-
if params[:reset_password_token] and (@user = User.where(:reset_password_token => params[:reset_password_token]).first).present?
|
|
16
|
-
render_with_scope :edit
|
|
17
|
-
else
|
|
18
|
-
redirect_to(new_user_password_url, :flash => ({
|
|
19
|
-
:error => t('code_invalid', :scope => 'users.reset')
|
|
20
|
-
}))
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
# POST /registrations/password
|
|
25
|
-
def create
|
|
26
|
-
if params[:user].present? and (email = params[:user][:email]).present? and
|
|
27
|
-
(user = User.where(:email => email).first).present?
|
|
28
|
-
|
|
29
|
-
# Call devise reset function.
|
|
30
|
-
user.send(:generate_reset_password_token!)
|
|
31
|
-
UserMailer.reset_notification(user, request).deliver
|
|
32
|
-
redirect_to new_user_session_path, :notice => t('email_reset_sent', :scope => 'users.forgot') and return
|
|
33
|
-
else
|
|
34
|
-
flash.now[:error] = if (email = params[:user][:email]).blank?
|
|
35
|
-
t('blank_email', :scope => 'users.forgot')
|
|
36
|
-
else
|
|
37
|
-
t('email_not_associated_with_account_html', :email => ERB::Util.html_escape(email), :scope => 'users.forgot').html_safe
|
|
38
|
-
end
|
|
39
|
-
render_with_scope :new
|
|
40
|
-
end
|
|
41
|
-
end
|
|
42
|
-
end
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
class SessionsController < ::Devise::SessionsController
|
|
2
|
-
layout 'login'
|
|
3
|
-
|
|
4
|
-
before_filter :clear_unauthenticated_flash, :only => [:new]
|
|
5
|
-
|
|
6
|
-
def create
|
|
7
|
-
super
|
|
8
|
-
rescue ::BCrypt::Errors::InvalidSalt, ::BCrypt::Errors::InvalidHash
|
|
9
|
-
flash[:error] = t('password_encryption', :scope => 'users.forgot')
|
|
10
|
-
redirect_to new_user_password_path
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
protected
|
|
14
|
-
# We don't like this alert.
|
|
15
|
-
def clear_unauthenticated_flash
|
|
16
|
-
if flash.keys.include?(:alert) and flash.values.any?{|v|
|
|
17
|
-
['unauthenticated', t('unauthenticated', :scope => 'devise.failure')].include?(v)
|
|
18
|
-
}
|
|
19
|
-
flash.delete(:alert)
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
end
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
class UsersController < ::Devise::RegistrationsController
|
|
2
|
-
|
|
3
|
-
# Protect these actions behind an admin login
|
|
4
|
-
before_filter :redirect?, :only => [:new, :create]
|
|
5
|
-
|
|
6
|
-
layout 'login'
|
|
7
|
-
|
|
8
|
-
def new
|
|
9
|
-
@user = User.new
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
# This method should only be used to create the first Refinery user.
|
|
13
|
-
def create
|
|
14
|
-
@user = User.new(params[:user])
|
|
15
|
-
@selected_plugin_titles = params[:user][:plugins] || []
|
|
16
|
-
|
|
17
|
-
@user.save if @user.valid?
|
|
18
|
-
|
|
19
|
-
if @user.errors.empty?
|
|
20
|
-
@user.add_role(:refinery)
|
|
21
|
-
@user.plugins = @selected_plugin_titles
|
|
22
|
-
@user.save
|
|
23
|
-
if Role[:refinery].users.count == 1
|
|
24
|
-
# this is the superuser if this user is the only user.
|
|
25
|
-
@user.add_role(:superuser)
|
|
26
|
-
@user.save
|
|
27
|
-
|
|
28
|
-
# set this user as the recipient of inquiry notifications, if we're using that engine.
|
|
29
|
-
if defined?(InquirySetting) and
|
|
30
|
-
(notification_recipients = InquirySetting.find_or_create_by_name("Notification Recipients")).present?
|
|
31
|
-
notification_recipients.update_attributes({
|
|
32
|
-
:value => @user.email,
|
|
33
|
-
:destroyable => false
|
|
34
|
-
})
|
|
35
|
-
end
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
flash[:message] = "<h2>#{t('welcome', :scope => 'users.create', :who => @user.username).gsub(/\.$/, '')}.</h2>".html_safe
|
|
39
|
-
|
|
40
|
-
site_name_setting = RefinerySetting.find_or_create_by_name('site_name', :value => "Company Name")
|
|
41
|
-
if site_name_setting.value.to_s =~ /^(|Company\ Name)$/ or Role[:refinery].users.count == 1
|
|
42
|
-
flash[:message] << "<p>#{t('setup_website_name_html', :scope => 'users',
|
|
43
|
-
:link => edit_admin_refinery_setting_path(site_name_setting, :dialog => true),
|
|
44
|
-
:title => t('edit', :scope => 'admin.refinery_settings'))}</p>".html_safe
|
|
45
|
-
end
|
|
46
|
-
sign_in(@user)
|
|
47
|
-
redirect_back_or_default(admin_root_url)
|
|
48
|
-
else
|
|
49
|
-
render :action => 'new'
|
|
50
|
-
end
|
|
51
|
-
end
|
|
52
|
-
|
|
53
|
-
protected
|
|
54
|
-
|
|
55
|
-
def redirect?
|
|
56
|
-
if refinery_user?
|
|
57
|
-
redirect_to admin_users_url
|
|
58
|
-
elsif refinery_users_exist?
|
|
59
|
-
redirect_to new_user_session_path
|
|
60
|
-
end
|
|
61
|
-
end
|
|
62
|
-
|
|
63
|
-
def refinery_users_exist?
|
|
64
|
-
Role[:refinery].users.any?
|
|
65
|
-
end
|
|
66
|
-
|
|
67
|
-
end
|
data/app/helpers/users_helper.rb
DELETED
data/app/mailers/user_mailer.rb
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
class UserMailer < ActionMailer::Base
|
|
2
|
-
|
|
3
|
-
def reset_notification(user, request)
|
|
4
|
-
@user = user
|
|
5
|
-
@url = edit_user_password_url(:host => request.host_with_port,
|
|
6
|
-
:reset_password_token => @user.reset_password_token)
|
|
7
|
-
|
|
8
|
-
domain = request.domain(RefinerySetting.find_or_set(:tld_length, 1))
|
|
9
|
-
|
|
10
|
-
mail(:to => user.email,
|
|
11
|
-
:subject => t('subject', :scope => 'user_mailer.reset_notification'),
|
|
12
|
-
:from => "\"#{RefinerySetting[:site_name]}\" <no-reply@#{domain}>")
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
protected
|
|
16
|
-
|
|
17
|
-
def url_prefix(request)
|
|
18
|
-
"#{request.protocol}#{request.host_with_port}"
|
|
19
|
-
end
|
|
20
|
-
end
|
data/app/models/role.rb
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
class Role < ActiveRecord::Base
|
|
2
|
-
|
|
3
|
-
has_and_belongs_to_many :users
|
|
4
|
-
|
|
5
|
-
before_validation :camelize_title
|
|
6
|
-
validates :title, :uniqueness => true
|
|
7
|
-
|
|
8
|
-
def camelize_title(role_title = self.title)
|
|
9
|
-
self.title = role_title.to_s.camelize
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
def self.[](title)
|
|
13
|
-
find_or_create_by_title(title.to_s.camelize)
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
end
|
data/app/models/roles_users.rb
DELETED
data/app/models/user.rb
DELETED
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
require 'devise'
|
|
2
|
-
|
|
3
|
-
class User < ActiveRecord::Base
|
|
4
|
-
has_and_belongs_to_many :roles
|
|
5
|
-
has_many :plugins, :class_name => "UserPlugin", :order => "position ASC", :dependent => :destroy
|
|
6
|
-
has_friendly_id :username, :use_slug => true
|
|
7
|
-
|
|
8
|
-
# Include default devise modules. Others available are:
|
|
9
|
-
# :token_authenticatable, :confirmable, :lockable and :timeoutable
|
|
10
|
-
devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable
|
|
11
|
-
|
|
12
|
-
# Setup accessible (or protected) attributes for your model
|
|
13
|
-
# :login is a virtual attribute for authenticating by either username or email
|
|
14
|
-
# This is in addition to a real persisted field like 'username'
|
|
15
|
-
attr_accessor :login
|
|
16
|
-
attr_accessible :email, :password, :password_confirmation, :remember_me, :username, :plugins, :login
|
|
17
|
-
|
|
18
|
-
validates :username, :presence => true, :uniqueness => true
|
|
19
|
-
|
|
20
|
-
class << self
|
|
21
|
-
# Configure authentication_keys here instead of devise.rb initialzer so we don't overwrite standard devise models
|
|
22
|
-
def authentication_keys
|
|
23
|
-
[:login]
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
# Find user by email or username.
|
|
27
|
-
# https://github.com/plataformatec/devise/wiki/How-To:-Allow-users-to-sign_in-using-their-username-or-email-address
|
|
28
|
-
def find_for_database_authentication(conditions)
|
|
29
|
-
value = conditions[authentication_keys.first]
|
|
30
|
-
where(["username = :value OR email = :value", { :value => value }]).first
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
def plugins=(plugin_names)
|
|
35
|
-
if persisted? # don't add plugins when the user_id is nil.
|
|
36
|
-
UserPlugin.delete_all(:user_id => id)
|
|
37
|
-
|
|
38
|
-
plugin_names.each_with_index do |plugin_name, index|
|
|
39
|
-
plugins.create(:name => plugin_name, :position => index) if plugin_name.is_a?(String)
|
|
40
|
-
end
|
|
41
|
-
end
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
def authorized_plugins
|
|
45
|
-
plugins.collect { |p| p.name } | Refinery::Plugins.always_allowed.names
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
def can_delete?(user_to_delete = self)
|
|
49
|
-
user_to_delete.persisted? and
|
|
50
|
-
id != user_to_delete.id and
|
|
51
|
-
!user_to_delete.has_role?(:superuser) and
|
|
52
|
-
Role[:refinery].users.count > 1
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
def add_role(title)
|
|
56
|
-
raise ArgumentException, "Role should be the title of the role not a role object." if title.is_a?(Role)
|
|
57
|
-
roles << Role[title] unless has_role?(title)
|
|
58
|
-
end
|
|
59
|
-
|
|
60
|
-
def has_role?(title)
|
|
61
|
-
raise ArgumentException, "Role should be the title of the role not a role object." if title.is_a?(Role)
|
|
62
|
-
roles.any?{|r| r.title == title.to_s.camelize}
|
|
63
|
-
end
|
|
64
|
-
|
|
65
|
-
end
|
data/app/models/user_plugin.rb
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
<li id="sortable_<%= user.id %>" class='clearfix record <%= cycle("on", "on-hover") %>'>
|
|
2
|
-
<span class='title'>
|
|
3
|
-
<strong><%= user.username %></strong>
|
|
4
|
-
<span class="preview">
|
|
5
|
-
<%= t('.preview', :who => user.email, :created_at => l(user.created_at, :format => :short)) %>
|
|
6
|
-
</span>
|
|
7
|
-
</span>
|
|
8
|
-
<span class='actions'>
|
|
9
|
-
<%= mail_to user.email, refinery_icon_tag('email_go.png'),
|
|
10
|
-
:title => t('.email_user') %>
|
|
11
|
-
<%= link_to refinery_icon_tag('application_edit.png'), edit_admin_user_path(user),
|
|
12
|
-
:title => t('edit', :scope => 'admin.users')%>
|
|
13
|
-
<%= link_to refinery_icon_tag('delete.png'), admin_user_path(user),
|
|
14
|
-
:class => "cancel confirm-delete",
|
|
15
|
-
:title => t('delete', :scope => 'admin.users'),
|
|
16
|
-
:method => :delete,
|
|
17
|
-
:confirm => t('message', :scope => 'shared.admin.delete', :title => user.username) if current_user.can_delete?(user) %>
|
|
18
|
-
</span>
|
|
19
|
-
</li>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<%= render :partial => 'form' %>
|