rodauth 0.10.0 → 1.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.
Files changed (137) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +146 -0
  3. data/README.rdoc +644 -220
  4. data/Rakefile +99 -11
  5. data/doc/account_expiration.rdoc +55 -0
  6. data/doc/base.rdoc +104 -0
  7. data/doc/change_login.rdoc +29 -0
  8. data/doc/change_password.rdoc +26 -0
  9. data/doc/close_account.rdoc +31 -0
  10. data/doc/confirm_password.rdoc +22 -0
  11. data/doc/create_account.rdoc +34 -0
  12. data/doc/disallow_password_reuse.rdoc +37 -0
  13. data/doc/email_base.rdoc +19 -0
  14. data/doc/jwt.rdoc +35 -0
  15. data/doc/lockout.rdoc +83 -0
  16. data/doc/login.rdoc +27 -0
  17. data/doc/login_password_requirements_base.rdoc +50 -0
  18. data/doc/logout.rdoc +21 -0
  19. data/doc/otp.rdoc +100 -0
  20. data/doc/password_complexity.rdoc +50 -0
  21. data/doc/password_expiration.rdoc +52 -0
  22. data/doc/password_grace_period.rdoc +10 -0
  23. data/doc/recovery_codes.rdoc +60 -0
  24. data/doc/release_notes/1.0.0.txt +443 -0
  25. data/doc/remember.rdoc +82 -0
  26. data/doc/reset_password.rdoc +70 -0
  27. data/doc/session_expiration.rdoc +27 -0
  28. data/doc/single_session.rdoc +43 -0
  29. data/doc/sms_codes.rdoc +119 -0
  30. data/doc/two_factor_base.rdoc +27 -0
  31. data/doc/verify_account.rdoc +70 -0
  32. data/doc/verify_account_grace_period.rdoc +15 -0
  33. data/doc/verify_change_login.rdoc +9 -0
  34. data/lib/roda/plugins/rodauth.rb +3 -262
  35. data/lib/rodauth.rb +260 -0
  36. data/lib/rodauth/features/account_expiration.rb +108 -0
  37. data/lib/rodauth/features/base.rb +479 -0
  38. data/lib/rodauth/features/change_login.rb +77 -0
  39. data/lib/rodauth/features/change_password.rb +66 -0
  40. data/lib/rodauth/features/close_account.rb +82 -0
  41. data/lib/rodauth/features/confirm_password.rb +51 -0
  42. data/lib/rodauth/features/create_account.rb +128 -0
  43. data/lib/rodauth/features/disallow_password_reuse.rb +82 -0
  44. data/lib/rodauth/features/email_base.rb +63 -0
  45. data/lib/rodauth/features/jwt.rb +151 -0
  46. data/lib/rodauth/features/lockout.rb +262 -0
  47. data/lib/rodauth/features/login.rb +61 -0
  48. data/lib/rodauth/features/login_password_requirements_base.rb +123 -0
  49. data/lib/rodauth/features/logout.rb +37 -0
  50. data/lib/rodauth/features/otp.rb +338 -0
  51. data/lib/rodauth/features/password_complexity.rb +89 -0
  52. data/lib/rodauth/features/password_expiration.rb +111 -0
  53. data/lib/rodauth/features/password_grace_period.rb +46 -0
  54. data/lib/rodauth/features/recovery_codes.rb +240 -0
  55. data/lib/rodauth/features/remember.rb +200 -0
  56. data/lib/rodauth/features/reset_password.rb +207 -0
  57. data/lib/rodauth/features/session_expiration.rb +55 -0
  58. data/lib/rodauth/features/single_session.rb +87 -0
  59. data/lib/rodauth/features/sms_codes.rb +498 -0
  60. data/lib/rodauth/features/two_factor_base.rb +135 -0
  61. data/lib/rodauth/features/verify_account.rb +232 -0
  62. data/lib/rodauth/features/verify_account_grace_period.rb +76 -0
  63. data/lib/rodauth/features/verify_change_login.rb +20 -0
  64. data/lib/rodauth/migrations.rb +130 -0
  65. data/lib/rodauth/version.rb +9 -0
  66. data/spec/account_expiration_spec.rb +90 -0
  67. data/spec/all.rb +1 -0
  68. data/spec/change_login_spec.rb +149 -0
  69. data/spec/change_password_spec.rb +177 -0
  70. data/spec/close_account_spec.rb +162 -0
  71. data/spec/confirm_password_spec.rb +70 -0
  72. data/spec/create_account_spec.rb +127 -0
  73. data/spec/disallow_password_reuse_spec.rb +84 -0
  74. data/spec/lockout_spec.rb +228 -0
  75. data/spec/login_spec.rb +188 -0
  76. data/spec/migrate/001_tables.rb +103 -16
  77. data/spec/migrate/002_account_password_hash_column.rb +11 -0
  78. data/spec/migrate_password/001_tables.rb +60 -42
  79. data/spec/migrate_travis/001_tables.rb +116 -0
  80. data/spec/password_complexity_spec.rb +108 -0
  81. data/spec/password_expiration_spec.rb +243 -0
  82. data/spec/password_grace_period_spec.rb +93 -0
  83. data/spec/remember_spec.rb +424 -0
  84. data/spec/reset_password_spec.rb +185 -0
  85. data/spec/rodauth_spec.rb +57 -980
  86. data/spec/session_expiration_spec.rb +58 -0
  87. data/spec/single_session_spec.rb +107 -0
  88. data/spec/spec_helper.rb +202 -0
  89. data/spec/two_factor_spec.rb +1310 -0
  90. data/spec/verify_account_grace_period_spec.rb +135 -0
  91. data/spec/verify_account_spec.rb +142 -0
  92. data/spec/verify_change_login_spec.rb +46 -0
  93. data/spec/views/login.str +2 -2
  94. data/templates/add-recovery-codes.str +2 -0
  95. data/templates/button.str +5 -0
  96. data/templates/change-login.str +5 -18
  97. data/templates/change-password.str +6 -14
  98. data/templates/close-account.str +3 -6
  99. data/templates/confirm-password.str +4 -14
  100. data/templates/create-account.str +6 -30
  101. data/templates/login-confirm-field.str +6 -0
  102. data/templates/login-field.str +6 -0
  103. data/templates/login.str +5 -19
  104. data/templates/logout.str +2 -6
  105. data/templates/otp-auth-code-field.str +6 -0
  106. data/templates/otp-auth.str +8 -0
  107. data/templates/otp-disable.str +6 -0
  108. data/templates/otp-setup.str +21 -0
  109. data/templates/password-confirm-field.str +6 -0
  110. data/templates/password-field.str +6 -0
  111. data/templates/recovery-auth.str +12 -0
  112. data/templates/recovery-codes.str +6 -0
  113. data/templates/remember.str +8 -12
  114. data/templates/reset-password-request.str +2 -2
  115. data/templates/reset-password.str +4 -18
  116. data/templates/sms-auth.str +6 -0
  117. data/templates/sms-code-field.str +6 -0
  118. data/templates/sms-confirm.str +7 -0
  119. data/templates/sms-disable.str +7 -0
  120. data/templates/sms-request.str +5 -0
  121. data/templates/sms-setup.str +12 -0
  122. data/templates/unlock-account-request.str +3 -7
  123. data/templates/unlock-account.str +4 -7
  124. data/templates/verify-account-resend.str +2 -2
  125. data/templates/verify-account.str +2 -6
  126. metadata +191 -29
  127. data/lib/roda/plugins/rodauth/base.rb +0 -428
  128. data/lib/roda/plugins/rodauth/change_login.rb +0 -48
  129. data/lib/roda/plugins/rodauth/change_password.rb +0 -42
  130. data/lib/roda/plugins/rodauth/close_account.rb +0 -42
  131. data/lib/roda/plugins/rodauth/create_account.rb +0 -92
  132. data/lib/roda/plugins/rodauth/lockout.rb +0 -292
  133. data/lib/roda/plugins/rodauth/login.rb +0 -81
  134. data/lib/roda/plugins/rodauth/logout.rb +0 -36
  135. data/lib/roda/plugins/rodauth/remember.rb +0 -226
  136. data/lib/roda/plugins/rodauth/reset_password.rb +0 -205
  137. data/lib/roda/plugins/rodauth/verify_account.rb +0 -228
