rodauth 0.9.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.
Files changed (40) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG +3 -0
  3. data/MIT-LICENSE +18 -0
  4. data/README.rdoc +484 -0
  5. data/Rakefile +91 -0
  6. data/lib/roda/plugins/rodauth.rb +265 -0
  7. data/lib/roda/plugins/rodauth/base.rb +428 -0
  8. data/lib/roda/plugins/rodauth/change_login.rb +48 -0
  9. data/lib/roda/plugins/rodauth/change_password.rb +42 -0
  10. data/lib/roda/plugins/rodauth/close_account.rb +42 -0
  11. data/lib/roda/plugins/rodauth/create_account.rb +92 -0
  12. data/lib/roda/plugins/rodauth/lockout.rb +292 -0
  13. data/lib/roda/plugins/rodauth/login.rb +77 -0
  14. data/lib/roda/plugins/rodauth/logout.rb +36 -0
  15. data/lib/roda/plugins/rodauth/remember.rb +226 -0
  16. data/lib/roda/plugins/rodauth/reset_password.rb +205 -0
  17. data/lib/roda/plugins/rodauth/verify_account.rb +228 -0
  18. data/spec/migrate/001_tables.rb +64 -0
  19. data/spec/migrate_password/001_tables.rb +38 -0
  20. data/spec/rodauth_spec.rb +1114 -0
  21. data/spec/views/layout.str +11 -0
  22. data/spec/views/login.str +21 -0
  23. data/templates/change-login.str +22 -0
  24. data/templates/change-password.str +21 -0
  25. data/templates/close-account.str +9 -0
  26. data/templates/confirm-password.str +16 -0
  27. data/templates/create-account.str +33 -0
  28. data/templates/login.str +25 -0
  29. data/templates/logout.str +9 -0
  30. data/templates/remember.str +28 -0
  31. data/templates/reset-password-email.str +5 -0
  32. data/templates/reset-password-request.str +7 -0
  33. data/templates/reset-password.str +23 -0
  34. data/templates/unlock-account-email.str +5 -0
  35. data/templates/unlock-account-request.str +11 -0
  36. data/templates/unlock-account.str +11 -0
  37. data/templates/verify-account-email.str +4 -0
  38. data/templates/verify-account-resend.str +7 -0
  39. data/templates/verify-account.str +11 -0
  40. metadata +227 -0
