PluginProbe
Loginizer / 2.0.9
Loginizer v2.0.9
2.1.0 2.0.9 2.0.8 1.9.8 1.9.9 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 trunk 1.0 1.0.1 1.0.2 1.1.0 1.1.1 1.2.0 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 All 74 releases
← All changes | main/settings/2fa.php +63 -10 2.0.32.0.9 View file →
@@ -13,9 +13,9 @@
13 13 wp_die('Sorry, but you do not have permissions to change settings.');
14 14 }
15 15
16 16 if(!loginizer_is_premium() && count($_POST) > 0){
17 - $lz_error['not_in_free'] = __('This feature is not available in the Free version. <a href="'.LOGINIZER_PRICING_URL.'" target="_blank" style="text-decoration:none; color:green;"><b>Upgrade to Pro</b></a>', 'loginizer');
17 + $lz_error['not_in_free'] = __('This feature is not available in the Free version.', 'loginizer').'<a href="'.LOGINIZER_PRICING_URL.'" target="_blank" style="text-decoration:none; color:green;"><b>'.esc_html__('Upgrade to Pro', 'loginizer').'</b></a>';
18 18 return loginizer_page_2fa_T();
19 19 }
20 20
21 21 $lz_roles = get_editable_roles();
@@ -37,8 +37,10 @@
37 37 $option['2fa_email'] = (int) lz_optpost('2fa_email');
38 38 $option['question'] = (int) lz_optpost('question');
39 39 $option['2fa_email_force'] = (int) lz_optpost('2fa_email_force');
40 40
41 + $option['2fa_enforce'] = !empty($_POST['lz_2fa_enforce']) ? map_deep(wp_unslash($_POST['lz_2fa_enforce']), 'sanitize_text_field') : [];
42 +
41 43 // Any roles to apply to ?
42 44 foreach($lz_roles as $k => $v){
43 45
44 46 if(lz_optpost('2fa_roles_'.$k)){
@@ -273,9 +275,17 @@
273 275 // Loginizer - Two Factor Auth Page
274 276 function loginizer_page_2fa_T(){
275 277
276 278 global $loginizer, $lz_error, $lz_env, $lz_roles, $lz_options, $saved_msgs;
279 +
280 + $enforce_reg = get_option('loginizer_2fa', [
281 + '2fa_enforce' => []
282 + ]);
283 +
284 + $enforce_type = !empty($enforce_reg['2fa_enforce']['type']) ? sanitize_text_field(wp_unslash($enforce_reg['2fa_enforce']['type'])) : 'none';
285 + $force_email_2fa = lz_POSTchecked('2fa_email_force', (empty($loginizer['2fa_email_force']) ? false : true), 'save_lz');
277 286
287 +
278 288 // Universal header
279 289 loginizer_page_header('Two Factor Authentication');
280 290
281 291 loginizer_feature_available('Two-Factor Authentication');
@@ -281,9 +291,9 @@
281 291 loginizer_feature_available('Two-Factor Authentication');
282 292
283 293 // Saved ?
284 294 if(!empty($GLOBALS['lz_saved'])){
285 - echo '<div id="message" class="updated"><p>'. __(is_string($GLOBALS['lz_saved']) ? $GLOBALS['lz_saved'] : 'The settings were saved successfully', 'loginizer'). '</p></div><br />';
295 + echo '<div id="message" class="updated"><p>'. (is_string($GLOBALS['lz_saved']) ? $GLOBALS['lz_saved'] : __('The settings were saved successfully', 'loginizer')). '</p></div><br />';
286 296 }
287 297
288 298 // Any errors ?
289 299 if(!empty($lz_error)){
@@ -359,9 +369,9 @@
359 369 <label><?php echo __('Force OTP via Email', 'loginizer'); ?></label><br>
360 370 <span class="exp"><?php echo __('If the user does not have any 2FA method selected, this will enforce the OTP via Email for the users.', 'loginizer'); ?></span>
361 371 </td>
362 372 <td>
363 - <input type="checkbox" value="1" name="2fa_email_force" <?php echo lz_POSTchecked('2fa_email_force', (empty($loginizer['2fa_email_force']) ? false : true), 'save_lz'); ?> />
373 + <input type="checkbox" value="1" name="2fa_email_force" id="lz_email_2fa_enforce" <?php echo lz_POSTchecked('2fa_email_force', (empty($loginizer['2fa_email_force']) ? false : true), 'save_lz'); ?> />
364 374 </td>
365 375 </tr>
366 376 <tr>
367 377 <td scope="row" valign="top" style="width:70% !important">
@@ -368,9 +378,9 @@
368 378 <label><?php echo __('Apply 2FA to Roles', 'loginizer'); ?></label><br>
369 379 <span class="exp"><?php echo __('Select the Roles to which 2FA should be applied.', 'loginizer'); ?></span>
370 380 </td>
371 381 <td>
372 - <input type="checkbox" value="1" onchange="lz_roles_handle()" name="2fa_roles_all" id="2fa_roles_all" <?php echo lz_POSTchecked('2fa_roles_all', (empty($loginizer['2fa_roles']) ? true : false), 'save_lz'); ?> /> All<br />
382 + <input type="checkbox" value="1" onchange="lz_roles_handle()" name="2fa_roles_all" id="2fa_roles_all" <?php echo lz_POSTchecked('2fa_roles_all', (empty($loginizer['2fa_roles']) ? true : false), 'save_lz'); ?> /><?php esc_html_e('All', 'loginizer'); ?><br />
373 383 <?php
374 384
375 385 foreach($lz_roles as $k => $v){
376 386 echo '<span class="lz_roles"><input type="checkbox" value="1" name="2fa_roles_'.$k.'" '.lz_POSTchecked('2fa_roles_'.$k, (empty($loginizer['2fa_roles'][$k]) ? false : true), 'save_lz').' /> '.$v['name'].'<br /></span>';
@@ -379,9 +389,52 @@
379 389 ?>
380 390 </td>
381 391 </tr>
382 392 </table><br />
383 - <center><input name="save_lz" class="button button-primary action" value="<?php echo __('Save Settings', 'loginizer'); ?>" type="submit" /></center>
393 + <?php if(empty($force_email_2fa)){ ?>
394 + <table class="form-table lz_2fa_enforce_block">
395 + <tr>
396 + <td scope="row" valign="top" style="width:50% !important;">
397 + <label><?php echo esc_html__('Enforcement Type', 'loginizer'); ?></label><br />
398 + <span class="description"><?php echo esc_html__('1. Choose Strict Setup to require users to setup 2FA immediately. OR', 'loginizer'); ?></span><br />
399 + <span class="description"><?php echo esc_html__('2. Choose Grace Timed Setup to give users time to complete 2FA', 'loginizer'); ?></span><br />
400 + </td>
401 + <td>
402 + <select name="lz_2fa_enforce[type]" id="lz_2fa_enforce_type">
403 + <option value="none">
404 + <?php echo esc_html__('None', 'loginizer'); ?>
405 + </option>
406 + <option value="strict_enforce" <?php echo (($enforce_type === 'strict_enforce')) ? 'selected' : ''; ?>>
407 + <?php echo esc_html__('Strict (Requires 2FA setup immediately)', 'loginizer'); ?>
408 + </option>
409 + <option value="grace_enforce" <?php echo (($enforce_type === 'grace_enforce')) ? 'selected' : ''; ?>>
410 + <?php echo esc_html__('Grace Period (Give some time to setup)', 'loginizer'); ?>
411 + </option>
412 + </select>
413 + </td>
414 + </tr>
415 + <tr class="lz_2fa_grace_time" <?php echo (($enforce_type !== 'grace_enforce') ? 'style="display:none;"' : ''); ?>>
416 + <td scope="row" valign="top" style="width:50% !important;"></td>
417 + <td>
418 + <input type="number" name="lz_2fa_enforce[time]" min="1" value="<?php echo !empty($enforce_reg['2fa_enforce']['time']) ? esc_attr($enforce_reg['2fa_enforce']['time']) : '1'; ?>" id="" style="width:15% !important;margin-right:15px;">
419 + <input type="radio" name="lz_2fa_enforce[time_unit]" id="lz_2fa_time_d" value="days" <?php checked(!empty($enforce_reg['2fa_enforce']['time_unit']) && ($enforce_reg['2fa_enforce']['time_unit'] == 'days')); ?> checked>
420 + <label for="lz_2fa_time_d"><?php echo esc_html__('days', 'loginizer'); ?></label>
421 + <input type="radio" name="lz_2fa_enforce[time_unit]" id="lz_2fa_time_h" value="hours" <?php checked(!empty($enforce_reg['2fa_enforce']['time_unit']) && ($enforce_reg['2fa_enforce']['time_unit'] == 'hours')); ?>>
422 + <label for="lz_2fa_time_h"><?php echo esc_html__('hours', 'loginizer'); ?></label>
423 + </td>
424 + </tr>
425 + <tr class="lz_2fa_grace_time" <?php echo (($enforce_type !== 'grace_enforce') ? 'style="display:none;"' : ''); ?>>
426 + <td scope="row" valign="top" style="width:50% !important;"></td>
427 + <td>
428 + <label><?php echo esc_html__('What action should be taken if user does not completes the 2FA setup within the grace time.', 'loginizer'); ?></label><br /><br />
429 + <input type="radio" name="lz_2fa_enforce[action]" id="" value="mandatory_setup" <?php checked(!empty($enforce_reg['2fa_enforce']['action']) && ($enforce_reg['2fa_enforce']['action'] == 'mandatory_setup')); ?> checked>
430 + <span><?php echo esc_html__('Make the 2FA setup mandatory for the user.', 'loginizer'); ?></span><br /><br />
431 + <input type="radio" name="lz_2fa_enforce[action]" id="" value="show_notice" <?php checked(!empty($enforce_reg['2fa_enforce']['action']) && ($enforce_reg['2fa_enforce']['action'] == 'show_notice')); ?>>
432 + <span><?php echo esc_html__('Show a notice on login untill 2FA setup is completed.', 'loginizer'); ?></span>
433 + </td>
434 + </tr>
435 + </table><br /><?php } ?>
436 + <center><input name="save_lz" class="button button-primary action" value="<?php echo esc_html__('Save Settings', 'loginizer'); ?>" type="submit" /></center>
384 437 </form>
385 438
386 439 </div>
387 440 </div>
@@ -489,9 +542,9 @@
489 542 </tr>
490 543 <tr>
491 544 <td scope="row" valign="top" style="width:350px !important">
492 545 <label for="msg_otp_app"><?php echo __('OTP via APP','loginizer'); ?></label><br />
493 - <?php echo __('Default: <em>&quot;' . $loginizer['2fa_d_msg']['otp_app']. '&quot;</em>', 'loginizer'); ?>
546 + <?php echo __('Default:', 'loginizer').' <em>&quot;' . $loginizer['2fa_d_msg']['otp_app']. '&quot;</em>'; ?>
494 547 </td>
495 548 <td>
496 549 <input type="text" size="50" value="<?php echo esc_attr(empty($saved_msgs['otp_app']) ? '' : $saved_msgs['otp_app']); ?>" name="msg_otp_app" id="msg_otp_app" style="width:auto !important;" />
497 550 <br />
@@ -499,9 +552,9 @@
499 552 </tr>
500 553 <tr>
501 554 <td scope="row" valign="top" style="width:350px !important">
502 555 <label for="msg_otp_email"><?php echo __('OTP via Email','loginizer'); ?></label><br />
503 - <?php echo __('Default: <em>&quot;' . $loginizer['2fa_d_msg']['otp_email']. '&quot;</em>', 'loginizer'); ?>
556 + <?php echo __('Default:', 'loginizer').' <em>&quot;' . $loginizer['2fa_d_msg']['otp_email']. '&quot;</em>'; ?>
504 557 </td>
505 558 <td>
506 559 <input type="text" size="50" value="<?php echo esc_attr(empty($saved_msgs['otp_email']) ? '' : $saved_msgs['otp_email']); ?>" name="msg_otp_email" id="msg_otp_email" style="width:auto !important;" />
507 560 <br />
@@ -509,9 +562,9 @@
509 562 </tr>
510 563 <tr>
511 564 <td scope="row" valign="top" style="width:350px !important">
512 565 <label for="msg_otp_field"><?php echo __('Title for OTP field','loginizer'); ?></label><br />
513 - <?php echo __('Default: <em>&quot;' . $loginizer['2fa_d_msg']['otp_field']. '&quot;</em>', 'loginizer'); ?>
566 + <?php echo __('Default:', 'loginizer').' <em>&quot;' . $loginizer['2fa_d_msg']['otp_field']. '&quot;</em>'; ?>
514 567 </td>
515 568 <td>
516 569 <input type="text" size="50" value="<?php echo esc_attr(empty($saved_msgs['otp_field']) ? '' : $saved_msgs['otp_field']); ?>" name="msg_otp_field" id="msg_otp_field" style="width:auto !important;" />
517 570 <br />
@@ -519,9 +572,9 @@
519 572 </tr>
520 573 <tr>
521 574 <td scope="row" valign="top" style="width:350px !important">
522 575 <label for="msg_otp_question"><?php echo __('Title for Security Question','loginizer'); ?></label><br />
523 - <?php echo __('Default: <em>&quot;' . $loginizer['2fa_d_msg']['otp_question']. '&quot;</em>', 'loginizer'); ?>
576 + <?php echo __('Default:', 'loginizer').' <em>&quot;' . $loginizer['2fa_d_msg']['otp_question']. '&quot;</em>'; ?>
524 577 </td>
525 578 <td>
526 579 <input type="text" size="50" value="<?php echo esc_attr(empty($saved_msgs['otp_question']) ? '' : $saved_msgs['otp_question']); ?>" name="msg_otp_question" id="msg_otp_question" style="width:auto !important;" />
527 580 <br />
@@ -529,9 +582,9 @@
529 582 </tr>
530 583 <tr>
531 584 <td scope="row" valign="top" style="width:350px !important">
532 585 <label for="msg_otp_answer"><?php echo __('Title for Security Answer','loginizer'); ?></label><br />
533 - <?php echo __('Default: <em>&quot;' . $loginizer['2fa_d_msg']['otp_answer']. '&quot;</em>', 'loginizer'); ?>
586 + <?php echo __('Default:', 'loginizer').' <em>&quot;' . $loginizer['2fa_d_msg']['otp_answer']. '&quot;</em>'; ?>
534 587 </td>
535 588 <td>
536 589 <input type="text" size="50" value="<?php echo esc_attr(empty($saved_msgs['otp_answer']) ? '' : $saved_msgs['otp_answer']); ?>" name="msg_otp_answer" id="msg_otp_answer" style="width:auto !important;" />
537 590 <br />