PluginProbe
Two Factor Authentication / 1.15.5
Two Factor Authentication v1.15.5
1.12.2 1.13.0 1.14.10 1.14.11 1.14.14 1.14.15 1.14.16 1.14.17 1.14.23 1.14.24 1.14.26 1.14.27 1.14.3 1.14.4 1.14.5 1.14.7 1.14.8 1.15.5 1.16.0 1.2.10 1.2.12 1.2.13 1.2.14 1.2.15 1.2.16 All 98 releases
two-factor-authentication / readme.txt

readme.txt in Two Factor Authentication 1.15.5, at readme.txt

913 lines 50.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 === Two Factor Authentication ===
2 Tags: two factor, 2fa, tfa, two factor auth, google authenticator
3 Requires at least: 3.4
4 Tested up to: 6.9
5 Stable tag: 1.15.5
6 Requires PHP: 5.6
7 Author: DavidAnderson
8 Contributors: DavidAnderson, DNutbourne
9 Donate link: https://david.dw-perspective.org.uk/donate
10 License: GPLv2 or later
11 License URI: https://www.gnu.org/licenses/gpl-2.0.html
12
13 Secure WordPress login with Two Factor Authentication - supports WP, Woo + other login forms, HOTP, TOTP (Google Authenticator, Authy, etc.)
14
15 == Description ==
16
17 Secure WordPress login with this two factor authentication (TFA / 2FA) plugin. Users for whom it is enabled will require a one-time code in order to log in. From the authors of <a href="https://updraftplus.com/">UpdraftPlus - WP's #1 backup/restore plugin</a>, with over two million active installs.
18
19 Are you completely new to TFA? <a href="https://wordpress.org/plugins/two-factor-authentication/faq/">If so, please see our FAQ</a>.
20
21 Features (please see the "Screenshots" for more information):
22
23 * Supports standard TOTP + HOTP protocols (and so supports Google Authenticator, Authy, and many others).
24 * Displays graphical QR codes for easy scanning into apps on your phone/tablet
25 * TFA can be made available on a per-role basis (e.g. available for admins, but not for subscribers)
26 * TFA can be turned on or off by each user
27 * TFA can be required for specified user levels, after a defined time period (e.g. require all admins to have TFA, once their accounts are a week old) (<a href="https://www.simbahosting.co.uk/s3/product/two-factor-authentication/">Premium version</a>), including forcing them to immediately set up (by redirecting them to the page to do so)
28 * Supports front-end editing of settings, via [twofactor_user_settings] shortcode (i.e. users don't need access to the WP dashboard). (The <a href="https://www.simbahosting.co.uk/s3/product/two-factor-authentication/">Premium version</a> allows custom designing of any layout you wish).
29 * Site owners can allow "trusted devices" on which TFA codes are only asked for a chosen number of days (instead of every login); e.g. 30 days (<a href="https://www.simbahosting.co.uk/s3/product/two-factor-authentication/">Premium version</a>)
30 * Encrypt the TFA-generating secret keys using an on-disk encryption key, so that an attacker would need to break into both your WordPress database *and* your files in order to break TFA codes (as well as breaking a user's password in order to use them)
31 * Works together with <a href="https://wordpress.org/plugins/theme-my-login/">"Theme My Login"</a> (both forms and widgets)
32 * Includes support for the WooCommerce and Affiliates-WP login forms
33 * Includes support for Ultimate Membership Pro
34 * Includes support for CozmosLabs Profile Builder
35 * Includes support for Ultimate Member login forms (Premium version)
36 * Includes support for Elementor Pro login forms (Premium version)
37 * Includes support for bbPress login forms (Premium version)
38 * Includes support for RegistrationMagic login forms (Premium version)
39 * Includes support for login forms from the Gravity Forms User Registration add-on (Premium version)
40 * Includes support for login forms (shortcode forms only) from Paid Memberships Pro (Premium version)
41 * Includes support for any and every third-party login form (Premium version) without any further coding needed via appending your TFA code to the end of your password
42 * Does not mention or request second factor until the user has been identified as one with TFA enabled (i.e. nothing is shown to users who do not have it enabled)
43 * WP Multisite compatible (plugin should be network activated)
44 * Simplified user interface and code base for ease of use and performance
45 * Added a number of extra security checks to the original forked code
46 * Alert users if someone appears to have found out their password, as indicated by successfully entering a password but repeatedly entering an incorrect TFA code.
47 * Emergency codes for when you lose your phone/tablet (<a href="https://www.simbahosting.co.uk/s3/product/two-factor-authentication/">Premium version</a>)
48 * When using the front-end shortcode (<a href="https://www.simbahosting.co.uk/s3/product/two-factor-authentication/">Premium version</a>), require the user to enter the current TFA code correctly to be able to activate TFA
49 * Works together with <a href="https://wordpress.org/plugins/wp-members/">"WP Members"</a> (shortcode form)
50 * Administrators can access other users' codes, and turn them on/off when needed (<a href="https://www.simbahosting.co.uk/s3/product/two-factor-authentication/">Premium version</a>)
51
52 = Why use TFA / 2FA ? =
53
54 Read this! <a href="https://www.wired.com/2012/08/apple-amazon-mat-honan-hacking/">https://www.wired.com/2012/08/apple-amazon-mat-honan-hacking/</a>
55
56 = How Does TFA / 2FA Work? =
57
58 This plugin uses the industry standard TFA / 2FA algorithm [TOTP](https://en.wikipedia.org/wiki/Time-based_One-time_Password_Algorithm) or [HOTP](https://en.wikipedia.org/wiki/HMAC-based_One-time_Password_Algorithm) for creating One Time Passwords. These are used by Google Authenticator, Authy, and many other OTP applications that you can deploy on your phone etc.
59
60 A TOTP code is valid for a certain time. Whatever program you use (i.e. Google Authenticator, etc.) will show a different code every so often.
61
62 = Plugin Notes =
63
64 This plugin began life in early 2015 as a friendly fork and enhancement of <a href="https://wordpress.org/plugins/two-factor-auth/">Oscar Hane's "two factor auth" plugin</a>.
65
66 == Installation ==
67
68 This plugin requires PHP version 5.3 or higher and support for either php-openssl or [PHP mcrypt](http://www.php.net/manual/en/mcrypt.installation.php). The vast majority of PHP setups will have one of these. If not, ask your hosting company.
69
70 1. Search for 'Two Factor Authentication' in the 'Plugins' menu in WordPress.
71 2. Click the 'Install' button. (Make sure you picks the right one)
72 3. Activate the plugin through the 'Plugins' menu in WordPress
73 4. Find site-wide settings in Settings -> Two Factor Authentication ; find your own user settings in the top-level menu entry "Two Factor Auth".
74
75 If you want to add a section to the front-end of your site where users can configure their two-factor authentication settings, use this shortcode: [twofactor_user_settings] . (If you set the attribute show_algorithm_selector to "yes" then it will include an 'advanced' settings section allowing the HOTP algorithm to be chosen and not only the default TOTP algorithm, but few people will want this).
76
77 == Frequently Asked Questions ==
78
79 = What is two factor authentication (TFA / 2FA) ? =
80
81 Basically, it's to do with securing your logins, so that there's more than one link in the chain needing to be broken before an unwanted intruder can get in your website.
82
83 By default, your WordPress accounts are protected by only one thing: your password. If that's broken, then everything's wide open.
84
85 "Two factor" means adding a second requirement. Usually, this is a code that comes to a device you own (e.g. phone, tablet) - so, someone can't get into your website without getting hold of your device. <a href="https://en.wikipedia.org/wiki/Two_factor_authentication">You can get a longer answer from Wikipedia.</a>
86
87 Sometimes it is also called multi-factor authentication instead of two-factor - because someone could secure their systems with as many factors as they like.
88
89 = Why should I care? =
90
91 Read this: <a href="https://www.wired.com/2012/08/apple-amazon-mat-honan-hacking/">https://www.wired.com/2012/08/apple-amazon-mat-honan-hacking/</a>
92
93 = How does two factor authentication (TFA / 2FA) work? =
94
95 Since "two factor authentication" just means "a second something is necessary to get in", this answer depends upon the particular set-up. In the most common case, a numeric code is shown on your phone, tablet or other device. This code be sent via an SMS; this then depends on the mobile phone network working. This plugin does not uses that method. Instead, it uses a standard mathematical algorithm to generate codes that are only valid once each, or for only for 30 seconds (depending on which algorithm you choose). Your phone or tablet can know the code after it has been set up once (often, by just scanning a bar-code off the screen).
96
97 = What do I need to set up on my phone/tablet (etc.) in order to generate the codes? =
98
99 This depends on your particular make of phone, and your preferences. Google have produced a popular app called "Google Authenticator", which is a preferred option for many people because it is easy to use and can be set up via just scanning a bar code off your screen - <a href="https://support.google.com/accounts/answer/1066447"> follow this link, and ignore the first paragraph that is talking about 2FA on your Google account</a> (rather than being relevant to this plugin).
100
101 = What if I do not have a phone or tablet? =
102
103 Many and various devices and programs can generate the codes. One option is an add-on for your web browser; for example, <a href="https://chrome.google.com/webstore/search/authenticator">here are some apps and add-ons for Google Chrome</a>. Wikipedia <a href="https://en.wikipedia.org/wiki/Time-based_One-time_Password_Algorithm#Client_implementations">lists various programs for different computers</a>.
104
105 = I lost my device that has pass-codes - or, they don't work. What to do? =
106
107 If your pass-code used to work, but no longer does, then check that the time on your device that generates them is accurate.
108
109 If you cannot get in and need to disable two-factor authentication, then add this to your wp-config.php file, using FTP or the file manager in your hosting control panel:
110
111 <code>define('TWO_FACTOR_DISABLE', true);</code>
112
113 Add it next to where any other line beginning with "define" is.
114
115 Alternatively, if you have FTP or cPanel access to your web hosting space, you can de-activate the plugin; <a href="https://updraftplus.com/understanding-wordpress-installs-plugins/">see this article.</a>
116
117 = Why does the plugin not support sending the two-factor code by email? =
118
119 If someone has access to your email account, then they can send a password-reset code there using the password-reset mechanisms built into WordPress. Therefore, if the two-factor code was also sent there, then ability to read your email allows the breaking of both factors, and hence is no longer truly *two* factor authentication.
120
121 Some users might have two factor authentication on their email account, but this is not knowable or controllable from inside WordPress, and so giving this option to users means that the administrator cannot see or enforce two-factor authentication. And even in this case, email is often sent between servers unencrypted, and so is susceptible to man-in-the-middle attacks beyond the control of WordPress.
122
123 = What are HOTP and TOTP? =
124
125 These are the names of the two mathematical algorithms that are used to create the special codes. These are industry-standard algorithms, devised by expert cryptographers. HOTP is less popular, but the device that generates the codes does not need to know the correct time (instead, the codes are generated in a precise sequence). TOTP is much more popular, and generates codes that are only valid for 30 seconds (and so your device needs to know the time). I'd recommend TOTP, as HOTP can be annoying if something causes the sequences to get out of sync.
126
127 = What is the shortcode to use for front-end settings? =
128
129 [twofactor_user_settings]
130
131 = I deliberately entered a wrong password, and it let me login! =
132
133 You have a password manager extension installed in your web browser, with the correct password entered in it. It has automatically replaced your wrong password with the right one from its saved store. This behaviour has been observed and confirmed by several users. You can verify it by using the web developer tools in your browser to look at the HTTP data sent to WordPress, and observe which password is actually in it. You can also open a fresh web browser with no such extension in it to re-test.
134
135 Note that the two factor authentication plugin has no mechanism to compare or approve passwords; this is done by WordPress core. If the wrong password is sent, then this is handled by WordPress, and the login will not proceed.
136
137 == Screenshots ==
138
139 1. Site-wide settings
140
141 2. User settings (dashboard)
142
143 3. User settings (front-end, via shortcode)
144
145 4. Regular WP login form requesting OTP code (after successful username/password entry)
146
147 5. WooCommerce login form requesting OTP code (after successful username/password entry)
148
149 6. What the user sees if opening a wrong OTP code on the regular WP login form
150
151 7. What the user sees if opening a wrong OTP code on the WooCommerce login form
152
153 8. Where to find the site-wide settings in the dashboard menu
154
155 9. Where to find the user's personal settings in the dashboard menu
156
157 10. Emergency codes (Premium version)
158
159 11. Adjusting other users' settings as an admin (Premium version)
160
161 12. Building your own design for the page with custom short-codes (Premium version)
162
163 13. Allowing users to have trusted devices (Premium version)
164
165 == Changelog ==
166
167 = 1.15.5 - 28/Jun/2025 =
168
169 * FIX: Function WP_Block_Type_Registry::register was called incorrectly
170 * FIX: Fix regression in 1.15.1 which could result in displaying settings incorrectly, with checkboxes hidden
171 * FEATURE: Add support for RegistrationMagic login forms
172
173 = 1.15.2 - 25/Apr/2025 =
174
175 * TWEAK: Fix regression in 1.15.1 in parsing of multisite capabilities
176
177 = 1.15.1 - 12/Apr/2025 =
178
179 * TWEAK: Replace use of maybe_unserialize()
180 * TWEAK: Add support for shortcode-based login forms from Paid Memberships Pro (Premium version)
181
182 = 1.15.0 - 13/Dec/2024 =
183
184 * TWEAK: The 'twofactor_user_settings' shortcode will now not include the "advanced" settings section (with a selector for the TOTP or HOTP algorithm) in the settings output. You can revert to the previous behaviour by adding the attribute show_algorithm_selector="yes" to the shortcode (e.g. [twofactor_user_settings show_algorithm_selector="yes"] ).
185
186 = 1.14.27 - 25/Nov/2024 =
187
188 * FIX: 1.14.26 broke saving settings on a front-end page via the shortcode
189 * TWEAK: Purge empty members of the tfa_incorrect_code_attempts list, to prevent unnecessary growth; and key by user ID, not user login
190
191 = 1.14.26 - 13/Nov/2024 =
192
193 * TWEAK: Resolve a language deprecation notice on WP 6.7 and non-default language
194
195 = 1.14.25 - 11/Nov/2024 =
196
197 * FIX: Fix a regression in 1.14.24 Premium in the handling of empty query strings in redirect URLs when running on PHP <= 7.4 (if on such versions, please see https://www.php.net/eol.php ).
198
199 = 1.14.24 - 24/Oct/2024 =
200
201 * TWEAK: Redirection when TFA is compulsory (Premium feature) should exclude the logout link
202 * FIX: An issue that prevented turning on TFA when the redirect user URL is set
203
204 = 1.14.23 - 25/Jun/2024 =
205
206 * TWEAK: Do not require TFA codes for API requests authenticated via an application password
207 * TWEAK: Improve formatting of "trust this device" checkbox
208
209 = 1.14.22 - 28/Nov/2023 =
210
211 * FIX: Fix a fatal error that occurred due to a failure to process a WP_Error object on an Affiliates WP login form
212 * TWEAK: Further improve styling when used on Ultimate Member login forms
213 * TWEAK: Force unsetting of disabled property before triggering click event
214
215 = 1.14.21 - 01/Nov/2023 =
216
217 * TWEAK: Improve styling when used on Ultimate Member login forms
218
219 = 1.14.20 - 27/Oct/2023 =
220
221 * FEATURE: Add support (Premium version) for Ultimate Member login forms
222
223 = 1.14.19 - 14/Oct/2023 =
224
225 * TWEAK: Change the "not available for your user" message to be more appropriate when output on pages without login
226 * TWEAK: Prevent PHP coding notice when logging an incorrect login
227 * TWEAK: Updated bundled updater library to latest series
228
229 = 1.14.18 - 30/Aug/2023 =
230
231 * TWEAK: The settings for making TFA compulsory (Premium feature) have had their layout and descriptions changed to enhance clarity.
232 * TWEAK: The filter simba_tfa_apply_redirect_in_admin has had its default value changed from false to true. This means that when users are forcibly redirected to a setup page, this happens in the admin area too.
233
234 = 1.14.17 - 26/Aug/2023 =
235
236 * FEATURE: Notify user if multiple wrong TFA codes used (which indicates someone has their password)
237 * FEATURE: Add a Gutenberg block for the [twofactor_user_settings] shortcode.
238 * TWEAK: Resolve PHP 8.2 deprecation notice introduced in 1.14.15
239 * TWEAK: Do not look for a TFA code when validating an existing cookie
240 * TWEAK: Tweak HTML structure where private key is printed to reduce likelihood of copy/paste introducing an unwanted space
241 * TWEAK: Do not consider empty strings when turning on database encryption
242 * TWEAK: Update updater library to current version (resolves some PHP 8.2 deprecation notices)
243
244 = 1.14.16 - 08/May/2023 =
245
246 * FIX: Fix an error on PHP 7.2 introduced in 1.14.15 (PHP 7.2 was end-of-lifed by the PHP group in 2020, so please update! https://www.php.net/eol.php ).
247 * TRANSLATIONS: Update French and Italian translations (thank you to the translators)
248 * TWEAK: Correct string identifier for "TFA is configured to not be available for this role" text
249 * TWEAK: Make role names translatable in one place where they were not
250
251 = 1.14.15 - 05/May/2023 =
252
253 * FEATURE: Encrypt TFA secret keys that are stored in the database (extra protection in case of your database being hacked)
254 * FIX: Fix handling of login forms on a page where Gravity Forms was loaded in the JavaScript environment but was not providing the login form
255 * TWEAK: Make use of hash_equals function when comparing TOTP codes to prevent timing comparisons
256
257 = 1.14.14 - 24/Mar/2023 =
258
259 * FIX: When on a multisite on a non-main site, the link shown to the network administration for the plugin was wrong
260 * TWEAK: Cache whether a user is using TFA when moving from the username field, in order to reduce delay when presenting TFA field
261 * TWEAK: Userlist related css file version to be based on its file's time.
262 * TWEAK: Add config utility methods and tweak registering settings.
263 * TWEAK: Add a span with CSS class simba_tfa_otp_login_help to the "check your OTP app to get this password" text
264 * TWEAK: Add support for CozmosLabs Profile Builder login forms
265 * TWEAK: Fix some minor problems related to translation domain handling and untranslatable phrases
266 * TWEAK: Suppress message that these are your personal settings for less-privileged users
267 * TWEAK: Ensure that user roles are translated
268 * TWEAK: Updated French translation, thanks to @madmax4ever
269
270 = 1.14.13 - 15/Nov/2022 =
271
272 * TWEAK: Improve styling of trusted device control when used with Gravity Forms User Registration Login forms
273
274 = 1.14.12 - 12/Nov/2022 =
275
276 * FEATURE: Add support (Premium version) for Gravity Forms User Registration Login forms
277 * TWEAK: Fix PHP notice with the AffiliateWP plugin if a user has not enabled TFA
278
279 = 1.14.11 - 25/Oct/2022 =
280
281 * TWEAK: Provide a link to the user's TFA settings on the user profile page
282 * TWEAK: Fix a typo (being/begin)
283 * TWEAK: In the admin settings, show more clearly in the "Make two factor authentication compulsory" section the dependence upon the earlier "Make two factor authentication" section
284
285 = 1.14.10 - 10/Oct/2022 =
286
287 * TWEAK: Only load Simba_TFA_Login_Form_Integrations class if not already present
288 * TWEAK: Hide all HTML entities that have `hide-when-displaying-tfa-input` class when 2FA code prompt at login time.
289
290 = 1.14.9 - 07/Oct/2022 =
291
292 * FEATURE: Allow the site owner to choose when policy enforcement (Premium) begins for already-existing users
293
294 = 1.14.8 - 05/Oct/2022 =
295
296 * TWEAK: Move JavaScript for displaying QR codes and handling trusted devices into its own file, for better CSP compatibility
297
298 = 1.14.7 - 28/Sep/2022 =
299
300 * TWEAK: Dynamic (non-explicitly declared) properties are deprecated as of PHP 8.2
301 * TWEAK: Update bundled Select2 4.0 version to current release
302 * TWEAK: Move JavaScript for administering other users into its own file, for better CSP compatibility
303 * TWEAK: When a device is already trusted, show this information as plain text, not in the TFA field
304 * TWEAK: When the TFA input field is shown, hide error messages from previous logins
305 * TWEAK: If the AJAX call to check on OTP status fails, show a user-visible message
306 * TWEAK: Add .localdomain hostnames to those permitted to have trusted devices
307 * TWEAK: Relabel "Get codes" button
308 * TWEAK: Add some filters allowing easier customisation of messages displayed
309 * TWEAK: Show only the base32 encoding of the private key (unless the shortcode explicitly specified otherwise), since for a long time now this is what all known apps accept
310
311 = 1.14.6 - 02/Sep/2022 =
312
313 * TWEAK: The TFA login script is loaded on the login script if a user has enabled the Two Factor Authentication feature.
314
315 = 1.14.5 - 01/Sep/2022 =
316
317 * TWEAK: Gave Premium mentions their own CSS class
318
319 = 1.14.4 - 15/Aug/2022 =
320
321 * FIX: Multisite Plugin Settings link to work in particular site plugins page for main site admin
322 * REFACTOR: Make the Simba Two Factor Authentication library more re-usable
323 * REFACTOR: Place premium auto-update code in the main file
324 * TWEAK: Introduce simba_tfa_get_option_site_id and simba_tfa_skip_adding_options_menu_entry filters
325
326 = 1.14.3 - 26/Jan/2022 =
327
328 * TWEAK: Change internal translation building and loading mechanism
329 * TWEAK: "https://" is not a translatable string
330 * TWEAK: Load translations even if aborting due to incompatible PHP version
331 * TWEAK: Update updater libraries to current versions
332
333 = 1.14.1 - 08/Nov/2021 =
334
335 * REFACTOR: The constants SIMBA_TFA_PLUGIN_DIR and SIMBA_TFA_PLUGIN_URL have been abolished. If you had hand-coded any code that used them, then you will want to review and test your customisations carefully first. This applies for all refactoring items and internal changes mentioned below.
336 * REFACTOR: Internal plugin directory structure changed
337 * TWEAK: Fix a potential PHP coding notice in 1.13.0 when an administrator viewed a user's QR code
338
339 = 1.13.0 - 01/Nov/2021 =
340
341 * REFACTOR: Complete re-organisation of all Premium code. If you had hand-coded any code which interacted with it, you will want to review and test your customisations carefully first. This applies for all refactoring items and internal changes mentioned below.
342 * REFACTOR: Abolished the class Simba_TFA_Plugin_Admin_Dashboard_Integration
343 * REFACTOR: Moved some TOTP/HOTP-specific methods out of Simba_Two_Factor_Authentication into Simba_TFA_Provider_TOTP
344 * TWEAK: Class TFA_Frontend renamed to Simba_TFA_Frontend
345 * TWEAK: The constant SIMBA_TFA_PLUGIN_FILE is no longer used internally and has been abolished
346 * TWEAK: Move Premium plugin update loader into the main Premium class
347 * TWEAK: Factor out all Premium features into individual classes
348 * TWEAK: The method tfa_is_available_and_active() has been removed.
349 * TWEAK: The method Simba_TFA_Provider_TOTP::getPanicCodesString() has been renamed to Simba_TFA_Provider_TOTP::get_emergency_codes_as_string()
350
351 = 1.12.3 - 22/Oct/2021 =
352
353 * FIX: Fix the twofactor_user_qrcode shortcode in the Premium version
354
355 = 1.12.2 - 21/Oct/2021 =
356
357 * FIX: Prevent load-order related fatal error (regression since 1.12.0) on sites that did not have AUTH_KEY defined in wp-config.php
358 * TWEAK: Update updater library in Premium version to latest version
359 * TWEAK: Introduce templating method for better code organisation
360
361 = 1.12.1 - 18/Oct/2021 =
362
363 * REFACTOR: Continuing the major re-factor of the plugin's internal classes. If you had hand-written custom PHP code that hooks into any internal classes, you will want to review your customisations carefully first.
364 * TWEAK: Update .pot file
365
366 = 1.12.0 - 16/Oct/2021 =
367
368 * REFACTOR: Major re-factor of the plugin's internal classes. If you had hand-written custom PHP code that hooks into any internal classes, you will want to review your customisations carefully first.
369 * TWEAK: Harmonise wording on trusted devices label
370 * TWEAK: Remove redundant hex2bin compatibility for no-longer-supported PHP versions
371
372 = 1.11.0 - 14/Sep/2021 =
373
374 * FEATURE: (Premium) Add new anti-bot feature for WooCommerce login forms: do not include the login form within the page HTML (making them invisible to most bots), bringing it back via JavaScript. The feature needs to be activated within the plugin settings.
375
376 = 1.10.4 - 27/Jul/2021 =
377
378 * TWEAK: Fix a couple of minor visual regressions in the WooCommerce login form TFA field layout
379
380 = 1.10.3 - 28/Jun/2021 =
381
382 * FIX: Incorrect object reference in Affiliate WP integration (regression in 1.10.0)
383
384 = 1.10.2 - 26/Jun/2021 =
385
386 * TWEAK: The script tfa_frontend.php now uses an external JavaScript file (better compatibility with with content security policies)
387
388 = 1.10.1 - 25/Jun/2021 =
389
390 * FIX: Fix a bug in the Premium Elementor integration introduced in 1.10.0.
391
392 = 1.10.0 - 15/Jun/2021 =
393
394 * REFACTOR: Integrate the previously-separate WooCommerce/Affiliates-WP handlers in the main handler, eliminating redundant/duplicate code. Eliminate the internal concept of different form types by re-coding the few "type one"s as type twos. Separate login-form specific data from code.
395
396 = 1.9.6 - 04/Jun/2021 =
397
398 * FEATURE: Support bbPress login forms (Premium version)
399
400 = 1.9.5 - 26/May/2021 =
401
402 * TRANSLATIONS: Update bundled Spanish translation (es_ES) in Premium release
403
404 = 1.9.4 - 25/May/2021 =
405
406 * FIX: Prevent an issue identifying the username field when on a page with both Affiliates WP login and registration forms, when the login form displayed second
407
408 = 1.9.3 - 14/Apr/2021 =
409
410 * FIX: In the Premium version, when appending the TFA code to the password on third-party login forms with no direct support, only usernames were accepted for the login (not email addresses)
411
412 = 1.9.2 - 20/Mar/2021 =
413
414 * TWEAK: When checking if a user has TFA enabled on a login page, perform the same sanitisation on the username as WP core, so that if the user mistypes their username (which WP accepts) e.g. by prefixing a space, then they will still be asked for their TFA code (instead of jumping straight to an error for not supplying one)
415 * TRANSLATIONS: Added an Italian translation, thanks to Edoardo Di Leginio
416
417 = 1.9.1 - 15/Feb/2021 =
418
419 * TWEAK: Correct the "for" attribute of the "mark as trusted" text label on the WooCommerce login form
420
421 = 1.9.0 - 09/Feb/2021 =
422
423 * FEATURE: (Premium) If TFA is required for a user, and they have not yet set it up, then force them to be redirected to a configured URL
424 * TWEAK: Replace the deprecated jQuery.click() and .change() methods
425
426 = 1.8.8 - 16/Jan/2021 =
427
428 * TWEAK: Replace the deprecated jQuery.unbind() and .focus() methods
429 * TWEAK: If the free version is active, then throw an error if trying to activate the Premium version, explaining what needs to be done
430
431 = 1.8.7 - 11/Jan/2021 =
432
433 * TWEAK: Update jQuery document ready, click and submit styles to one not deprecated in jQuery 3.0, and replace :first pseudo-selector with .first()
434 * TWEAK: Now marked as supporting PHP 5.6+ (now that PHP 8.0 is out)
435 * TWEAK: Update to the latest version of the bundled updater library (paid versions), which adds integration with WP 5.5+'s auto-updater
436
437 = 1.8.6 - 15/Sep/2020 =
438
439 * FEATURE: Add a 'TFA' column also to the Users screen in the WP network admin dashboard (multisite installs)
440 * TWEAK: Update the bundled updater library (paid versions) to the current release
441
442 = 1.8.5 - 29/Aug/2020 =
443
444 * TWEAK: Fix the "for" attribute of the "trusted" text label on the WooCommerce login form
445 * TWEAK: If a website's wp-login.php is available under multiple hosts without CORS enabled between them, then AJAX calls would fail; this is now resolved by using a relative URL instead
446 * TWEAK: Update bundled updater libraries on Premium version (improving compatibility with WP 5.5+'s update settings)
447
448 = 1.8.4 - 26/May/2020 =
449
450 * TWEAK: Updare .pot file; now both the first two parameters to _n() are also included in the aggregation process
451
452 = 1.8.2 - 23/May/2020 =
453
454 * FIX: If the site owner was requiring a correct code to be supplied for activation, then this was also being required for de-activation
455 * TWEAK: Introduce simbatfa_enforce_require_after_check filter, allowing developers to selectively disable the "require TFA after X days" check
456 * TWEAK: Update .pot file
457
458 = 1.8.0 - 18/Apr/2020 =
459
460 * FEATURE: Add support in the paid version for Elementor login forms
461 * TWEAK: Updater in paid version now will make checks on availability without needing login
462 * TWEAK: Update updater class to current release
463
464 = 1.7.4 - 19/Mar/2020 =
465
466 * TWEAK: Adjust how the trusted field is referenced from JavaScript, fixing IE11 compatibility
467 * TWEAK: Introduce the filter simba_tfa_required_for_user
468
469 = 1.7.3 - 03/Mar/2020 =
470
471 * TWEAK: Provide non-plural alternative for trusted device phrase
472 * TWEAK: Mark as supporting WP 5.4
473
474 = 1.7.2 - 13/Feb/2020 =
475
476 * TWEAK: Update message about what to do with translations
477
478 = 1.7.1 - 14/Jan/2020 =
479
480 * FIX: Missing file in 1.7.0 (free) release
481
482 = 1.7.0 - 14/Jan/2020 =
483
484 * FEATURE: (Premium version): Add an optional TFA section to the WooCommerce account details section in "My Account"
485 * TWEAK: Fix div tag balancing issue in settings output
486 * TWEAK: Update WooCommerce integration to adjust to DOM changes in WooCommerce 3.8
487 * TWEAK: Update .pot file
488
489 = 1.6.4 - 12/Nov/2019 =
490
491 * TWEAK: On wp-login.php on WordPress 5.3, the password field was not hiding when the TFA field opened
492 * TWEAK: Update .pot file
493 * TWEAK: Add data-lpignore attribute to TFA field to indicate to LastPass that it is not a password field
494
495 = 1.6.3 - 18/Oct/2019 =
496
497 * FIX: The 'trusted users' option display in the settings defaulted to showing as enabled, whereas in fact the default setting is disabled
498 * TWEAK: Mark as compatible with WP 5.3
499
500 = 1.6.2 - 11/Sep/2019 =
501
502 * FIX: On multisites, administration of site users who were not present on the main site was not possible
503 * TWEAK: Introduce the WP action simba_tfa_activation_status_saved to allow developers to respond to activation status changes
504 * TWEAK: Update updater class to 1.8 series
505
506 = 1.6.1 - 10/Aug/2019 =
507
508 * TWEAK: Response to an attempt to turn TFA on can now include an "error" attribute if the attempt failed due to failure to supply the current code
509
510 = 1.6.0 - 08/Aug/2019 =
511
512 * FEATURE: (Premium version) By using the parameter style="require_current" with the shortcode twofactor_user_settings_enabled, the user will only be able to activate TFA if they enter the current TFA code
513 * TWEAK: Remove the incorrect suffix "(Premium)" (double-suffix in the actual Premium version) that appeared in the plugin title in 1.5.6
514
515 = 1.5.6 - 06/Aug/2019 =
516
517 * TWEAK: Allow customisation of a particular message via a filter simbatfa_message_you_should_verify
518 * TWEAK: Replace "eachother" with "each other"
519
520 = 1.5.5 - 30/Jul/2019 =
521
522 * TWEAK: Force a global context when creating the initial Simba_Two_Factor_Authentication object, to work around direct accesses from components that do not set the scope correctly
523
524 = 1.5.4 - 17/Jul/2019 =
525
526 * FEATURE: (Premium version) - allow the site administrator to forbid users who have compulsory TFA to turn it off (supplementing the additional capability to prevent them logging in)
527
528 = 1.5.3 - 22/Jun/2019 =
529
530 * TWEAK: When using your final emergency code (Premium version), and viewing your settings (which regenerated new ones), then if you did not follow the advice to reset your private key, you would get the same codes as before. This might be thought undesirable (though is not a security flaw, as the emergency codes are no more guessable the second time around than the first). This behaviour has now been changed.
531
532 = 1.5.2 - 08/Jun/2019 =
533
534 * TWEAK: When php-mcrypt was not installed, pressing the "Reset private key" link in a user's settings would cause an unnecessary PHP notice, and display a wrong "current code" for a few seconds.
535
536 = 1.5.1 - 05/May/2019 =
537
538 * FEATURE: Support any login form (Premium version) via appending the TFA code onto the end of the password. This allows support even of login forms coded in a way that make integrations (that aren't hacks or inordinate amounts of work-around code) impossible (e.g. PeepSo)
539 * TWEAK: Minor wording tweak in the explanation of how TOTP works.
540
541 = 1.4.12 - 18/Apr/2019 =
542
543 * TWEAK: Add a filter simba_tfa_localisation_strings allowing further customisation of front-end strings
544 * TWEAK: Add an extra instructional message in the "Make two factor authentication compulsory" section (Premium) to explain how to cope with existing users
545 * TWEAK: Cope with the user entering spaces in their two-factor code (TOTP protocol codes are numbers only, but some apps apparently display formatting and users are not aware)
546 * TWEAK: Mark as supporting WP 5.2
547
548 = 1.4.11 - 08/Mar/2019 =
549
550 * FIX: On multisites, the user search should search on all sites, not just the main one
551
552 = 1.4.10 - 01/Mar/2019 =
553
554 * TWEAK: Introduce a filter, simba_tfa_management_capability, allowing the WP capability (default: manage_options) required by a user to manage the plugin to be changed. (Be careful - giving the ability to manage could potentially mean the ability to lock any user out).
555
556 = 1.4.9 - 20/Feb/2019 =
557
558 * SECURITY: The security fix in version 1.4.7 was faulty and failed to completely fix the problem; it is now resolved in this release. Our apologies for the double update.
559
560 = 1.4.8 - 16/Feb/2019 =
561
562 * FIX: On some multisite setups, the link to the site-wide administration settings went to the wrong place
563
564 = 1.4.7 - 06/Feb/2019 =
565
566 * SECURITY: If a user's WordPress account username was in the form of an email address, and if their actual account email address was something different, and TFA was set up on that account, and used the "username" (that looked like an email address) to login, then TFA controls upon login on that account would be ineffective. Other accounts were not affected (regardless of whether you login by email or not). This vulnerability was inherited from the original "Two Factor Auth" plugin that this plugin was forked from, and so is present in all versions before this one.
567
568 = 1.4.6 - 05/Feb/2019 =
569
570 * FIX: When displaying a user's trusted devices in the admin page, the time that a device was trusted until was not shown correctly (instead, it showed the current time)
571 * FIX: Removing the first trusted device in a list did not always work
572 * TWEAK: Display "(none)" when there are no trusted devices
573
574 = 1.4.4 - 04/Feb/2019 =
575
576 * FEATURE: Trusted devices are now listed in the user's admin page, allowing them to see and remove trust from their devices.
577 * TWEAK: Updated .pot file
578
579 = 1.4.3 - 28/Jan/2019 =
580
581 * FIX: The "Trusted devices" functionality (Premium) checkbox was not appearing when activated
582 * TWEAK: Add a missing translation domain to a phrase
583
584 = 1.4.1 - 25/Jan/2019 =
585
586 * FEATURE: Trusted devices: A site owner can now choose to allow particular user levels (e.g. admins, editors) to mark devices as 'trusted' and thereby exempt from needing to enter a TFA code for a chosen number of days. This feature is off by default and requires https (i.e. SSL) on the login form and cookies to be kept in the trusted device.
587 * FIX: Fix a regression in 1.4.0 whereby when a site owner viewed another user's current code, it could later self-update with the wrong user's value
588 * TWEAK: Add the robustness in parsing broken JSON present on the standard WP login form to other login forms
589 * TWEAK: Various internal code documentation improvements
590 * TWEAK: Suppress mcrypt deprecation notices in places where we would use an alternative if it was not present
591 * TWEAK: Bumped the support requirement up to WP 3.4. I'm not aware of anything done to break it on 3.3, but this is the official requirement (it's very hard to test old WP versions as they don't run on modern webserver stacks)
592
593 = 1.4.0 - 24/Jan/2019 =
594
595 * FEATURE: Where the current OTP code is displayed (during setup), this will now self-update automatically (i.e. without needing a manual press on the "update" link).
596 * TWEAK: Various improvements to the layout and text of the setup page to help make the process more understandable
597 * TWEAK: The current code is shown next to the UI option for enabling TFA
598 * TWEAK: Prevent a PHP notice if AUTH_KEY was not defined (on some very old WP installs)
599
600 = 1.3.13 - 18/Dec/2018 =
601
602 * SECURITY: Fix a logged-in CSRF vulnerability reported by Martijn Korse (www.bitnesswise.com). Due to a missing nonce check, if an attacker was able to persuade a personally-targeted victim who was currently logged in to their WordPress account to visit a personally-crafted (for the individual victim) page in the same browser session, then the attacker would be able to de-activate two-factor authentication for the victim on that WordPress site (thus leaving the targeted account protected by the user's password, but not by a second factor - the absence of a request for a TFA code would be apparent on the user's next login). This vulnerability was inherited from the original "Two Factor Auth" plugin that this plugin was forked from, and so is present in all versions before this one.
603 * TWEAK: Some minor code-tidying
604 * TWEAK: Update bundled Premium updater library to current version (1.5.10)
605
606 = 1.3.12 - 14/Dec/2018 =
607
608 * TWEAK: Prevent a PHP debugging notice when $pagenow is not set
609
610 = 1.3.11 - 04/Dec/2018 =
611
612 * FEATURE: Add a 'TFA' column on the Users screen in the WP admin dashboard to display TFA status, thanks to Enrico Sorcinelli.
613
614 = 1.3.10 - 30/Nov/2018 =
615
616 * FIX: TFA codes were not being requested on the login form on a WooCommerce dedicated order payment page (i.e. /checkout/order-pay/123456/?pay_for_order=true&key=wc_order_blahblahblah) (meaning that if a user had TFA activated, login would fail).
617 * TWEAK: Prevent a PHP notice if AUTH_SALT was not defined (on some very old WP installs)
618
619 = 1.3.9 - 30/Oct/2018 =
620
621 * SECURITY: If you were not using the recommended option of requiring 2FA for XMLRPC requests, then an attacker could potentially also bypass requirements for 2FA on ordinary logins (i.e. only need the password). Such users will want to immediately update, though we recommend that all users do. This vulnerability was inherited from the original "Two Factor Auth" plugin that this plugin was forked from, and so is present in all versions before this one.
622
623 = 1.3.8 - 25/Oct/2018 =
624
625 * TWEAK: Update the updater class in the Premium version to the current release (1.5.6)
626
627 = 1.3.7 - 15/Oct/2018 =
628
629 * TWEAK: Try to mitigate plugins on the login page which cause JavaScript exceptions by enqueuing our scripts earlier.
630
631 = 1.3.6 - 04/Oct/2018 =
632
633 * TWEAK: Add attribute autocomplete="off" on the WooCommerce login form TFA field (was already present for regular WP login form)
634 * TRANSLATION: Added Portuguese (Brazilian) translation, courtesy of Dino Marchiori
635
636 = 1.3.5 - 02/Oct/2018 =
637
638 * TWEAK: Some code-styling consistency clean-ups
639 * TWEAK: Allow one more window's tolerance by default for codes from devices running fast
640
641 = 1.3.4 - 11/Sep/2018 =
642
643 * FIX: Sometimes a TML widget login form could fail to work because of a changed/unexpected DOM tree
644 * FIX: Some further breakage in TML had occurred, causing login buttons to require to be pressed twice
645
646 = 1.3.3 - 31/Jul/2018 =
647
648 * FIX: Restore support for "Theme My Login", which had been broken by unannounced changes in TML 7.x
649 * TRANSLATIONS: Update .pot file
650
651 = 1.3.2 - 31/May/2018 =
652
653 * TWEAK: Add the simbatfa_check_tfa_requirements_ajax_response and simbatfa_verify_code_and_user_result filters to allow over-riding of the response to the "TFA required?" question and the TFA check itself by developers
654
655 = 1.3.1 - 25/May/2018 =
656
657 * FIX: The WooCommerce 3.3+ login form was requiring two clicks on the 'Log In' button
658 * TWEAK: The progress spinner had disappeared on WooCommerce 3.3+
659
660 = 1.3.0 - 05/Apr/2018 =
661
662 * FEATURE: (Premium version) Integration with the WP-Members login form, https://wordpress.org/plugins/wp-members/ . N.B. WP-Members does not pass on the real error message upon a login failure, but displays its own hard-coded message that the username/password were wrong; so you'll see this even if it was really the TFA code that was wrong.
663 * TWEAK: Change the permission check for editing other users (Premium version) to edit_users (instead of the previous update_plugins, intended just as a proxy for "is an admin")
664 * TWEAK: Stop using the deprecated jQuery.parseJSON method
665 * TWEAK: Change a string that was not in a translatable form
666 * TWEAK: Update the updater class in the Premium version to the current release (1.5.1)
667
668 = 1.2.35 - 28/Nov/2017 =
669
670 * TWEAK: Upon front-end settings save, do jQuery(document).trigger('tfa_settings_saved'), allowing the user to respond to the action (e.g. reload page)
671 * TWEAK: Suppress mcrypt deprecation notices on PHP 7.1 (we already know it is deprecated, and already use openssl if it is not installed)
672
673 = 1.2.34 - 08/Nov/2017 =
674
675 * TWEAK: Remove calls to the deprecated screen_icon() function
676 * TWEAK: Remove some unnecessary bundled translation files
677 * TWEAK: Add some translation files not previously included in the Premium version
678 * TWEAK: Update bundled Premium updater library to current (1.5.0)
679
680 = 1.2.33 - 09/Oct/2017 =
681
682 * FIX: The available/required settings for super-admins on multisite installs were not saving (Premium feature)
683 * FIX: When the admin fetched another user's current QR code, it embedded the wrong username (which was a cosmetic issue only - the code itself was correct) (Premium feature)
684
685 = 1.2.32 - 06/Oct/2017 =
686
687 * TWEAK: Update bundled updater in Premium to latest version (1.4.8)
688
689 = 1.2.31 - 05/Oct/2017 =
690
691 * FEATURE: (Relevant to Premium version): Automatically generate new emergency codes when they run out, including upon view of settings if there are none (e.g. on upgrade from free to Premium)
692 * TWEAK: Code-styling consistency tweaks
693
694 = 1.2.30 - 18/Sep/2017 =
695
696 * FIX: TML shortcode forms were not working properly for non-TFA users
697
698 = 1.2.29 - 16/Sep/2017 =
699
700 * FIX: Prevent double-show of TFA field on TML default login page (regression)
701 * FIX: Restore functionality on TML shortcode forms (regression, likely due to changes in TML)
702 * TWEAK: Restore the spinner to proper size on all forms
703 * TWEAK: A few very minor code style clean-ups
704
705 = 1.2.27 - 29/Aug/2017 =
706
707 * TWEAK: Add the new 'PHP Requires' header to readme.txt
708 * TWEAK: Correct a couple of wrong translation domain references
709
710 = 1.2.26 - 08/Aug/2017 =
711
712 * FIX: Do not request TFA code on TML reset password form (regression, likely due to changes in TML)
713 * APOLOGIES: 1.2.25 was a faulty release that would block logins. You should immediately update.
714
715 = 1.2.24 - 05/Aug/2017 =
716
717 * TWEAK: Update to the latest version of the updater library (Premium)
718
719 = 1.2.23 - 15/Jun/2017 =
720
721 * TWEAK: Allow admins to reset users' private keys (Premium)
722
723 = 1.2.22 - 23/May/2017 =
724
725 * TWEAK: Update updater library to current version (Premium)
726 * TWEAK: Use higher-quality spinner image
727 * COMPATIBILITY: Mark as compatible with WP 4.8
728
729 = 1.2.21 - 22/Feb/2017 =
730
731 * TWEAK: Update jquery-qrcode library to latest release (0.14.0)
732 * TWEAK: Explicitly encode spaces in WordPress usernames (apparently resolves a problem with a particular iPhone app)
733
734 = 1.2.20 - 17/Feb/2017 =
735
736 * TWEAK: Work around a bug seen with strlen() on one particular PHP install
737 * FIX: The line purporting to show the current UTC time was in fact taking your WordPress timezone into account. It has now been adjusted to show both to avoid ambiguity.
738 * FIX: 1.2.18 used a PHP 5.4+ only function, whereas we support PHP 5.3+
739
740 = 1.2.17 - 09/Feb/2017 =
741
742 * FIX: Fix support for login widgets from Theme My Login
743
744 = 1.2.16 - 30/Jan/2016 =
745
746 * FIX: Fix issue whereby if you were already logged in and managed to visit a login form, you would not be asked for a TFA code
747
748 = 1.2.15 - 23/Jan/2017 =
749
750 * FEATURE: Add support for login widgets from Theme My Login
751 * UPDATER: (Premium version): update to the latest updater class, including the new ability to automatically update
752
753 = 1.2.14 - 02/Jan/2017 =
754
755 * TWEAK: Add missing internationalisation headers to the main plugin file
756
757 = 1.2.13 - 31/Aug/2016 =
758
759 * TWEAK: Internationalisation implementation was not previously compatible with wordpress.org's translation system
760
761 = 1.2.12 - 20/May/2016 =
762
763 * FEATURE: Compatibility with https://wordpress.org/plugins/use-administrator-password/ - when TFA is enabled on an account, the TFA credentials of the user whose password was supplied are allowed (and required)
764
765 = 1.2.11 - 18/May/2016 =
766
767 * TWEAK: Update bundled select2 to version 4.0.2
768 * FIX: If the [twofactor_user_qrcode] shortcode (Premium version) was used without other short-codes, then the code would not display
769
770 = 1.2.10 - 31/Mar/2016 =
771
772 * TWEAK: Prefer openssl, if present, to the deprecated mcrypt. Note that if you migrate a site from a server without openssl to a server without mcrypt, then because of mcrypt's non-compliant padding, you will need to either install php-mcrypt on the new server, or disable TFA (via define('TWO_FACTOR_DISABLE', true); in your wp-config.php) to allow users to be able to log in. This also applies if the source site did have openssl, but for users who hadn't logged in since installing this update.
773 * TWEAK: Make the $simba_two_factor_authentication_premium object globally available
774 * COMPATIBILITY: Mark as tested on WP 4.5
775
776 = 1.2.8 - 12/Dec/2015 =
777
778 * FEATURE: Add support for the Affiliates-WP login form
779 * TWEAK: Defeat WooCommerce loading an old version of the select2 script onto the TFA settings page, and breaking the user selector (should work this time)
780
781 = 1.2.6 - 11/Nov/2015 =
782
783 * TWEAK: Defeat WooCommerce loading an old version of the select2 script onto the TFA settings page, and breaking the user selector
784 * TWEAK: Tested on WordPress 4.4
785 * TWEAK: Use h1 for heading style on admin page, not h2
786 * FIX: The "You'll need to use TFA to login in future" link for users for whom TFA is compulsory (Premium) was to the wrong page
787
788 = 1.2.4 - 09/Nov/2015 =
789
790 * TWEAK: Make window settings filterable
791
792 = 1.2.3 - 19/Oct/2015 =
793
794 * FIX: Fix bug in 1.2.2 that could lock out users without TFA settings
795
796 = 1.2.2 - 16/Oct/2015 =
797
798 * TWEAK: Display dashboard notice if TWO_FACTOR_DISABLE is defined in wp-config.php, to prevent time wasted wondering why nothing is happening
799
800 = 1.2.1 - 08/Oct/2015 =
801
802 * FEATURE: (Premium version) - Require users (of configured roles) to use TFA (optionally after a configurable amount of time)
803
804 = 1.1.21 - 25/Aug/2015 =
805
806 * TRANSLATIONS: Translation files can now be used (translators welcome!)
807 * TRANSLATION: Swedish translation added, courtesy of Bo Sving
808
809 = 1.1.19 - 20/Aug/2015 =
810
811 * TWEAK: Remove a pointless nonce check
812
813 = 1.1.18 - 01/Aug/2015 =
814
815 * COMPATIBILITY: Tested with WP 4.3 (RC1) and WooCommerce 2.4 (RC1) - no issues found (i.e. previous releases believed to be already compatible)
816 * FIX: When the admin is showing codes for other users, QR codes were not displaying correctly since 1.1.13
817
818 = 1.1.17 - 22/May/2015 =
819
820 * TWEAK: Introduce convenience method for developers wanting to verify that TFA is active (Premium)
821 * FIX: Fix operation of [twofactor_conditional] shortcode (Premium)
822 * FIX: Fix fatal error introduced in convenience method in 1.1.16
823
824 = 1.1.15 - 13/May/2015 =
825
826 * FIX: Fix conflict with 'reset password' form with "Theme My Login" plugin
827
828 = 1.1.14 - 12/May/2015 =
829
830 * FIX: Add TFA support to the WooCommerce login-on-checkout form (previously, TFA-enabled users could not log in using it)
831
832 = 1.1.13 - 11/May/2015 =
833
834 * TWEAK: Use jquery-qrcode to generate QR codes, replacing external dependency on Google
835 * TWEAK: Update bundled select2 library to 4.0.0 release (was rc2)
836
837 = 1.1.12 - 22/Apr/2015 =
838
839 * FIX: Fix corner-case where the user's login looked like an email address, but wasn't the account address. In this case, a OTP password was always requested.
840 * FIX: When the username does not exist, front-end should not request TFA code.
841
842 = 1.1.11 - 21/Apr/2015 =
843
844 * TWEAK: Prevent PHP notice if combining with bbPress
845 * TWEAK: Added more console logging if TFA AJAX request fails
846 * TWEAK: Add some measures to overcome extraneous PHP output breaking the AJAX conversation (e.g. when using strict debugging)
847
848 = 1.1.10 - 20/Apr/2015 =
849
850 * SECURITY: Fix possible non-persistent XSS issue in admin area (https://blog.sucuri.net/2015/04/security-advisory-xss-vulnerability-affecting-multiple-wordpress-plugins.html)
851 * FIX: Don't get involved on "lost password" forms (intermittent issue with "Theme My Login")
852
853 = 1.1.9 - 15/Apr/2015 =
854
855 * TESTING: Tested with "Theme My Login" - http://wordpress.org/plugins/theme-my-login/ - no issues
856 * TWEAK: Do a little bit of status logging to the browser's developer console on login forms, to help debugging any issues
857 * TWEAK: Add a spinner on login forms whilst TFA status is being checked (WP 3.8+)
858 * TWEAK: Make sure that scripts are versioned, to prevent updates not being immediately effective
859 * TWEAK: Make sure OTP field on WooCommerce login form receives focus automatically
860
861 = 1.1.8 - 14/Apr/2015 =
862
863 * FIX: Fix an issue on sites that forced SSL access to admin area, but not to front-end, whereby AJAX functions could fail (e.g. showing latest code)
864 * FIX: Version number was not shown correctly in admin screen since 1.1.5
865 * TWEAK: Show proper plugin URI
866
867 = 1.1.7 - 10/Apr/2015 =
868
869 * FIX: Fix plugin compatibility with PHP 5.6
870 * FIX: TFA was always made active on XMLRPC, even when the user turned it off
871
872 = 1.1.6 - 09/Apr/2015 =
873
874 * TWEAK: Change various wordings to make things clearer for new-comers to two-factor authentication.
875
876 = 1.1.5 - 07/Apr/2015 =
877
878 * FEATURE: Admin users (Premium version) can show codes belonging to other users, and activate or de-activate TFA for other users.
879 * PREMIUM: Premium version has now been released: https://www.simbahosting.co.uk/s3/product/two-factor-authentication/. Features emergency codes, personal support, and more short-codes allowing you to custom-design your own front-end page for users.
880 * TWEAK: Premium version now contains support link to the proper place (not to wordpress.org's free forum)
881 * TWEAK: Added a constant, TWO_FACTOR_DISABLE. Define this in your wp-config.php to disable all TFA requirements.
882 * FIX: Fix a bug introduced in version 1.1.2 that could prevent logins on SSL-enabled sites on the WooCommerce form when not accessed over SSL
883
884 = 1.1.3 - 04/Apr/2015 =
885
886 * TWEAK: Provide "Settings saved" notice when user's settings are saved in the admin area (otherwise the user may be wondering).
887
888 = 1.1.2 - 03/Apr/2015 =
889
890 * FIX: Include blockUI JavaScript (the lack of which caused front-end options not to save if you did not have WooCommerce or another plugin that already used blockUI installed)
891 * FEATURE: Don't show anything on the WooCommerce login form unless user is using 2FA (i.e. behave like WP login form)
892 * FEATURE: Added 9 new shortcodes for custom-designed front-end screens (Premium - forthcoming)
893
894 = 1.1.1 - 30/Mar/2015 =
895
896 * Support added for multisite installs. (Plugin should be network-activated).
897 * Support added for super-admin role (it's not a normal WP role internally, so needs custom handling)
898 * Tested + compatible on upcoming WP 4.2 (tested on Beta 3)
899 * Re-add option to require 2FA over XMLRPC (without specific code, XMLRPC clients don't/can't use 2FA - but requiring it effectively blocks hackers who want to crack your password by using this weakness in XMLRPC)
900
901 = 1.0 - 20/Mar/2015 =
902
903 * First version, forked from Oskar Hane's https://wordpress.org/plugins/two-factor-auth/
904 * Support for email "two-factor" removed (email isn't really a second factor, unless you have multiple email accounts and guard where your "lost login" emails go to)
905 * WooCommerce support added to the main plugin. Load WooCommerce JavaScript only on pages where it is needed.
906 * Use AJAX to refresh current code (rather than reloading the whole page)
907 * Added WordPress nonces and user permission checks in relevant places
908 * Shortcode twofactor_user_settings added, for front-end settings
909 * User interface simplified/de-cluttered
910
911 == Upgrade Notice ==
912 * 1.15.5 : Support RegistrationMagic. Fix regression in 1.15.1 in display of options. A recommended update for all.
913