@@ -0,0 +1,11 @@
1
+ <!doctype html>
2
+ <html>
3
+ <head>
4
+ <title>#{@title}</title>
5
+ </head>
6
+ <body>
7
+ #{"<div id='error_flash'>#{flash[:error]}</div>" if flash[:error]}
8
+ #{"<div id='notice_flash'>#{flash[:notice]}</div>" if flash[:notice]}
9
+ #{yield}
10
+ </body>
11
+ </html>
@@ -0,0 +1,21 @@
1
+ <form method="post" class="form-horizontal" role="form" id="login-form">
2
+ #{csrf_tag if respond_to?(:csrf_tag)}
3
+ <input type="hidden" name="lp" value="#{request['lp']}"/>
4
+ <div class="form-group">
5
+ <label class="col-sm-2 control-label" for="login">Login</label>
6
+ <div class="col-sm-10">
7
+ <input type="text" class="form-control#{' error' if @login_error}" name="l" id="login"/> #{@login_error}
8
+ </div>
9
+ </div>
10
+ <div class="form-group">
11
+ <label class="col-sm-2 control-label" for="password">Password</label>
12
+ <div class="col-sm-10">
13
+ <input type="password" class="form-control#{' error' if @password_error}" name="p" id="password"/> #{@password_error}
14
+ </div>
15
+ </div>
16
+ <div class="form-group">
17
+ <div class="col-sm-offset-2 col-sm-10">
18
+ <input type="submit" class="btn btn-default" value="Login"/>
19
+ </div>
20
+ </div>
21
+ </form>
@@ -0,0 +1,22 @@
1
+ <form method="post" class="rodauth form-horizontal" role="form" id="change-login-form">
2
+ #{rodauth.change_login_additional_form_tags}
3
+ #{csrf_tag if respond_to?(:csrf_tag)}
4
+ <div class="form-group">
5
+ <label class="col-sm-2 control-label" for="login">#{rodauth.login_label}</label>
6
+ <div class="col-sm-10">
7
+ <input type="text" class="form-control#{' error' if @login_error}" name="#{rodauth.login_param}" id="login" value="#{h request[rodauth.login_param]}"/> #{@login_error}
8
+ </div>
9
+ </div>
10
+ <div class="form-group">
11
+ <label class="col-sm-2 control-label" for="login-confirm">#{rodauth.login_confirm_label}</label>
12
+ <div class="col-sm-10">
13
+ <input type="text" class="form-control" name="#{rodauth.login_confirm_param}" id="login-confirm" value="#{h request[rodauth.login_confirm_param]}"/>
14
+ </div>
15
+ </div>
16
+ <div class="form-group">
17
+ <div class="col-sm-offset-2 col-sm-10">
18
+ <input type="submit" class="btn btn-primary" value="#{rodauth.change_login_button}"/>
19
+ </div>
20
+ </div>
21
+ </form>
22
+
@@ -0,0 +1,21 @@
1
+ <form method="post" class="rodauth form-horizontal" role="form" id="change-password-form">
2
+ #{rodauth.change_password_additional_form_tags}
3
+ #{csrf_tag if respond_to?(:csrf_tag)}
4
+ <div class="form-group">
5
+ <label class="col-sm-2 control-label" for="password">#{rodauth.password_label}</label>
6
+ <div class="col-sm-10">
7
+ <input type="password" class="form-control#{' error' if @password_error}" name="#{rodauth.password_param}" id="password"/> #{@password_error}
8
+ </div>
9
+ </div>
10
+ <div class="form-group">
11
+ <label class="col-sm-2 control-label" for="password-confirm">#{rodauth.password_confirm_label}</label>
12
+ <div class="col-sm-10">
13
+ <input type="password" class="form-control" name="#{rodauth.password_confirm_param}" id="password-confirm"/>
14
+ </div>
15
+ </div>
16
+ <div class="form-group">
17
+ <div class="col-sm-offset-2 col-sm-10">
18
+ <input type="submit" class="btn btn-primary" value="#{rodauth.change_password_button}"/>
19
+ </div>
20
+ </div>
21
+ </form>
@@ -0,0 +1,9 @@
1
+ <form method="post" class="rodauth form-horizontal" role="form" id="close-account-form">
2
+ #{rodauth.close_account_additional_form_tags}
3
+ #{csrf_tag if respond_to?(:csrf_tag)}
4
+ <div class="form-group">
5
+ <div class="col-sm-offset-2 col-sm-10">
6
+ <input type="submit" class="btn btn-warning" value="#{rodauth.close_account_button}"/>
7
+ </div>
8
+ </div>
9
+ </form>
@@ -0,0 +1,16 @@
1
+ <form method="post" class="rodauth form-horizontal" role="form" id="confirm-password-form">
2
+ #{rodauth.remember_confirm_additional_form_tags}
3
+ #{csrf_tag if respond_to?(:csrf_tag)}
4
+ <input type="hidden" name="confirm" value="t" />
5
+ <div class="form-group">
6
+ <label class="col-sm-2 control-label" for="password">#{rodauth.password_label}</label>
7
+ <div class="col-sm-10">
8
+ <input type="password" class="form-control#{' error' if @password_error}" name="#{rodauth.password_param}" id="password"/> #{@password_error}
9
+ </div>
10
+ </div>
11
+ <div class="form-group">
12
+ <div class="col-sm-offset-2 col-sm-10">
13
+ <input type="submit" class="btn btn-primary" value="#{rodauth.remember_confirm_button}"/>
14
+ </div>
15
+ </div>
16
+ </form>
@@ -0,0 +1,33 @@
1
+ <form method="post" class="rodauth form-horizontal" role="form" id="create-account-form">
2
+ #{rodauth.create_account_additional_form_tags}
3
+ #{csrf_tag if respond_to?(:csrf_tag)}
4
+ <div class="form-group">
5
+ <label class="col-sm-2 control-label" for="login">#{rodauth.login_label}</label>
6
+ <div class="col-sm-10">
7
+ <input type="text" class="form-control#{' error' if @login_error}" name="#{rodauth.login_param}" id="login" value="#{h request[rodauth.login_param]}"/> #{@login_error}
8
+ </div>
9
+ </div>
10
+ <div class="form-group">
11
+ <label class="col-sm-2 control-label" for="login-confirm">#{rodauth.login_confirm_label}</label>
12
+ <div class="col-sm-10">
13
+ <input type="text" class="form-control" name="login-confirm" id="#{rodauth.login_confirm_param}" value="#{h request[rodauth.login_confirm_param]}"/>
14
+ </div>
15
+ </div>
16
+ <div class="form-group">
17
+ <label class="col-sm-2 control-label" for="password">#{rodauth.password_label}</label>
18
+ <div class="col-sm-10">
19
+ <input type="password" class="form-control#{' error' if @password_error}" name="#{rodauth.password_param}" id="password"/> #{@password_error}
20
+ </div>
21
+ </div>
22
+ <div class="form-group">
23
+ <label class="col-sm-2 control-label" for="password-confirm">#{rodauth.password_confirm_label}</label>
24
+ <div class="col-sm-10">
25
+ <input type="password" class="form-control" name="#{rodauth.password_confirm_param}" id="password-confirm"/>
26
+ </div>
27
+ </div>
28
+ <div class="form-group">
29
+ <div class="col-sm-offset-2 col-sm-10">
30
+ <input type="submit" class="btn btn-primary" value="#{rodauth.create_account_button}"/>
31
+ </div>
32
+ </div>
33
+ </form>
@@ -0,0 +1,25 @@
1
+ #{@login_form_header}
2
+
3
+ <form method="post" class="rodauth form-horizontal" role="form" id="login-form">
4
+ #{rodauth.login_additional_form_tags}
5
+ #{csrf_tag if respond_to?(:csrf_tag)}
6
+ <div class="form-group">
7
+ <label class="col-sm-2 control-label" for="login">#{rodauth.login_label}</label>
8
+ <div class="col-sm-10">
9
+ <input type="text" class="form-control#{' error' if @login_error}" name="#{rodauth.login_param}" id="login" value="#{h request[rodauth.login_param]}"/> #{@login_error}
10
+ </div>
11
+ </div>
12
+ <div class="form-group">
13
+ <label class="col-sm-2 control-label" for="password">#{rodauth.password_label}</label>
14
+ <div class="col-sm-10">
15
+ <input type="password" class="form-control#{' error' if @password_error}" name="#{rodauth.password_param}" id="password"/> #{@password_error}
16
+ </div>
17
+ </div>
18
+ <div class="form-group">
19
+ <div class="col-sm-offset-2 col-sm-10">
20
+ <input type="submit" class="btn btn-primary" value="#{rodauth.login_button}"/>
21
+ </div>
22
+ </div>
23
+ </form>
24
+
25
+ #{rodauth.login_form_footer}
@@ -0,0 +1,9 @@
1
+ <form method="post" class="rodauth form-horizontal" role="form" id="logout-form">
2
+ #{rodauth.logout_additional_form_tags}
3
+ #{csrf_tag if respond_to?(:csrf_tag)}
4
+ <div class="form-group">
5
+ <div class="col-sm-offset-2 col-sm-10">
6
+ <input type="submit" class="btn btn-warning" value="#{rodauth.logout_button}"/>
7
+ </div>
8
+ </div>
9
+ </form>
@@ -0,0 +1,28 @@
1
+ <form method="post" class="rodauth form-horizontal" role="form" id="remember-form">
2
+ #{rodauth.remember_additional_form_tags}
3
+ #{csrf_tag if respond_to?(:csrf_tag)}
4
+ <div class="radio">
5
+ <label>
6
+ <input type="radio" name="remember" id="remember_remember" value="remember"/>
7
+ Remember Me
8
+ </label>
9
+ </div>
10
+ <div class="radio">
11
+ <label>
12
+ <input type="radio" name="remember" id="remember_forget" value="forget"/>
13
+ Forget Me
14
+ </label>
15
+ </div>
16
+ <div class="radio">
17
+ <label>
18
+ <input type="radio" name="remember" id="remember_disable" value="disable"/>
19
+ Disable Remember Me
20
+ </label>
21
+ </div>
22
+ <div class="form-group">
23
+ <div class="col-sm-offset-2 col-sm-10">
24
+ <input type="submit" class="btn btn-primary" value="#{rodauth.remember_button}"/>
25
+ </div>
26
+ </div>
27
+ </form>
28
+
@@ -0,0 +1,5 @@
1
+ Someone has requested a password reset for the account with this email
2
+ address. If you did not request a password reset, please ignore this
3
+ message. If you requested a password reset, please go to
4
+ #{rodauth.reset_password_email_link}
5
+ to reset the password for the account.
@@ -0,0 +1,7 @@
1
+ <form action="#{rodauth.prefix}/#{rodauth.reset_password_route}" method="post" class="rodauth form-horizontal" role="form" id="reset-password-request-form">
2
+ #{rodauth.reset_password_request_additional_form_tags}
3
+ <input type="hidden" name="#{rodauth.login_param}" value="#{h request[rodauth.login_param]}"/>
4
+ #{csrf_tag if respond_to?(:csrf_tag)}
5
+ If you have forgotten your password, you can request a password reset:
6
+ <input type="submit" class="btn btn-primary inline" value="#{rodauth.reset_password_request_button}"/>
7
+ </form>
@@ -0,0 +1,23 @@
1
+ <form method="post" class="rodauth form-horizontal" role="form" id="reset-password-form">
2
+ #{rodauth.reset_password_additional_form_tags}
3
+ <input type="hidden" name="#{rodauth.reset_password_key_param}" value="#{h request[rodauth.reset_password_key_param]}" />
4
+ #{csrf_tag if respond_to?(:csrf_tag)}
5
+ <div class="form-group">
6
+ <label class="col-sm-2 control-label" for="password">#{rodauth.password_label}</label>
7
+ <div class="col-sm-10">
8
+ <input type="password" class="form-control#{' error' if @password_error}" name="#{rodauth.password_param}" id="password"/> #{@password_error}
9
+ </div>
10
+ </div>
11
+ <div class="form-group">
12
+ <label class="col-sm-2 control-label" for="password-confirm">#{rodauth.password_confirm_label}</label>
13
+ <div class="col-sm-10">
14
+ <input type="password" class="form-control" name="#{rodauth.password_confirm_param}" id="password-confirm"/>
15
+ </div>
16
+ </div>
17
+ <div class="form-group">
18
+ <div class="col-sm-offset-2 col-sm-10">
19
+ <input type="submit" class="btn btn-primary" value="#{rodauth.reset_password_button}"/>
20
+ </div>
21
+ </div>
22
+ </form>
23
+
@@ -0,0 +1,5 @@
1
+ Someone has requested a that the account with this email be unlocked.
2
+ If you did not request the unlocking of this account, please ignore this
3
+ message. If you requested the unlocking of this account, please go to
4
+ #{rodauth.unlock_account_email_link}
5
+ to unlock this account.
@@ -0,0 +1,11 @@
1
+ <form action="#{rodauth.prefix}/#{rodauth.unlock_account_route}" method="post" class="rodauth form-horizontal" role="form" id="unlock-account-request-form">
2
+ #{rodauth.unlock_account_request_additional_form_tags}
3
+ #{csrf_tag if respond_to?(:csrf_tag)}
4
+ <input type="hidden" name="#{rodauth.login_param}" value="#{h request[rodauth.login_param]}"/>
5
+ This account is currently locked out. You can request that the account be unlocked:
6
+ <div class="form-group">
7
+ <div class="col-sm-offset-2 col-sm-10">
8
+ <input type="submit" class="btn btn-warning" value="#{rodauth.unlock_account_request_button}"/>
9
+ </div>
10
+ </div>
11
+ </form>
@@ -0,0 +1,11 @@
1
+ <form method="post" class="rodauth form-horizontal" role="form" id="unlock-account-form">
2
+ #{rodauth.unlock_account_additional_form_tags}
3
+ #{csrf_tag if respond_to?(:csrf_tag)}
4
+ <input type="hidden" name="#{rodauth.unlock_account_key_param}" value="#{h request[rodauth.unlock_account_key_param]}"/>
5
+ This account is currently locked out. You can unlock the account:
6
+ <div class="form-group">
7
+ <div class="col-sm-offset-2 col-sm-10">
8
+ <input type="submit" class="btn btn-warning" value="#{rodauth.unlock_account_button}"/>
9
+ </div>
10
+ </div>
11
+ </form>
@@ -0,0 +1,4 @@
1
+ Someone has created an account with this email address. If you did not create
2
+ this account, please ignore this message. If you created this account, please go to
3
+ #{rodauth.verify_account_email_link}
4
+ to verify the account.
@@ -0,0 +1,7 @@
1
+ <form action="#{rodauth.prefix}/#{rodauth.verify_account_route}" method="post" class="rodauth form-horizontal" role="form" id="verify-account-resend-form">
2
+ #{rodauth.verify_account_resend_additional_form_tags}
3
+ <input type="hidden" name="#{rodauth.login_param}" value="#{h request[rodauth.login_param]}"/>
4
+ #{csrf_tag if respond_to?(:csrf_tag)}
5
+ If you no longer have the email to verify the account, you can request that it be resent to you:
6
+ <input type="submit" class="btn btn-primary inline" value="#{rodauth.verify_account_resend_button}"/>
7
+ </form>
@@ -0,0 +1,11 @@
1
+ <form method="post" class="rodauth form-horizontal" role="form" id="verify-account-form">
2
+ #{rodauth.verify_account_additional_form_tags}
3
+ <input type="hidden" name="#{rodauth.verify_account_key_param}" value="#{h request[rodauth.verify_account_key_param]}" />
4
+ #{csrf_tag if respond_to?(:csrf_tag)}
5
+ <div class="form-group">
6
+ <div class="col-sm-offset-2 col-sm-10">
7
+ <input type="submit" class="btn btn-warning" value="#{rodauth.verify_account_button}"/>
8
+ </div>
9
+ </div>
10
+ </form>
11
+
metadata ADDED
@@ -0,0 +1,227 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rodauth
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.9.0
5
+ platform: ruby
6
+ authors:
7
+ - Jeremy Evans
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-08-12 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: sequel
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '4'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '4'
27
+ - !ruby/object:Gem::Dependency
28
+ name: roda
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '2'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '2'
41
+ - !ruby/object:Gem::Dependency
42
+ name: tilt
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rack_csrf
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: bcrypt
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: mail
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: minitest
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: 5.0.0
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: 5.0.0
111
+ - !ruby/object:Gem::Dependency
112
+ name: minitest-hooks
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: 1.1.0
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: 1.1.0
125
+ - !ruby/object:Gem::Dependency
126
+ name: capybara
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: 2.1.0
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: 2.1.0
139
+ description: |
140
+ Rodauth is an authentication framework using Roda, Sequel, and PostgreSQL.
141
+ It aims to provide strong security for password storage by utilizing
142
+ separate PostgreSQL database accounts. Configuration is done via
143
+ a DSL that makes it easy to override any part of the authentication
144
+ process.
145
+
146
+ Rodauth currently supports the following authentication-related
147
+ features: login, logout, change password, change login, reset
148
+ password, create account, close account, verify account, remember,
149
+ and lockout.
150
+ email: code@jeremyevans.net
151
+ executables: []
152
+ extensions: []
153
+ extra_rdoc_files:
154
+ - README.rdoc
155
+ - CHANGELOG
156
+ - MIT-LICENSE
157
+ files:
158
+ - CHANGELOG
159
+ - MIT-LICENSE
160
+ - README.rdoc
161
+ - Rakefile
162
+ - lib/roda/plugins/rodauth.rb
163
+ - lib/roda/plugins/rodauth/base.rb
164
+ - lib/roda/plugins/rodauth/change_login.rb
165
+ - lib/roda/plugins/rodauth/change_password.rb
166
+ - lib/roda/plugins/rodauth/close_account.rb
167
+ - lib/roda/plugins/rodauth/create_account.rb
168
+ - lib/roda/plugins/rodauth/lockout.rb
169
+ - lib/roda/plugins/rodauth/login.rb
170
+ - lib/roda/plugins/rodauth/logout.rb
171
+ - lib/roda/plugins/rodauth/remember.rb
172
+ - lib/roda/plugins/rodauth/reset_password.rb
173
+ - lib/roda/plugins/rodauth/verify_account.rb
174
+ - spec/migrate/001_tables.rb
175
+ - spec/migrate_password/001_tables.rb
176
+ - spec/rodauth_spec.rb
177
+ - spec/views/layout.str
178
+ - spec/views/login.str
179
+ - templates/change-login.str
180
+ - templates/change-password.str
181
+ - templates/close-account.str
182
+ - templates/confirm-password.str
183
+ - templates/create-account.str
184
+ - templates/login.str
185
+ - templates/logout.str
186
+ - templates/remember.str
187
+ - templates/reset-password-email.str
188
+ - templates/reset-password-request.str
189
+ - templates/reset-password.str
190
+ - templates/unlock-account-email.str
191
+ - templates/unlock-account-request.str
192
+ - templates/unlock-account.str
193
+ - templates/verify-account-email.str
194
+ - templates/verify-account-resend.str
195
+ - templates/verify-account.str
196
+ homepage: https://github.com/jeremyevans/rodauth
197
+ licenses:
198
+ - MIT
199
+ metadata: {}
200
+ post_install_message:
201
+ rdoc_options:
202
+ - "--quiet"
203
+ - "--line-numbers"
204
+ - "--inline-source"
205
+ - "--title"
206
+ - 'Rodauth: Authentication Framework for Roda/Sequel/PostgreSQL'
207
+ - "--main"
208
+ - README.rdoc
209
+ require_paths:
210
+ - lib
211
+ required_ruby_version: !ruby/object:Gem::Requirement
212
+ requirements:
213
+ - - ">="
214
+ - !ruby/object:Gem::Version
215
+ version: '0'
216
+ required_rubygems_version: !ruby/object:Gem::Requirement
217
+ requirements:
218
+ - - ">="
219
+ - !ruby/object:Gem::Version
220
+ version: '0'
221
+ requirements: []
222
+ rubyforge_project:
223
+ rubygems_version: 2.4.5
224
+ signing_key:
225
+ specification_version: 4
226
+ summary: Authentication Framework for Roda/Sequel/PostgreSQL
227
+ test_files: []