muck-users 0.2.23 → 0.3.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/README.rdoc +3 -1
- data/VERSION +1 -1
- data/app/controllers/admin/muck/access_codes_controller.rb +78 -0
- data/app/controllers/admin/muck/roles_controller.rb +34 -24
- data/app/controllers/admin/muck/users_controller.rb +56 -21
- data/app/controllers/muck/access_code_requests_controller.rb +27 -0
- data/app/controllers/muck/activations_controller.rb +0 -1
- data/app/controllers/muck/users_controller.rb +122 -110
- data/app/models/role.rb +5 -2
- data/app/models/user_mailer.rb +7 -0
- data/app/views/access_code_requests/new.html.erb +7 -0
- data/app/views/access_code_requests/show.html.erb +1 -0
- data/app/views/admin/access_codes/_access_code.html.erb +8 -0
- data/app/views/admin/access_codes/_form.html.erb +15 -0
- data/app/views/admin/access_codes/_user.html.erb +6 -0
- data/app/views/admin/access_codes/bulk.html.erb +12 -0
- data/app/views/admin/access_codes/edit.html.erb +6 -0
- data/app/views/admin/access_codes/index.html.erb +18 -0
- data/app/views/admin/access_codes/new.html.erb +6 -0
- data/app/views/admin/access_codes/show.html.erb +30 -0
- data/app/views/admin/permissions/_permission.html.erb +3 -0
- data/app/views/admin/roles/_role.html.erb +5 -9
- data/app/views/admin/roles/edit.html.erb +4 -17
- data/app/views/admin/roles/index.html.erb +16 -8
- data/app/views/admin/roles/new.html.erb +4 -16
- data/app/views/admin/roles/show.html.erb +3 -7
- data/app/views/admin/users/_activate.html.erb +2 -2
- data/app/views/admin/users/_row.html.erb +8 -2
- data/app/views/admin/users/_table.html.erb +10 -15
- data/app/views/admin/users/permissions.html.erb +8 -0
- data/app/views/user_mailer/access_code.text.html.erb +3 -0
- data/app/views/user_mailer/access_code.text.plain.erb +5 -0
- data/app/views/users/_signup_form.html.erb +7 -0
- data/app/views/users/welcome.html.erb +1 -1
- data/config/muck_users_routes.rb +5 -2
- data/db/migrate/20100123035450_create_access_codes.rb +19 -0
- data/db/migrate/20100123233654_create_access_code_requests.rb +14 -0
- data/lib/action_controller/authentic_application.rb +1 -1
- data/lib/active_record/acts/muck_access_code.rb +75 -0
- data/lib/active_record/acts/muck_access_code_request.rb +33 -0
- data/lib/active_record/acts/muck_user.rb +13 -1
- data/lib/muck_users.rb +8 -1
- data/lib/muck_users/muck_custom_form_builder.rb +10 -0
- data/locales/en.yml +163 -102
- data/muck-users.gemspec +41 -2
- data/test/rails_root/app/models/access_code.rb +3 -0
- data/test/rails_root/app/models/access_code_request.rb +3 -0
- data/test/rails_root/app/models/user.rb +12 -9
- data/test/rails_root/config/environment.rb +1 -0
- data/test/rails_root/config/global_config.yml +1 -1
- data/test/rails_root/db/migrate/20100123035450_create_access_codes.rb +19 -0
- data/test/rails_root/db/migrate/20100123233654_create_access_code_requests.rb +14 -0
- data/test/rails_root/public/javascripts/jquery/jquery.jgrowl.js +9 -2
- data/test/rails_root/public/javascripts/muck.js +39 -13
- data/test/rails_root/public/stylesheets/admin.css +20 -3
- data/test/rails_root/public/stylesheets/jquery/cupertino/jquery-ui-1.7.2.custom.css +160 -0
- data/test/rails_root/public/stylesheets/jquery/redmond/jquery-ui-1.7.2.custom.css +160 -0
- data/test/rails_root/public/stylesheets/jquery/smoothness/jquery-ui-1.7.2.custom.css +160 -0
- data/test/rails_root/public/stylesheets/jquery/ui-lightness/jquery-ui-1.7.2.custom.css +160 -0
- data/test/rails_root/public/stylesheets/styles.css +9 -8
- data/test/rails_root/test/functional/access_code_requests_controller_test.rb +33 -0
- data/test/rails_root/test/functional/admin/access_codes_controller_test.rb +166 -0
- data/test/rails_root/test/unit/access_code_test.rb +100 -0
- data/test/rails_root/test/unit/role_test.rb +1 -0
- data/test/rails_root/test/unit/user_mailer_test.rb +13 -1
- data/test/rails_root/test/unit/user_test.rb +13 -9
- metadata +41 -2
data/README.rdoc
CHANGED
@@ -35,7 +35,9 @@ Inside of global_config.yml add the following changing the emails to match your
|
|
35
35
|
from_email: 'support@example.com'
|
36
36
|
support_email: 'support@example.com'
|
37
37
|
admin_email: 'admin@example.com'
|
38
|
-
|
38
|
+
|
39
|
+
require_access_code: false # Determines whether or not a access code is required to sign up.
|
40
|
+
|
39
41
|
=== Users migration
|
40
42
|
The users table is frequently one of the most significant of any application. A migration to create users is not included in this
|
41
43
|
gem so that the users tables can be customized appropriately. Here's an example migration:
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.3.0
|
@@ -0,0 +1,78 @@
|
|
1
|
+
class Admin::Muck::AccessCodesController < Admin::Muck::BaseController
|
2
|
+
|
3
|
+
before_filter :setup_access_code, :except => [:index, :new, :create, :bulk, :bulk_create]
|
4
|
+
|
5
|
+
def index
|
6
|
+
@codes = AccessCode.by_alpha.paginate(:page => @page, :per_page => @per_page)
|
7
|
+
render :template => 'admin/access_codes/index'
|
8
|
+
end
|
9
|
+
|
10
|
+
def show
|
11
|
+
render :template => 'admin/access_codes/show'
|
12
|
+
end
|
13
|
+
|
14
|
+
def new
|
15
|
+
render :template => 'admin/access_codes/new'
|
16
|
+
end
|
17
|
+
|
18
|
+
def create
|
19
|
+
@access_code = AccessCode.new(params[:access_code])
|
20
|
+
if @access_code.save
|
21
|
+
flash[:notice] = 'Access Code was successfully added'
|
22
|
+
redirect_to admin_access_code_path(@access_code)
|
23
|
+
else
|
24
|
+
render :template => 'admin/access_codes/new'
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def bulk
|
29
|
+
@access_code = AccessCode.new
|
30
|
+
@access_code.code = AccessCode.random_code
|
31
|
+
render :template => 'admin/access_codes/bulk'
|
32
|
+
end
|
33
|
+
|
34
|
+
def bulk_create
|
35
|
+
emails = params[:emails].split(',')
|
36
|
+
emails.each do |email|
|
37
|
+
@access_code = AccessCode.new(params[:access_code])
|
38
|
+
@access_code.unlimited = false
|
39
|
+
@access_code.use_limit = 1
|
40
|
+
@access_code.uses = 0
|
41
|
+
@access_code.code ||= AccessCode.random_code # If they specified a code then don't change it.
|
42
|
+
@access_code.save!
|
43
|
+
UserMailer.deliver_access_code(email, params[:subject], params[:message], @access_code.code)
|
44
|
+
end
|
45
|
+
flash[:notice] = translate('muck.users.bulk_access_codes_created', :email_count => emails.count)
|
46
|
+
redirect_to bulk_create_admin_access_codes_path
|
47
|
+
rescue ActiveRecord::RecordInvalid => ex
|
48
|
+
render :template => "admin/access_codes/bulk"
|
49
|
+
end
|
50
|
+
|
51
|
+
def edit
|
52
|
+
render :template => "admin/access_codes/edit"
|
53
|
+
end
|
54
|
+
|
55
|
+
def update
|
56
|
+
if @access_code.update_attributes(params[:access_code])
|
57
|
+
redirect_to(admin_access_code_path(@access_code))
|
58
|
+
else
|
59
|
+
flash[:notice] = 'There was a problem updating the access code.'
|
60
|
+
render :template => "admin/access_codes/edit"
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
def destroy
|
65
|
+
if @access_code.users.length <= 0
|
66
|
+
@access_code.destroy
|
67
|
+
flash[:notice] = "Deleted access code."
|
68
|
+
else
|
69
|
+
flash[:notice] = "Cannot delete access code it has users associated with it."
|
70
|
+
end
|
71
|
+
redirect_to admin_access_codes_path
|
72
|
+
end
|
73
|
+
|
74
|
+
protected
|
75
|
+
def setup_access_code
|
76
|
+
@access_code = AccessCode.find(params[:id])
|
77
|
+
end
|
78
|
+
end
|
@@ -2,54 +2,64 @@ class Admin::Muck::RolesController < Admin::Muck::BaseController
|
|
2
2
|
unloadable
|
3
3
|
|
4
4
|
def index
|
5
|
-
@
|
6
|
-
|
5
|
+
@roles = Role.by_alpha
|
6
|
+
render :template => 'admin/roles/index'
|
7
7
|
end
|
8
8
|
|
9
9
|
def show
|
10
|
-
@role = Role.
|
10
|
+
@role = Role.find(params[:id])
|
11
|
+
@users = @role.users.paginate(:page => @page, :per_page => @per_page)
|
12
|
+
render :template => 'admin/roles/show'
|
11
13
|
end
|
12
14
|
|
13
15
|
def new
|
14
16
|
@role = Role.new(params[:role])
|
17
|
+
render :template => 'admin/roles/new', :layout => false
|
15
18
|
end
|
16
19
|
|
17
20
|
def create
|
18
21
|
@role = Role.new(params[:role])
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
format.html { redirect_to(admin_roles_path(@role)) }
|
24
|
-
format.xml { render :xml => @role, :status => :created, :location => @role }
|
25
|
-
else
|
26
|
-
format.html { render :action => "new" }
|
27
|
-
format.xml { render :xml => @role.errors, :status => :unprocessable_entity }
|
28
|
-
end
|
22
|
+
if @role.save
|
23
|
+
ajax_update_roles
|
24
|
+
else
|
25
|
+
output_admin_messages(@role)
|
29
26
|
end
|
30
27
|
end
|
31
28
|
|
32
29
|
def edit
|
33
|
-
@role = Role.
|
30
|
+
@role = Role.find(params[:id])
|
31
|
+
render :template => 'admin/roles/edit', :layout => false
|
34
32
|
end
|
35
33
|
|
36
34
|
def update
|
37
|
-
@user = User.find(params[:user_id])
|
38
35
|
@role = Role.find(params[:id])
|
39
|
-
|
40
|
-
|
36
|
+
if @role.update_attributes(params[:role])
|
37
|
+
ajax_update_roles
|
38
|
+
else
|
39
|
+
output_admin_messages(@role)
|
41
40
|
end
|
42
|
-
redirect_to :action => 'index'
|
43
41
|
end
|
44
42
|
|
45
43
|
def destroy
|
46
|
-
@user = User.find(params[:user_id])
|
47
44
|
@role = Role.find(params[:id])
|
48
|
-
if @
|
49
|
-
|
45
|
+
if @role.rolename == 'administrator'
|
46
|
+
flash[:notice] = translate('muck.users.cant_delete_administrator_role')
|
47
|
+
output_admin_messages
|
48
|
+
else
|
49
|
+
@role.delete
|
50
|
+
render :update do |page|
|
51
|
+
page.remove @role.dom_id
|
52
|
+
end
|
50
53
|
end
|
51
|
-
redirect_to :action => 'index'
|
52
54
|
end
|
53
55
|
|
54
|
-
|
55
|
-
|
56
|
+
protected
|
57
|
+
|
58
|
+
def ajax_update_roles
|
59
|
+
render :update do |page|
|
60
|
+
page.replace_html 'current-roles', :partial => 'admin/roles/role', :collection => Role.by_alpha
|
61
|
+
page << "jQuery('.dialog').dialog('close');"
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
end
|
@@ -1,15 +1,23 @@
|
|
1
1
|
class Admin::Muck::UsersController < Admin::Muck::BaseController
|
2
2
|
unloadable
|
3
3
|
|
4
|
-
before_filter :get_user, :only => [:update, :destroy]
|
4
|
+
before_filter :get_user, :only => [:update, :destroy, :permissions]
|
5
5
|
before_filter :setup_subnavigation
|
6
6
|
|
7
7
|
def index
|
8
|
-
@user_count = User.count
|
9
|
-
@user_inactive_count = User.inactive_count
|
10
|
-
@users = User.by_newest.paginate(:page => @page, :per_page => @per_page)
|
11
8
|
respond_to do |format|
|
12
|
-
format.html
|
9
|
+
format.html do
|
10
|
+
@user_count = User.count
|
11
|
+
@user_inactive_count = User.inactive_count
|
12
|
+
@users = User.by_newest.paginate(:page => @page, :per_page => @per_page, :include => ['roles'])
|
13
|
+
render :template => 'admin/users/index'
|
14
|
+
end
|
15
|
+
format.csv do
|
16
|
+
@users = User.find(:all)
|
17
|
+
headers["Content-Type"] = 'text/csv'
|
18
|
+
headers["Content-Disposition"] = "attachment; filename=\"users.csv\""
|
19
|
+
render :layout => false
|
20
|
+
end
|
13
21
|
end
|
14
22
|
end
|
15
23
|
|
@@ -61,24 +69,31 @@ class Admin::Muck::UsersController < Admin::Muck::BaseController
|
|
61
69
|
end
|
62
70
|
|
63
71
|
def update
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
message = I18n.t('muck.users.user_marked_active')
|
72
|
+
|
73
|
+
if params[:deactivate]
|
74
|
+
if is_me?(@user)
|
75
|
+
message = translate("muck.users.cannot_deactivate_yourself")
|
69
76
|
else
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
activate_text << render_to_string(:partial => 'admin/users/activate', :locals => {:user => @user})
|
75
|
-
respond_to do |format|
|
76
|
-
format.js do
|
77
|
-
render :update do |page|
|
78
|
-
page.replace_html @user.dom_id('link'), activate_text
|
77
|
+
if @user.deactivate!
|
78
|
+
return update_activate(translate('muck.users.user_marked_inactive'))
|
79
|
+
else
|
80
|
+
message = translate('muck.users.user_not_deactivated_error')
|
79
81
|
end
|
80
82
|
end
|
83
|
+
elsif params[:activate]
|
84
|
+
if @user.activate!
|
85
|
+
return update_activate(translate('muck.users.user_marked_active'))
|
86
|
+
else
|
87
|
+
message = translate('muck.users.user_not_activated_error')
|
88
|
+
end
|
89
|
+
else
|
90
|
+
params[:user][:role_ids] ||= []
|
91
|
+
if @user.update_attributes(params[:user])
|
92
|
+
return update_permissions(@user, translate('muck.users.updated_permissions'))
|
93
|
+
end
|
81
94
|
end
|
95
|
+
flash[:notice] = message
|
96
|
+
output_admin_messages(@user)
|
82
97
|
end
|
83
98
|
|
84
99
|
def enable
|
@@ -106,7 +121,7 @@ class Admin::Muck::UsersController < Admin::Muck::BaseController
|
|
106
121
|
@user.destroy
|
107
122
|
respond_to do |format|
|
108
123
|
format.html do
|
109
|
-
flash[:notice] =
|
124
|
+
flash[:notice] = translate('muck.users.user_successfully_deleted', :login => @user.login)
|
110
125
|
redirect_to admin_users_path
|
111
126
|
end
|
112
127
|
format.xml { head :ok }
|
@@ -114,8 +129,28 @@ class Admin::Muck::UsersController < Admin::Muck::BaseController
|
|
114
129
|
end
|
115
130
|
end
|
116
131
|
|
117
|
-
|
132
|
+
def permissions
|
133
|
+
render :template => 'admin/users/permissions', :layout => false
|
134
|
+
end
|
118
135
|
|
136
|
+
protected
|
137
|
+
|
138
|
+
def update_permissions(user, message)
|
139
|
+
flash[:notice] = message
|
140
|
+
render :update do |page|
|
141
|
+
page << "jQuery('.dialog').dialog('close');"
|
142
|
+
page.replace_html user.dom_id('permissions'), :partial => 'admin/permissions/permission', :collection => user.permissions, :locals => { :user => user }
|
143
|
+
end
|
144
|
+
end
|
145
|
+
|
146
|
+
def update_activate(message)
|
147
|
+
flash[:notice] = message
|
148
|
+
render :update do |page|
|
149
|
+
page.replace_html 'admin-messages', output_flash
|
150
|
+
page.replace_html @user.dom_id('link'), :partial => 'admin/users/activate', :locals => { :user => @user }
|
151
|
+
end
|
152
|
+
end
|
153
|
+
|
119
154
|
def get_user
|
120
155
|
@user = User.find(params[:id])
|
121
156
|
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
class Muck::AccessCodeRequestsController < ApplicationController
|
2
|
+
unloadable
|
3
|
+
layout 'popup'
|
4
|
+
|
5
|
+
ssl_required :new, :create
|
6
|
+
before_filter :not_logged_in_required
|
7
|
+
|
8
|
+
def show
|
9
|
+
render :template => 'access_code_requests/show'
|
10
|
+
end
|
11
|
+
|
12
|
+
def new
|
13
|
+
@page_title = t('muck.users.request_access_code')
|
14
|
+
render :template => 'access_code_requests/new'
|
15
|
+
end
|
16
|
+
|
17
|
+
def create
|
18
|
+
@page_title = t('muck.users.request_access_code')
|
19
|
+
@access_code_request = AccessCodeRequest.new(params[:access_code_request])
|
20
|
+
if @access_code_request.save
|
21
|
+
redirect_to access_code_request_path(@access_code_request)
|
22
|
+
else
|
23
|
+
render :action => "access_code_requests/new"
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
@@ -51,7 +51,7 @@ class Muck::UsersController < ApplicationController
|
|
51
51
|
@page_title = t('muck.users.register_account', :application_name => GlobalConfig.application_name)
|
52
52
|
cookies.delete :auth_token
|
53
53
|
@user = User.new(params[:user])
|
54
|
-
|
54
|
+
check_access_code
|
55
55
|
check_recaptcha
|
56
56
|
success, path = setup_user
|
57
57
|
after_create_response(success, path)
|
@@ -126,151 +126,163 @@ class Muck::UsersController < ApplicationController
|
|
126
126
|
|
127
127
|
protected
|
128
128
|
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
129
|
+
def valid_email?(email)
|
130
|
+
user = User.new(:email => email)
|
131
|
+
user.valid?
|
132
|
+
if user.errors[:email]
|
133
|
+
[false, user.errors[:email]]
|
134
|
+
else
|
135
|
+
[true, '']
|
136
|
+
end
|
136
137
|
end
|
137
|
-
end
|
138
138
|
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
139
|
+
def standard_response(template)
|
140
|
+
respond_to do |format|
|
141
|
+
format.html { render :template => "users/#{template}" }
|
142
|
+
format.xml { render :xml => @user }
|
143
|
+
end
|
143
144
|
end
|
144
|
-
end
|
145
145
|
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
146
|
+
def after_create_response(success, local_uri = '')
|
147
|
+
if success
|
148
|
+
respond_to do |format|
|
149
|
+
format.html { redirect_to local_uri }
|
150
|
+
format.xml { render :xml => @user, :status => :created, :location => user_url(@user) }
|
151
|
+
end
|
152
|
+
else
|
153
|
+
respond_to do |format|
|
154
|
+
format.html { render :template => "users/new" }
|
155
|
+
format.xml { render :xml => @user.errors, :status => :unprocessable_entity }
|
156
|
+
end
|
151
157
|
end
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
158
|
+
end
|
159
|
+
|
160
|
+
# Sign up methods
|
161
|
+
def check_access_code
|
162
|
+
if GlobalConfig.require_access_code
|
163
|
+
access_code, valid_code = AccessCode.valid_code?(params[:user][:access_code_code])
|
164
|
+
if valid_code
|
165
|
+
@user.access_code = access_code
|
166
|
+
else
|
167
|
+
flash[:notice] = translate('muck.users.access_required_warning')
|
168
|
+
raise Exceptions::InvalidAccessCode
|
169
|
+
end
|
156
170
|
end
|
157
171
|
end
|
158
|
-
end
|
159
172
|
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
173
|
+
def check_recaptcha
|
174
|
+
if GlobalConfig.use_recaptcha
|
175
|
+
if !(verify_recaptcha(@user) && @user.valid?)
|
176
|
+
raise ActiveRecord::RecordInvalid, @user
|
177
|
+
end
|
165
178
|
end
|
166
179
|
end
|
167
|
-
end
|
168
180
|
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
181
|
+
def setup_user
|
182
|
+
if GlobalConfig.automatically_activate
|
183
|
+
if GlobalConfig.automatically_login_after_account_create
|
184
|
+
setup_user_login
|
185
|
+
else
|
186
|
+
setup_user_no_login
|
187
|
+
end
|
173
188
|
else
|
174
|
-
|
189
|
+
setup_user_no_activate
|
175
190
|
end
|
176
|
-
else
|
177
|
-
setup_user_no_activate
|
178
191
|
end
|
179
|
-
end
|
180
192
|
|
181
|
-
|
182
|
-
|
183
|
-
success = false
|
184
|
-
if @user.save
|
185
|
-
@user.activate!
|
186
|
-
UserSession.create(@user)
|
187
|
-
send_welcome_email
|
188
|
-
flash[:notice] = t('muck.users.thanks_sign_up')
|
189
|
-
success = true
|
190
|
-
path = signup_complete_path(@user)
|
191
|
-
else
|
193
|
+
def setup_user_login
|
194
|
+
path = ''
|
192
195
|
success = false
|
196
|
+
if @user.save
|
197
|
+
@user.activate!
|
198
|
+
UserSession.create(@user)
|
199
|
+
send_welcome_email
|
200
|
+
flash[:notice] = t('muck.users.thanks_sign_up')
|
201
|
+
success = true
|
202
|
+
path = signup_complete_path(@user)
|
203
|
+
else
|
204
|
+
success = false
|
205
|
+
end
|
206
|
+
[success, path]
|
193
207
|
end
|
194
|
-
[success, path]
|
195
|
-
end
|
196
208
|
|
197
|
-
|
198
|
-
|
199
|
-
success = false
|
200
|
-
if @user.save_without_session_maintenance
|
201
|
-
@user.activate!
|
202
|
-
send_welcome_email
|
203
|
-
flash[:notice] = t('muck.users.thanks_sign_up_login')
|
204
|
-
success = true
|
205
|
-
path = signup_complete_login_required_path(@user)
|
206
|
-
else
|
209
|
+
def setup_user_no_login
|
210
|
+
path = ''
|
207
211
|
success = false
|
212
|
+
if @user.save_without_session_maintenance
|
213
|
+
@user.activate!
|
214
|
+
send_welcome_email
|
215
|
+
flash[:notice] = t('muck.users.thanks_sign_up_login')
|
216
|
+
success = true
|
217
|
+
path = signup_complete_login_required_path(@user)
|
218
|
+
else
|
219
|
+
success = false
|
220
|
+
end
|
221
|
+
[success, path]
|
208
222
|
end
|
209
|
-
[success, path]
|
210
|
-
end
|
211
223
|
|
212
|
-
|
213
|
-
|
214
|
-
success = false
|
215
|
-
if @user.save_without_session_maintenance
|
216
|
-
@user.deliver_activation_instructions!
|
217
|
-
flash[:notice] = t('muck.users.thanks_sign_up_check')
|
218
|
-
success = true
|
219
|
-
path = signup_complete_activation_required_path(@user)
|
220
|
-
else
|
224
|
+
def setup_user_no_activate
|
225
|
+
path = ''
|
221
226
|
success = false
|
227
|
+
if @user.save_without_session_maintenance
|
228
|
+
@user.deliver_activation_instructions!
|
229
|
+
flash[:notice] = t('muck.users.thanks_sign_up_check')
|
230
|
+
success = true
|
231
|
+
path = signup_complete_activation_required_path(@user)
|
232
|
+
else
|
233
|
+
success = false
|
234
|
+
end
|
235
|
+
[success, path]
|
222
236
|
end
|
223
|
-
[success, path]
|
224
|
-
end
|
225
237
|
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
238
|
+
def send_welcome_email
|
239
|
+
begin
|
240
|
+
@user.deliver_welcome_email
|
241
|
+
rescue Net::SMTPAuthenticationError => ex
|
242
|
+
# TODO figure out what to do when email fails
|
243
|
+
# @user.no_welcome_email =
|
244
|
+
end
|
232
245
|
end
|
233
|
-
end
|
234
246
|
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
247
|
+
# override redirect by adding :redirect_to as a hidden field in your form or as a url param
|
248
|
+
def after_update_response(success)
|
249
|
+
if success
|
250
|
+
respond_to do |format|
|
251
|
+
format.html do
|
252
|
+
get_redirect_to do
|
253
|
+
redirect_to admin? ? public_user_path(@user) : user_path(@user)
|
254
|
+
end
|
242
255
|
end
|
256
|
+
format.xml{ head :ok }
|
257
|
+
end
|
258
|
+
else
|
259
|
+
respond_to do |format|
|
260
|
+
format.html { render :template => 'users/edit' }
|
261
|
+
format.xml { render :xml => @user.errors, :status => :unprocessable_entity }
|
243
262
|
end
|
244
|
-
format.xml{ head :ok }
|
245
|
-
end
|
246
|
-
else
|
247
|
-
respond_to do |format|
|
248
|
-
format.html { render :template => 'users/edit' }
|
249
|
-
format.xml { render :xml => @user.errors, :status => :unprocessable_entity }
|
250
263
|
end
|
251
264
|
end
|
252
|
-
end
|
253
265
|
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
266
|
+
# override redirect by adding :redirect_to as a hidden field in your form or as a url param
|
267
|
+
def after_destroy_response
|
268
|
+
respond_to do |format|
|
269
|
+
format.html do
|
270
|
+
flash[:notice] = t('muck.users.login_out_success')
|
271
|
+
get_redirect_to do
|
272
|
+
redirect_to(login_url)
|
273
|
+
end
|
261
274
|
end
|
275
|
+
format.xml { head :ok }
|
262
276
|
end
|
263
|
-
format.xml { head :ok }
|
264
277
|
end
|
265
|
-
end
|
266
278
|
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
279
|
+
def permission_denied
|
280
|
+
flash[:notice] = t('muck.users.permission_denied')
|
281
|
+
respond_to do |format|
|
282
|
+
format.html do
|
283
|
+
redirect_to user_path(current_user)
|
284
|
+
end
|
272
285
|
end
|
273
286
|
end
|
274
|
-
end
|
275
287
|
|
276
288
|
end
|