PluginProbe
Loginizer / trunk
Loginizer vtrunk
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 +56 -3 2.0.6 → trunk View file →
@@ -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');
@@ -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>