data/Rakefile CHANGED
@@ -1,7 +1,7 @@
1
1
  require "rake"
2
2
  require "rake/clean"
3
3
 
4
- CLEAN.include ["rodauth-*.gem", "rdoc", "coverage"]
4
+ CLEAN.include ["rodauth-*.gem", "rdoc", "coverage", "www/public/rdoc", "www/public/*.html"]
5
5
 
6
6
  # Packaging
7
7
 
@@ -12,7 +12,7 @@ end
12
12
 
13
13
  ### RDoc
14
14
 
15
- RDOC_DEFAULT_OPTS = ["--line-numbers", "--inline-source", '--title', 'Rodauth: Authentication framework using Roda, Sequel, and PostgreSQL']
15
+ RDOC_DEFAULT_OPTS = ["--line-numbers", "--inline-source", '--title', 'Rodauth: Authentication and Account Management Framework for Rack Applications']
16
16
 
17
17
  begin
18
18
  gem 'hanna-nouveau'
@@ -44,11 +44,11 @@ task :default=>:spec
44
44
 
45
45
  spec = proc do |env|
46
46
  env.each{|k,v| ENV[k] = v}
47
- sh "#{FileUtils::RUBY} spec/rodauth_spec.rb"
47
+ sh "#{FileUtils::RUBY} spec/all.rb"
48
48
  env.each{|k,v| ENV.delete(k)}
