goma 0.0.1.gamma → 0.0.1.rc1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +0 -1
- data/Gemfile.lock +13 -9
- data/Rakefile +14 -0
- data/goma.gemspec +6 -0
- data/lib/generators/goma/erb/templates/confirmation/new.html.erb +2 -2
- data/lib/generators/goma/erb/templates/password/edit.html.erb +6 -6
- data/lib/generators/goma/erb/templates/unlock/new.html.erb +1 -1
- data/lib/generators/goma/erb/templates/user/_form.html.erb +1 -1
- data/lib/generators/goma/erb/templates/user/new.html.erb +4 -0
- data/lib/generators/goma/mailer/erb/templates/activation_needed_email.text.erb +1 -1
- data/lib/generators/goma/model/active_record_generator.rb +1 -0
- data/lib/generators/goma/model/oauth/active_record_generator.rb +3 -3
- data/lib/generators/goma/resource_route/resource_route_generator.rb +13 -9
- data/lib/generators/goma/scaffold_controller/templates/confirmation_controller.rb +8 -4
- data/lib/generators/goma/scaffold_controller/templates/oauth_controller.rb +5 -0
- data/lib/generators/goma/scaffold_controller/templates/password_controller.rb +9 -4
- data/lib/generators/goma/scaffold_controller/templates/unlock_controller.rb +1 -0
- data/lib/generators/goma/scaffold_controller/templates/user_controller.rb +41 -1
- data/lib/goma/config.rb +4 -4
- data/lib/goma/models/authenticatable.rb +20 -9
- data/lib/goma/models/confirmable.rb +15 -9
- data/lib/goma/models/password_authenticatable.rb +2 -1
- data/lib/goma/models/recoverable.rb +1 -1
- data/lib/goma/models/validatable.rb +4 -4
- data/lib/goma/railtie.rb +1 -0
- data/lib/goma/version.rb +1 -1
- data/test/integration/confirmable_integration_test.rb +185 -0
- data/test/integration/lockable_integration_test.rb +49 -0
- data/test/integration/omniauthable_integration_test.rb +64 -12
- data/test/integration/password_authenticatable_integration_test.rb +40 -0
- data/test/integration/recoverable_integration_test.rb +96 -0
- data/test/integration/rememberable_integration_test.rb +14 -0
- data/test/models/confirmable_test.rb +6 -6
- data/test/models/omniauthable_test.rb +2 -2
- data/test/rails_app/app/controllers/authentications_controller.rb +5 -0
- data/test/rails_app/app/controllers/confirmations_controller.rb +8 -4
- data/test/rails_app/app/controllers/passwords_controller.rb +9 -4
- data/test/rails_app/app/controllers/unlocks_controller.rb +1 -0
- data/test/rails_app/app/controllers/users_controller.rb +25 -2
- data/test/rails_app/app/views/confirmations/new.html.erb +2 -2
- data/test/rails_app/app/views/layouts/application.html.erb +3 -1
- data/test/rails_app/app/views/passwords/edit.html.erb +6 -6
- data/test/rails_app/app/views/unlocks/new.html.erb +1 -1
- data/test/rails_app/app/views/user_mailer/activation_needed_email.text.erb +1 -1
- data/test/rails_app/app/views/users/_form.html.erb +1 -1
- data/test/rails_app/app/views/users/new.html.erb +1 -0
- data/test/rails_app/config/initializers/omniauth.rb +0 -1
- data/test/rails_app/config/routes.rb +6 -10
- data/test/rails_app/db/migrate/{20140512081308_create_users.rb → 20140515111009_create_users.rb} +0 -0
- data/test/rails_app/db/migrate/{20140512081309_create_authentications.rb → 20140515111010_create_authentications.rb} +0 -0
- data/test/rails_app/db/schema.rb +1 -1
- data/test/test_helper.rb +43 -0
- metadata +33 -13
- data/test/controllers/confirmations_controller_test.rb +0 -14
- data/test/controllers/users_controller_test.rb +0 -12
- data/test/integration/authenticatable_integration_test.rb +0 -26
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5ef7018f710a582f625d31c0933a64ca21c04ae6
|
4
|
+
data.tar.gz: f74640b684a0feaef3146ff6ab537e46c7009b8b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9d68a65ac82a574ab10110551e453aee53dac951d96c4cdee43822e47b86231fb554615635d1449ef690a5124f3a5f80afc8cd29fcd57ad2ac8f9e847639a9e8
|
7
|
+
data.tar.gz: a2f9662edacd4404694af19493b9e626319ee4fbe985c7c7fb3c8f05d07275f966dcebb56ab3212c021054ee1cd5009f3e275440c5826f19904776d78f1bf7dd
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
goma (0.0.1.
|
4
|
+
goma (0.0.1.rc1)
|
5
5
|
rails (~> 4.0)
|
6
6
|
warden
|
7
7
|
|
@@ -39,6 +39,12 @@ GEM
|
|
39
39
|
byebug (3.1.2)
|
40
40
|
columnize (~> 0.8)
|
41
41
|
debugger-linecache (~> 1.2)
|
42
|
+
capybara (2.2.1)
|
43
|
+
mime-types (>= 1.16)
|
44
|
+
nokogiri (>= 1.3.3)
|
45
|
+
rack (>= 1.0.0)
|
46
|
+
rack-test (>= 0.5.4)
|
47
|
+
xpath (~> 2.0)
|
42
48
|
columnize (0.8.9)
|
43
49
|
debugger-linecache (1.2.0)
|
44
50
|
erubis (2.7.0)
|
@@ -51,6 +57,7 @@ GEM
|
|
51
57
|
treetop (~> 1.4.8)
|
52
58
|
metaclass (0.0.4)
|
53
59
|
mime-types (1.25.1)
|
60
|
+
mini_portile (0.6.0)
|
54
61
|
minitest (4.7.5)
|
55
62
|
minitest-ansi (0.1.3)
|
56
63
|
ansi (~> 1.3)
|
@@ -58,16 +65,11 @@ GEM
|
|
58
65
|
mocha (1.0.0)
|
59
66
|
metaclass (~> 0.0.1)
|
60
67
|
multi_json (1.9.3)
|
61
|
-
|
68
|
+
nokogiri (1.6.2.1)
|
69
|
+
mini_portile (= 0.6.0)
|
62
70
|
omniauth (1.2.1)
|
63
71
|
hashie (>= 1.2, < 3)
|
64
72
|
rack (~> 1.0)
|
65
|
-
omniauth-oauth (1.0.1)
|
66
|
-
oauth
|
67
|
-
omniauth (~> 1.0)
|
68
|
-
omniauth-twitter (1.0.1)
|
69
|
-
multi_json (~> 1.3)
|
70
|
-
omniauth-oauth (~> 1.0)
|
71
73
|
polyglot (0.3.4)
|
72
74
|
rack (1.5.2)
|
73
75
|
rack-test (0.6.2)
|
@@ -109,6 +111,8 @@ GEM
|
|
109
111
|
tzinfo (0.3.39)
|
110
112
|
warden (1.2.3)
|
111
113
|
rack (>= 1.0)
|
114
|
+
xpath (2.0.0)
|
115
|
+
nokogiri (~> 1.3)
|
112
116
|
|
113
117
|
PLATFORMS
|
114
118
|
ruby
|
@@ -116,12 +120,12 @@ PLATFORMS
|
|
116
120
|
DEPENDENCIES
|
117
121
|
bcrypt (~> 3.0)
|
118
122
|
byebug
|
123
|
+
capybara
|
119
124
|
fabrication
|
120
125
|
goma!
|
121
126
|
minitest-ansi
|
122
127
|
mocha
|
123
128
|
omniauth
|
124
|
-
omniauth-twitter
|
125
129
|
shoulda-context
|
126
130
|
single_test
|
127
131
|
sqlite3
|
data/Rakefile
CHANGED
@@ -29,5 +29,19 @@ Rake::TestTask.new(:test) do |t|
|
|
29
29
|
t.verbose = false
|
30
30
|
end
|
31
31
|
|
32
|
+
desc "Rebuild test app's resources"
|
33
|
+
task "rebuild_test_app" do
|
34
|
+
migration = 'migrate' == ARGV.last ? '' : ' --no-migration'
|
35
|
+
cd "test/rails_app"
|
36
|
+
sh "bundle exec rails d goma:scaffold User#{migration}"
|
37
|
+
sh "bundle exec rails g goma:scaffold User#{migration}"
|
38
|
+
if migration.empty?
|
39
|
+
sh "RAILS_ENV=test bundle exec rake db:drop"
|
40
|
+
sh "RAILS_ENV=test bundle exec rake db:create"
|
41
|
+
sh "RAILS_ENV=test bundle exec rake db:migrate"
|
42
|
+
end
|
43
|
+
sh "rm -rf test/*"
|
44
|
+
cd "../.."
|
45
|
+
end
|
32
46
|
|
33
47
|
task default: :test
|
data/goma.gemspec
CHANGED
@@ -49,6 +49,11 @@ That's it.
|
|
49
49
|
This gem is in early development phase and I do not recommend you to use this for production for a while.
|
50
50
|
Bug reports and pull requests are welcome.
|
51
51
|
|
52
|
+
I am surprised that this gem has been downloaded over 200 times, in spite of pre release versions of v0.0.1.
|
53
|
+
And, I feel bad about there were lots of bugs and incomplete implementations in previous versions.
|
54
|
+
|
55
|
+
I will release this as a release candidate, but will add lots of code before v0.0.1.
|
56
|
+
|
52
57
|
Enjoy!\e[0m
|
53
58
|
MESSAGE
|
54
59
|
|
@@ -61,6 +66,7 @@ MESSAGE
|
|
61
66
|
s.add_development_dependency "mocha"
|
62
67
|
s.add_development_dependency "shoulda-context"
|
63
68
|
s.add_development_dependency "timecop"
|
69
|
+
s.add_development_dependency "capybara"
|
64
70
|
s.add_development_dependency "minitest-ansi"
|
65
71
|
s.add_development_dependency "single_test"
|
66
72
|
s.add_development_dependency "byebug"
|
@@ -1,9 +1,9 @@
|
|
1
1
|
<h1>Resend activation instructions</h1>
|
2
2
|
|
3
|
-
<%%= form_tag(
|
3
|
+
<%%= form_tag(<%= name.underscore.pluralize %>_url, method: :post) do %>
|
4
4
|
<div class="field">
|
5
5
|
<%%= label_tag :<%= goma_config.authentication_keys.to_field_name %> %><br>
|
6
|
-
<%%= text_field_tag :<%= goma_config.authentication_keys.to_field_name %>
|
6
|
+
<%%= text_field_tag :<%= goma_config.authentication_keys.to_field_name %> %>
|
7
7
|
</div>
|
8
8
|
<div class="actions">
|
9
9
|
<%%= submit_tag "Resend activation instructions" %>
|
@@ -1,18 +1,18 @@
|
|
1
1
|
<h1>Change your password</h1>
|
2
2
|
|
3
|
-
<%%= form_for(@<%= singular_table_name %>) do |f| %>
|
4
|
-
<%% if @<%=
|
3
|
+
<%%= form_for(@<%= resource_name %>, url: <%= singular_table_name %>_url, html: {method: :put}) do |f| %>
|
4
|
+
<%% if @<%= resource_name %> && @<%= resource_name %>.errors.any? %>
|
5
5
|
<div id="error_explanation">
|
6
|
-
<h2><%%= pluralize(@<%=
|
6
|
+
<h2><%%= pluralize(@<%= resource_name %>.errors.count, "error") %> prohibited this <%= resource_name %> from being saved:</h2>
|
7
7
|
|
8
8
|
<ul>
|
9
|
-
<%% @<%=
|
9
|
+
<%% @<%= resource_name %>.errors.full_messages.each do |msg| %>
|
10
10
|
<li><%%= msg %></li>
|
11
11
|
<%% end %>
|
12
12
|
</ul>
|
13
13
|
</div>
|
14
14
|
<%% end %>
|
15
|
-
|
15
|
+
<%%= f.hidden_field :<%= goma_config.reset_password_token_to_send_attribute_name %> %>
|
16
16
|
<div class="field">
|
17
17
|
<%%= f.label :<%= goma_config.password_attribute_name %> %><br>
|
18
18
|
<%%= f.password_field :<%= goma_config.password_attribute_name %> %>
|
@@ -22,6 +22,6 @@
|
|
22
22
|
<%%= f.password_field :<%= goma_config.password_attribute_name %>_confirmation %>
|
23
23
|
</div>
|
24
24
|
<div class="actions">
|
25
|
-
<%%= f.submit %>
|
25
|
+
<%%= f.submit 'Change my password' %>
|
26
26
|
</div>
|
27
27
|
<%% end %>
|
@@ -3,7 +3,7 @@
|
|
3
3
|
<%%= form_tag(<%= name.underscore.pluralize%>_url, method: :post) do %>
|
4
4
|
<div class="field">
|
5
5
|
<%%= label_tag :<%= goma_config.authentication_keys.to_field_name %> %><br>
|
6
|
-
<%%= text_field_tag :<%= goma_config.authentication_keys.to_field_name %>
|
6
|
+
<%%= text_field_tag :<%= goma_config.authentication_keys.to_field_name %> %>
|
7
7
|
</div>
|
8
8
|
<div class="actions">
|
9
9
|
<%%= submit_tag "Resend unlock instructions" %>
|
@@ -1,5 +1,9 @@
|
|
1
1
|
<h1>New <%= singular_table_name %></h1>
|
2
2
|
|
3
3
|
<%%= render 'form' %>
|
4
|
+
<% auth_keys = goma_config.authentication_keys - [goma_config.email_attribute_name] -%>
|
5
|
+
<% if goma_config.modules.include?(:confirmable) && auth_keys.present? -%>
|
6
|
+
* If you signed up with wrong email address, please enter correct email address and <%= auth_keys.join(', ') %> and password your entered when you signed up and click 'Sign up' again.
|
7
|
+
<% end -%>
|
4
8
|
|
5
9
|
<%%= link_to 'Back', <%= index_helper %>_path %>
|
@@ -3,4 +3,4 @@ Welcome, <%%= @<%= resource_name %>.<%= goma_config.email_attribute_name %> %>
|
|
3
3
|
|
4
4
|
You can activate your account through the link below:
|
5
5
|
|
6
|
-
<%%=
|
6
|
+
<%%= confirmation_url(@<%= resource_name %>.<%= goma_config.confirmation_token_to_send_attribute_name %>) %>
|
@@ -25,9 +25,9 @@ module Goma
|
|
25
25
|
end
|
26
26
|
|
27
27
|
def inject_index
|
28
|
-
|
29
|
-
if
|
30
|
-
insert_into_file(
|
28
|
+
return unless options['migration']
|
29
|
+
if path = self.class.migration_exists?('db/migrate', migration_file_name)
|
30
|
+
insert_into_file(path, goma_oauth_index, {after: /^\s{4,}end\s*\n/})
|
31
31
|
end
|
32
32
|
end
|
33
33
|
|
@@ -42,8 +42,11 @@ module Goma
|
|
42
42
|
end
|
43
43
|
|
44
44
|
def resource_definition
|
45
|
-
|
45
|
+
case options[:controller_type]
|
46
|
+
when 'session'
|
46
47
|
"resource :#{file_name.singularize}"
|
48
|
+
when 'oauth'
|
49
|
+
''
|
47
50
|
else
|
48
51
|
"resources :#{file_name.pluralize}"
|
49
52
|
end
|
@@ -57,8 +60,6 @@ module Goma
|
|
57
60
|
', only: [:show, :new, :create]'
|
58
61
|
when 'password'
|
59
62
|
', only: [:new, :create, :edit, :update]'
|
60
|
-
when 'oauth'
|
61
|
-
', only: [:create]'
|
62
63
|
else
|
63
64
|
''
|
64
65
|
end
|
@@ -67,13 +68,16 @@ module Goma
|
|
67
68
|
def appending_string
|
68
69
|
if options[:controller_type] == 'confirmation' &&
|
69
70
|
goma_config.modules.include?(:confirmable) && goma_config.email_confirmation_enabled
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
71
|
+
<<-BLOCK.strip_heredoc
|
72
|
+
do
|
73
|
+
get :email, on: :member
|
74
|
+
end
|
75
|
+
BLOCK
|
75
76
|
elsif options[:controller_type] == 'oauth'
|
76
|
-
|
77
|
+
<<-RUBY.strip_heredoc
|
78
|
+
get '/auth/:provider/callback', to: '#{file_name.pluralize}#create'
|
79
|
+
get '/auth/failure', to: '#{file_name.pluralize}#failure'
|
80
|
+
RUBY
|
77
81
|
end
|
78
82
|
end
|
79
83
|
end
|
@@ -13,8 +13,7 @@ class <%= controller_class_name %>Controller < ApplicationController
|
|
13
13
|
# POST <%= route_url %>
|
14
14
|
def create
|
15
15
|
@<%= resource_name %> = <%= resource_class_name %>.find_by_identifier(params[:<%= goma_config.authentication_keys.to_field_name %>])
|
16
|
-
@<%= resource_name %>.
|
17
|
-
@<%= resource_name %>.send_activation_needed_email
|
16
|
+
@<%= resource_name %>.resend_activation_needed_email
|
18
17
|
|
19
18
|
redirect_to <%= login_url %>, notice: "We are processing your request. You will receive new activation email in a few minutes."
|
20
19
|
end
|
@@ -44,14 +43,19 @@ class <%= controller_class_name %>Controller < ApplicationController
|
|
44
43
|
|
45
44
|
if @<%= resource_name %>
|
46
45
|
@<%= resource_name %>.confirm_email!
|
47
|
-
redirect_to
|
46
|
+
redirect_to root_url, notice: 'Your new email was successfully confirmed.'
|
48
47
|
else
|
49
48
|
if err == :token_expired
|
50
49
|
flash.now[:alert] = "Your email confirmation URL has expired, please change your email again."
|
51
50
|
else
|
52
51
|
flash.now[:alert] = "Email confirmation failed. Please make sure you used the full URL provided."
|
53
52
|
end
|
54
|
-
|
53
|
+
|
54
|
+
if current_<%= resource_name %>
|
55
|
+
render edit_<%= resource_name%>_url(current_<%= resource_name %>)
|
56
|
+
else
|
57
|
+
render root_url
|
58
|
+
end
|
55
59
|
end
|
56
60
|
end
|
57
61
|
end
|
@@ -17,5 +17,10 @@ class <%= controller_class_name %>Controller < ApplicationController
|
|
17
17
|
force_login(<%= resource_name %>)
|
18
18
|
<%= specify_scope_if_needed %>redirect_back_or_to root_url, notice: "Successfully authenticated from #{omniauth[:provider]} account."
|
19
19
|
end
|
20
|
+
|
21
|
+
def failure
|
22
|
+
flash[:alert] = "Could not authenticate you from #{params[:strategy].capitalize} because \"#{params[:message].humanize}\"."
|
23
|
+
redirect_to <%= login_url %>
|
24
|
+
end
|
20
25
|
end
|
21
26
|
<% end -%>
|
@@ -21,16 +21,17 @@ class <%= controller_class_name %>Controller < ApplicationController
|
|
21
21
|
|
22
22
|
# GET <%= route_url %>/1/edit
|
23
23
|
def edit
|
24
|
-
|
24
|
+
@<%= resource_name %> = <%= resource_class_name %>.new
|
25
|
+
@<%= resource_name %>.<%= goma_config.reset_password_token_to_send_attribute_name %> = params[:id]
|
25
26
|
end
|
26
27
|
|
27
28
|
# PATCH/PUT <%= route_url %>/1
|
28
29
|
def update
|
29
|
-
@<%= resource_name %>, err = <%= resource_class_name %>.load_from_reset_password_token_with_error(params[
|
30
|
+
@<%= resource_name %>, err = <%= resource_class_name %>.load_from_reset_password_token_with_error(params[:<%= resource_name %>][:<%= goma_config.reset_password_token_to_send_attribute_name %>])
|
30
31
|
|
31
32
|
if @<%= resource_name %>
|
32
33
|
@<%= resource_name %>.unlock_access! if @<%= resource_name %>.lockable? && @<%= resource_name %>.access_locked?
|
33
|
-
@<%= resource_name %>.change_password!(params[:<%= goma_config.password_attribute_name %>], params[:<%= goma_config.password_attribute_name %>_confirmation])
|
34
|
+
@<%= resource_name %>.change_password!(params[:<%= resource_name %>][:<%= goma_config.password_attribute_name %>], params[:<%= resource_name %>][:<%= goma_config.password_attribute_name %>_confirmation])
|
34
35
|
force_login(@<%= resource_name %>)
|
35
36
|
<%= specify_scope_if_needed %>redirect_back_or_to root_url, notice: 'Your password was changed successfully. You are now logged in.'
|
36
37
|
else
|
@@ -38,10 +39,14 @@ class <%= controller_class_name %>Controller < ApplicationController
|
|
38
39
|
flash.now[:alert] = "The password reset URL you visited has expired, please request a new one."
|
39
40
|
render :new
|
40
41
|
else
|
41
|
-
|
42
|
+
@<%= resource_name %> = <%= resource_class_name %>.new
|
43
|
+
flash.now[:alert] = "You can't change your password in this page without coming from a password reset email. If you do come from a password reset email, please make sure you used the full URL provided."
|
42
44
|
render :edit
|
43
45
|
end
|
44
46
|
end
|
47
|
+
rescue ActiveRecord::RecordInvalid
|
48
|
+
@<%= resource_name %>.<%= goma_config.reset_password_token_to_send_attribute_name %> = params[:<%= resource_name %>][:<%= goma_config.reset_password_token_to_send_attribute_name %>]
|
49
|
+
render :edit
|
45
50
|
end
|
46
51
|
end
|
47
52
|
<% end -%>
|
@@ -9,6 +9,7 @@ class <%= controller_class_name %>Controller < ApplicationController
|
|
9
9
|
def show
|
10
10
|
@<%= resource_name %>, err = <%= resource_class_name %>.load_from_unlock_token_with_error(params[:id])
|
11
11
|
if @<%= resource_name %>
|
12
|
+
@<%= resource_name %>.unlock_access!
|
12
13
|
flash[:notice] = "Your account has been unlocked successfully. Please continue to login."
|
13
14
|
redirect_to <%= login_url %>
|
14
15
|
else
|
@@ -4,6 +4,7 @@ require_dependency "<%= namespaced_file_path %>/application_controller"
|
|
4
4
|
<% end -%>
|
5
5
|
<% module_namespacing do -%>
|
6
6
|
class <%= controller_class_name %>Controller < ApplicationController
|
7
|
+
before_action <%= (singular_table_name == Goma.config.default_scope && !Helpers.include_scope_name_into_controller_name) ? ':require_login' : ":require_#{singular_table_name}_login" %>, only: [:edit, :update, :destroy]
|
7
8
|
before_action :set_<%= singular_table_name %>, only: [:show, :edit, :update, :destroy]
|
8
9
|
|
9
10
|
# GET <%= route_url %>
|
@@ -22,6 +23,7 @@ class <%= controller_class_name %>Controller < ApplicationController
|
|
22
23
|
|
23
24
|
# GET <%= route_url %>/1/edit
|
24
25
|
def edit
|
26
|
+
<%= goma_config.not_authenticated_action %> unless current_user = @user
|
25
27
|
end
|
26
28
|
|
27
29
|
# POST <%= route_url %>
|
@@ -36,14 +38,27 @@ class <%= controller_class_name %>Controller < ApplicationController
|
|
36
38
|
redirect_back_or_to root_url, notice: "Welcome! You have signed up successfully.<%= goma_config.modules.include?(:confirmable) ? ' You will receive an email with instructions about how to activate your account in a few minutes.' : '' %>"
|
37
39
|
<% end -%>
|
38
40
|
else
|
41
|
+
<% if goma_config.modules.include?(:confirmable) &&
|
42
|
+
(auth_keys = goma_config.authentication_keys - [goma_config.email_attribute_name]).present? -%>
|
43
|
+
update_email or render :new
|
44
|
+
<% else -%>
|
39
45
|
render :new
|
46
|
+
<% end -%>
|
40
47
|
end
|
41
48
|
end
|
42
49
|
|
43
50
|
# PATCH/PUT <%= route_url %>/1
|
44
51
|
def update
|
52
|
+
<%= goma_config.not_authenticated_action %> unless current_user = @user
|
45
53
|
if @<%= orm_instance.update("#{singular_table_name}_params") %>
|
46
|
-
|
54
|
+
<% if goma_config.modules.include?(:confirmable) && goma_config.email_confirmation_enabled -%>
|
55
|
+
flash[:notice] = @<%= singular_table_name %>.<%= goma_config.confirmation_token_to_send_attribute_name %> ?
|
56
|
+
'You updated your account successfully, but we need to verify your new email address. Please check your email and click on the confirmation link to finalize confirming your new email address.' :
|
57
|
+
'You updated your account successfully'
|
58
|
+
redirect_to @<%= singular_table_name %>
|
59
|
+
<% else -%>
|
60
|
+
redirect_to @<%= singular_table_name %>, notice:'You updated your account successfully'
|
61
|
+
<% end -%>
|
47
62
|
else
|
48
63
|
render :edit
|
49
64
|
end
|
@@ -51,6 +66,7 @@ class <%= controller_class_name %>Controller < ApplicationController
|
|
51
66
|
|
52
67
|
# DELETE <%= route_url %>/1
|
53
68
|
def destroy
|
69
|
+
<%= goma_config.not_authenticated_action %> unless current_user = @user
|
54
70
|
@<%= orm_instance.destroy %>
|
55
71
|
redirect_to <%= index_helper %>_url, notice: <%= "'#{human_name} was successfully destroyed.'" %>
|
56
72
|
end
|
@@ -65,5 +81,29 @@ class <%= controller_class_name %>Controller < ApplicationController
|
|
65
81
|
def <%= "#{singular_table_name}_params" %>
|
66
82
|
params.require(:<%= singular_table_name %>).permit(<%= (resource_attributes + attributes_names).map { |name| ":#{name}" }.join(', ') %>)
|
67
83
|
end
|
84
|
+
<% if goma_config.modules.include?(:confirmable) && auth_keys.present? -%>
|
85
|
+
|
86
|
+
def update_email
|
87
|
+
<% if auth_keys.length == 1 -%>
|
88
|
+
@<%= singular_table_name %> = <%= class_name %>.find_by(<%= auth_keys.first %>: params[:<%= singular_table_name %>][:<%= auth_keys.first %>])
|
89
|
+
<% else -%>
|
90
|
+
[<%= auth_keys.map{|k| ":#{k}"}.join(', ') %>].each do |key|
|
91
|
+
break if @<%= singular_table_name %> = <%= class_name %>.find_by(key => params[:<%= singular_table_name %>][key])
|
92
|
+
end
|
93
|
+
<% end -%>
|
94
|
+
if @<%= singular_table_name %>.activated?
|
95
|
+
return false
|
96
|
+
end
|
97
|
+
|
98
|
+
if ( Time.now <= @<%= singular_table_name %>.<%= goma_config.confirmation_token_sent_at_attribute_name %> + <%= goma_config.activate_within %> ) &&
|
99
|
+
!@<%= singular_table_name %>.valid_password?(params[:<%= singular_table_name %>][:<%= goma_config.password_attribute_name %>])
|
100
|
+
flash[:alert] = 'This username was already registered. If you want to change your email address, please make sure you entered correct password.'
|
101
|
+
return false
|
102
|
+
end
|
103
|
+
|
104
|
+
@<%= singular_table_name %>.resend_activation_needed_email(to: params[:<%= singular_table_name %>][:<%= goma_config.email_attribute_name %>])
|
105
|
+
redirect_to <%= login_url %>
|
106
|
+
end
|
107
|
+
<% end -%>
|
68
108
|
end
|
69
109
|
<% end -%>
|