49
49
  end
50
50
 
51
- desc "Run specs"
51
+ desc "Run specs on PostgreSQL"
52
52
  task "spec" do
53
53
  spec.call({})
54
54
  end
@@ -66,12 +66,13 @@ task "spec_w" do
66
66
  sh %{#{rake} 2>&1 | egrep -v \": warning: instance variable @.* not initialized|: warning: method redefined; discarding old|: warning: previous definition of|: warning: statement not reached"}
67
67
  end
68
68
 
69
- desc "Setup database used for testing"
70
- task :db_setup do
71
- sh 'echo "CREATE USER rodauth_test PASSWORD \'rodauth_test\'" | psql -U postgres'
72
- sh 'echo "CREATE USER rodauth_test_password PASSWORD \'rodauth_test\'" | psql -U postgres'
69
+ desc "Setup database used for testing on PostgreSQL"
70
+ task :db_setup_postgres do
71
+ sh 'psql -U postgres -c "CREATE USER rodauth_test PASSWORD \'rodauth_test\'"'
72
+ sh 'psql -U postgres -c "CREATE USER rodauth_test_password PASSWORD \'rodauth_test\'"'
73
73
  sh 'createdb -U postgres -O rodauth_test rodauth_test'
74
- sh 'echo "CREATE EXTENSION citext" | psql -U postgres rodauth_test'
74
+ sh 'psql -U postgres -c "CREATE EXTENSION citext" rodauth_test'
75
+ $: << 'lib'
75
76
  require 'sequel'
76
77
  Sequel.extension :migration
77
78
  Sequel.postgres(:user=>'rodauth_test', :password=>'rodauth_test') do |db|
@@ -82,9 +83,96 @@ task :db_setup do
82
83
  end
83
84
  end
84
85
 
85
- desc "Teardown database used for testing"
86
- task :db_teardown do
86
+ desc "Teardown database used for testing on MySQL"
87
+ task :db_teardown_postgres do
87
88
  sh 'dropdb -U postgres rodauth_test'
88
89
  sh 'dropuser -U postgres rodauth_test_password'
89
90
  sh 'dropuser -U postgres rodauth_test'
90
91
  end
92
+
93
+ desc "Setup database used for testing on MySQL"
94
+ task :db_setup_mysql do
95
+ sh 'mysql --user=root -p mysql < spec/sql/mysql_setup.sql'
96
+ $: << 'lib'
97
+ require 'sequel'
98
+ Sequel.extension :migration
99
+ Sequel.mysql2('rodauth_test', :user=>'rodauth_test_password', :password=>'rodauth_test') do |db|
100
+ Sequel::Migrator.run(db, 'spec/migrate')
101
+ end
102
+ Sequel.mysql2('rodauth_test', :user=>'rodauth_test_password', :password=>'rodauth_test') do |db|
103
+ Sequel::Migrator.run(db, 'spec/migrate_password', :table=>'schema_info_password')
104
+ end
105
+ end
106
+
107
+ desc "Teardown database used for testing on MySQL"
108
+ task :db_teardown_mysql do
109
+ sh 'mysql --user=root -p mysql < spec/sql/mysql_teardown.sql'
110
+ end
111
+
112
+ desc "Setup database used for testing on Microsoft SQL Server"
113
+ task :db_setup_mssql do
114
+ sh 'sqlcmd -E -e -b -r1 -i spec\\sql\\mssql_setup.sql'
115
+ $: << 'lib'
116
+ require 'sequel'
117
+ Sequel.extension :migration
118
+ Sequel.tinytds('rodauth_test', :user=>'rodauth_test_password', :password=>'rodauth_test') do |db|
119
+ Sequel::Migrator.run(db, 'spec/migrate')
120
+ end
121
+ Sequel.tinytds('rodauth_test', :user=>'rodauth_test_password', :password=>'rodauth_test') do |db|
122
+ Sequel::Migrator.run(db, 'spec/migrate_password', :table=>'schema_info_password')
123
+ end
124
+ end
125
+
126
+ desc "Teardown database used for testing on Microsoft SQL Server"
127
+ task :db_teardown_mssql do
128
+ sh 'sqlcmd -E -e -b -r1 -i spec\\sql\\mssql_teardown.sql'
129
+ end
130
+
131
+ desc "Run specs on MySQL"
132
+ task :spec_mysql do
133
+ spec.call('RODAUTH_SPEC_DB'=>'mysql2://rodauth_test:rodauth_test@localhost/rodauth_test')
134
+ end
135
+
136
+ task :spec_travis do
137
+ if defined?(RUBY_ENGINE) && RUBY_ENGINE == 'jruby'
138
+ pg_db = 'jdbc:postgresql://localhost/rodauth_test?user=postgres'
139
+ my_db = "jdbc:mysql://localhost/rodauth_test?user=root"
140
+ else
141
+ pg_db = 'postgres:///rodauth_test?user=postgres'
142
+ my_db = "mysql2://localhost/rodauth_test?user=root"
143
+ end
144
+ sh 'psql -U postgres -c "CREATE EXTENSION citext" rodauth_test'
145
+ spec.call('RODAUTH_SPEC_MIGRATE'=>'1', 'RODAUTH_SPEC_DB'=>pg_db)
146
+ spec.call('RODAUTH_SPEC_MIGRATE'=>'1', 'RODAUTH_SPEC_DB'=>my_db)
147
+ end
148
+
149
+ desc "Run specs on SQLite"
150
+ task :spec_sqlite do
151
+ spec_db = if defined?(RUBY_ENGINE) && RUBY_ENGINE == 'jruby'
152
+ 'jdbc:sqlite::memory:'
153
+ else
154
+ 'sqlite:/'
155
+ end
156
+ spec.call('RODAUTH_SPEC_MIGRATE'=>'1', 'RODAUTH_SPEC_DB'=>spec_db)
157
+ end
158
+
159
+ ### Website
160
+
161
+ rdoc_task_class.new(:website_rdoc) do |rdoc|
162
+ rdoc.rdoc_dir = "www/public/rdoc"
163
+ rdoc.options += RDOC_OPTS
164
+ rdoc.rdoc_files.add RDOC_FILES
165
+ end
166
+
167
+ desc "Make local version of website"
168
+ task :website_base do
169
+ sh %{#{FileUtils::RUBY} -I lib www/make_www.rb}
170
+ end
171
+
172
+ desc "Make local version of website, with rdoc"
173
+ task :website => [:website_base, :website_rdoc]
174
+
175
+ desc "Serve local version of website via rackup"
176
+ task :serve => :website do
177
+ sh %{#{FileUtils::RUBY} -C www -S rackup}
178
+ end
@@ -0,0 +1,55 @@
1
+ = Documentation for Account Expiration Feature
2
+
3
+ The account expiration feature disallows access to accounts after
4
+ a configurable amount of time since the last login or activity
5
+ (default: 180 days since last login). By default, this feature
6
+ does not track activity times as that can slow things down, but if
7
+ you want to record activity times, you can do so by adding the
8
+ following code to your routing block:
9
+
10
+ rodauth.update_last_activity
11
+
12
+ Note that it only makes sense to do this if you are also expiring
13
+ accounts based on last activity instead of last login, via the
14
+ +expire_account_on_last_activity?+ configuration setting.
15
+
16
+ Note that this feature does not support the reenabling of expired
17
+ accounts, that is something you would have to implement yourself,
18
+ if you need such a feature.
19
+
20
+ == Auth Value Methods
21
+
22
+ account_activity_expired_column :: The column in the +account_activity_table+
23
+ storing the expiration timestamp.
24
+ account_activity_id_column :: The column in the +account_activity_table+
25
+ storing the account id.
26
+ account_activity_last_activity_column :: The column in the +account_activity_table+
27
+ storing the last activity timestamp.
28
+ account_activity_last_login_column :: The column in the +account_activity_table+
29
+ storing the last login timestamp.
30
+ account_activity_table :: The database table use for storing account
31
+ login/activity/expiration timestamps.
32
+ account_expiration_error_flash :: The flash error to show when attempting to
33
+ login to an account that has expired.
34
+ account_expiration_redirect :: Where to redirect after attempting to login to
35
+ an account that has expired.
36
+ expire_account_after :: How long in seconds from last login or activity until
37
+ an account is considered expired.
38
+ expire_account_on_last_activity? :: Whether to use the last activity timestamp
39
+ when checking an account for expiration.
40
+ By default, this is false and it uses the
41
+ last login timestamp.
42
+
43
+ == Auth Methods
44
+
45
+ account_expired? :: Whether the current account has expired.
46
+ account_expired_at :: The expiration timestamp for the current account, nil if the
47
+ account hasn't been expired.
48
+ after_account_expiration :: Run arbitrary code after account expiration.
49
+ last_account_activity_at :: The last activity timestamp for the current account, nil if
50
+ the account hasn't had activity recorded yet.
51
+ last_account_login_at :: The last login timestamp for the current account, nil if
52
+ the account hasn't had a login recorded yet.
53
+ set_expired :: Set the current account as having expired.
54
+ update_last_activity :: Update the last activity timestamp for the account.
55
+ update_last_login :: Update the last login timestamp for the account.
@@ -0,0 +1,104 @@
1
+ = Documentation for Base Feature
2
+
3
+ The base feature is automatically loaded when you use Rodauth. It contains
4
+ shared functionality that is used by multiple features.
5
+
6
+ == Auth Value Methods
7
+
8
+ === Most Commonly Used
9
+
10
+ accounts_table :: The database table containing the accounts.
11
+ account_password_hash_column :: Set if the password hash column is in the same
12
+ table as the login. If this is set, Rodauth
13
+ will check the password hash in ruby. This is
14
+ often used if you are replacing a legacy
15
+ authentication system with Rodauth.
16
+ db :: The Sequel::Database object used for database access.
17
+ prefix :: The routing prefix used for Rodauth routes. If you are calling
18
+ in a routing subtree, this should be set to the root path of the
19
+ subtree.
20
+ require_bcrypt? :: Set to false to not require bcrypt, useful if using custom
21
+ authentication.
22
+ session_key :: The key in the session hash storing the primary key of the
23
+ logged in account.
24
+ skip_status_checks? :: Whether status checks should be skipped for accounts.
25
+ Defaults to false unless enabling the verify_account
26
+ or close_account features.
27
+ title_instance_variable :: The instance variable to set in the Roda scope with
28
+ the page title. The layout should use this instance
29
+ variable if available to set the title of the page.
30
+
31
+ === Other
32
+
33
+ account_id_column :: The primary key column of the account model.
34
+ account_open_status_value :: The integer representing open accounts.
35
+ account_select :: An array of columns to select from +accounts_table+. By
36
+ default, selects all columns in the table.
37
+ account_status_column :: The status id column in the account model.
38
+ account_unverified_status_value :: The representating unverified accounts.
39
+ default_redirect :: Where to redirect after most successful actions.
40
+ invalid_password_message :: The error message to display when a given
41
+ password doesn't match the stored password hash.
42
+ login_column :: The login column in the account model.
43
+ login_label :: The label to use for logins.
44
+ login_param :: The parameter name to use for logins.
45
+ modifications_require_password? :: Whether making changes to an account requires
46
+ the user reinputing their password.
47
+ no_matching_login_message :: The error message to display when the login
48
+ used is not in the database.
49
+ password_hash_column :: The password hash column in the password hash table.
50
+ password_hash_id_column :: The account id column in the password hash table.
51
+ password_hash_table :: The table storing the password hashes.
52
+ password_label :: The label to use for passwords.
53
+ password_param :: The parameter name to use for passwords.
54
+ require_login_error_flash :: The flash error to display when accessing a
55
+ page that requires a login, when you are not
56
+ logged in.
57
+ require_login_redirect :: A redirect to the login page.
58
+ set_deadline_values? :: Whether deadline values should be set. True by default
59
+ on MySQL, as that doesn't support default values that
60
+ are not constant. Can be set to true on other databases
61
+ if you want to vary the value based on a request parameter.
62
+ use_date_arithmetic? :: Whether the date_arithmetic extension should be loaded into
63
+ the database. Defaults to whether deadline values should
64
+ be set.
65
+ use_database_authentication_functions? :: Whether to use functions to do authentication.
66
+ True by default on PostgreSQL, false otherwise.
67
+
68
+ == Auth Methods
69
+
70
+ before_rodauth :: Run arbitrary code before handling any rodauth route.
71
+ account_from_login(login) :: Retrieve the account model instance related to the
72
+ given login or nil if no login matches.
73
+ account_from_session :: Retrieve the account model instance related to the currently
74
+ logged in session.
75
+ account_id :: The primary key value of the current account
76
+ account_session_value :: The primary value of the account currently stored in the
77
+ session.
78
+ already_logged_in :: What action to take if you are already logged in and attempt
79
+ to access a page that only makes sense if you are not logged in.
80
+ authenticated? :: Whether the user has been authenticated. If 2 factor authentication
81
+ has not been enabled for the account, this is true only if both
82
+ factors have been authenticated.
83
+ clear_session :: Clears the current session.
84
+ csrf_tag :: The HTML fragment containing the CSRF tag to use, if any.
85
+ function_name(name) :: The name of the database function to call. It's passed either
86
+ :rodauth_get_salt or :rodauth_valid_password_hash.
87
+ logged_in? :: Whether there is an account currently logged in.
88
+ login_required :: Action to take when a login is required to access the page and
89
+ the user is not logged in.
90
+ open_account? :: Whether the current account is an open account (not closed or
91
+ unverified).
92
+ password_match?(password) :: Check whether the given password matches the
93
+ stored password hash.
94
+ random_key :: A randomly generated string, used for creating tokens.
95
+ redirect(path) :: Redirect the request to the given path.
96
+ session_value :: Alias for account_session_value.
97
+ set_error_flash(message) :: Set the current error flash to the given message.
98
+ set_notice_flash(message) :: Set the next notice flash to the given message.
99
+ set_notice_now_flash(message) :: Set the current notice flash to the given message.
100
+ set_redirect_error_flash(message) :: Set the next error flash to the given message.
101
+ set_title(title) :: Set the title of the page to the given title.
102
+ unverified_account_message :: The message to use when attempting to login to an
103
+ unverified account.
104
+ update_session :: Set the session key to the primary key of the current account.
@@ -0,0 +1,29 @@
1
+ = Documentation for Change Login Feature
2
+
3
+ The change login feature implements a form that a user can use to
4
+ change their login.
5
+
6
+ == Auth Value Methods
7
+
8
+ change_login_additional_form_tags :: HTML fragment containing additional
9
+ form tags to use on the change login
10
+ form.
11
+ change_login_button :: The text to use for the change login button.
12
+ change_login_error_flash :: The flash error to show for an unsuccessful
13
+ login change.
14
+ change_login_notice_flash :: The flash notice to show after a successful
15
+ login change.
16
+ change_login_redirect :: Where to redirect after a sucessful login change.
17
+ change_login_requires_password? :: Whether a password is required when
18
+ changing logins.
19
+ change_login_route :: The route to the change login action.
20
+
21
+ == Auth Methods
22
+
23
+ after_change_login :: Run arbitrary code after successful login change.
24
+ before_change_login :: Run arbitrary code before changing a login.
25
+ before_change_login_route :: Run arbitrary code before handling a change login route.
26
+ change_login(login) :: Change the users login to the given login, or
27
+ return nil/false if the login cannot be changed to
28
+ the given login.
29
+ change_login_view :: The HTML to use for the change login form.
@@ -0,0 +1,26 @@
1
+ = Documentation for Change Password Feature
2
+
3
+ The change password feature implements a form that a user can use to
4
+ change their password.
5
+
6
+ == Auth Value Methods
7
+
8
+ change_password_additional_form_tags :: HTML fragment containing additional
9
+ form tags to use on the change password
10
+ form.
11
+ change_password_button :: The text to use for the change password button.
12
+ change_password_error_flash :: The flash error to show for an unsuccessful
13
+ password change.
14
+ change_password_notice_flash :: The flash notice to show after a successful
15
+ password change.
16
+ change_password_redirect :: Where to redirect after a sucessful password change.
17
+ change_password_requires_password? :: Whether a password is required when
18
+ changing passwords.
19
+ change_password_route :: The route to the change password action.
20
+
21
+ == Auth Methods
22
+
23
+ after_change_password :: Run arbitrary code after successful password change.
24
+ before_change_password :: Run arbitrary code before changing the password for an account.
25
+ before_change_password_route :: Run arbitrary code before handling a change password route.
26
+ change_password_view :: The HTML to use for the change password form.
@@ -0,0 +1,31 @@
1
+ = Documentation for Close Account Feature
2
+
3
+ The close account feature allows users to close their accounts.
4
+
5
+ == Auth Value Methods
6
+
7
+ account_closed_status_value :: The integer representing closed accounts.
8
+ close_account_additional_form_tags :: HTML fragment containing additional
9
+ form tags to use on the close account
10
+ form.
11
+ close_account_button :: The text to use for the close account button.
12
+ close_account_notice_flash :: The flash notice to show after closing the
13
+ account.
14
+ close_account_redirect :: Where to redirect after closing the account.
15
+ close_account_requires_password? :: Whether a password is required when
16
+ closing accounts.
17
+ close_account_route :: The route to the close account action.
18
+ delete_account_on_close? :: Whether to delete the account when closing it,
19
+ default value is to use +skip_status_checks?+.
20
+
21
+ == Auth Methods
22
+
23
+ after_close_account :: Run arbitrary code after closing the account.
24
+ before_close_account :: Run arbitrary code before closing an account.
25
+ before_close_account_route :: Run arbitrary code before handling a close account route.
26
+ close_account :: Close the account, by default setting the account status
27
+ to closed.
28
+ close_account_view :: The HTML to use for the close account form.
29
+ delete_account :: If +delete_account_on_close?+ is true, delete the account
30
+ when closing it.
31
+
@@ -0,0 +1,22 @@
1
+ = Documentation for Confirm Password Feature
2
+
3
+ The confirm password feature allows you to redirect users to a page to
4
+ confirm their password. It's used by the remember feature, but can also
5
+ by your application if you want to confirm passwords.
6
+
7
+ == Auth Value Methods
8
+
9
+ confirm_password_additional_form_tags :: HTML fragment containing additional form tags to use on the confirm password form.
10
+ confirm_password_button :: The text to use for the confirm password button.
11
+ confirm_password_error_flash :: The flash error to show if password confirmation is unsuccessful.
12
+ confirm_password_notice_flash :: The flash notice to show after password confirmed successful.
13
+ confirm_password_redirect :: Where to redirect after successful password confirmation. By default, uses <tt>session[:confirm_password_redirect]</tt> if set, allowing an easy way to redirect back to the page requesting password confirmation.
14
+ confirm_password_route :: The route to the confirm password form.
15
+
16
+ == Auth Methods
17
+
18
+ after_confirm_password :: Run arbitrary code after successful confirmation of password.
19
+ before_confirm_password :: Run arbitrary code before setting that the password has been confirmed.
20
+ confirm_password :: Run arbitrary code on correct password confirmation.
21
+ before_confirm_password_route :: Run arbitrary code before handling the password confirmation route.
22
+ confirm_password_view :: The HTML to use for the confirm password form.
@@ -0,0 +1,34 @@
1
+ = Documentation for Create Account Feature
2
+
3
+ The create account feature allows users to create new accounts.
4
+
5
+ == Auth Value Methods
6
+
7
+ create_account_additional_form_tags :: HTML fragment containing additional
8
+ form tags to use on the create account
9
+ form.
10
+ create_account_button :: The text to use for the create account button.
11
+ create_account_error_flash :: The flash error to show for unsuccessful
12
+ account creation.
13
+ create_account_notice_flash :: The flash notice to show after successful
14
+ create_account_redirect :: Where to redirect after creating the account.
15
+ create_account_route :: The route to the create account action.
16
+ account creation.
17
+
18
+ == Auth Methods
19
+
20
+ after_create_account :: Run arbitrary code after creating the account.
21
+ before_create_account :: Run arbitrary code before creating the account.
22
+ before_create_account_route :: Run arbitrary code before handling a create account route.
23
+ create_account_autologin? :: Whether to autologin the user upon
24
+ successful account creation, true by default unless verifying
25
+ accounts.
26
+ create_account_link :: HTML fragment to display with a link to the create
27
+ account form.
28
+ create_account_view :: The HTML to use for the create account form.
29
+ new_account(login) :: Instantiate a new account model instance for the
30
+ given login, without saving it.
31
+ save_account :: Insert the account into the database, or return nil/false if that
32
+ was not successful.
33
+ set_new_account_password :: Set the password for a new account if
34
+ +account_password_hash_column+ is set, without saving.