PluginProbe
Defender Security – Malware Scanner, Login Security & Firewall / 6.2.3
Defender Security – Malware Scanner, Login Security & Firewall v6.2.3
6.2.3 6.2.4 6.2.0 6.2.1 6.2.2 6.1.0 5.3.1 5.4.0 5.4.1 5.5.0 5.5.1 5.6.0 5.6.1 5.6.2 5.7.0 5.7.1 5.7.2 5.8.0 5.8.1 5.9.0 6.0.0 6.0.1 3.0.1 3.1.0 3.1.1 All 140 releases
defender-security / src / model / setting / class-password-reset.php

class-password-reset.php in Defender Security – Malware Scanner, Login Security & Firewall 6.2.3, at src/model/setting/class-password-reset.php

124 lines 2.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Handle password reset settings.
4 *
5 * @package WP_Defender\Model\Setting
6 */
7
8 namespace WP_Defender\Model\Setting;
9
10 use Calotes\Model\Setting;
11
12 /**
13 * Model for password reset settings.
14 */
15 class Password_Reset extends Setting {
16
17 /**
18 * Option name.
19 *
20 * @var string
21 */
22 protected $table = 'wd_password_reset_settings';
23
24 /**
25 * List of user roles.
26 *
27 * @var array
28 * @defender_property
29 */
30 public $user_roles = array();
31
32 /**
33 * Message for password reset.
34 *
35 * @var string
36 * @defender_property
37 * @sanitize sanitize_textarea_field
38 */
39 public $message = '';
40
41 /**
42 * Force password reset expired?
43 *
44 * @var bool
45 * @defender_property
46 */
47 public $expire_force = false;
48
49 /**
50 * Force password reset time.
51 *
52 * @var int
53 * @defender_property
54 */
55 public $force_time;
56
57 /**
58 * Get default values.
59 *
60 * @return array
61 */
62 public function get_default_values(): array {
63 return array(
64 'message' => esc_html__(
65 'You are required to change your password to a new one to use this site.',
66 'defender-security'
67 ),
68 );
69 }
70
71 /**
72 * Loads default values and sets the user roles based on the availability of the `get_editable_roles` function.
73 *
74 * @return void
75 */
76 protected function before_load(): void {
77 $default_values = $this->get_default_values();
78 // Default we will load all rules.
79 if ( function_exists( 'get_editable_roles' ) ) {
80 // We only need this inside admin, no need to load the user.php everywhere.
81 $this->user_roles = array_keys( get_editable_roles() );
82 } else {
83 // Define defaults user roles.
84 $this->user_roles = array( 'administrator' );
85 }
86 $this->message = $default_values['message'];
87 }
88
89 /**
90 * Define settings labels.
91 *
92 * @return array
93 */
94 public function labels(): array {
95 return array(
96 'user_roles' => esc_html__( 'User Roles', 'defender-security' ),
97 'message' => esc_html__( 'Message', 'defender-security' ),
98 );
99 }
100
101 /**
102 * Checks for active feature: 'expire_force', one role at least and there is a reset time.
103 *
104 * @return bool
105 */
106 public function is_active(): bool {
107 $active = apply_filters(
108 'wd_password_reset_active',
109 $this->expire_force && count( $this->user_roles ) > 0 && $this->force_time > 0
110 );
111
112 return is_bool( $active ) ? $active : (bool) $active;
113 }
114
115 /**
116 * Returns the module name for Password Reset.
117 *
118 * @return string The module name.
119 */
120 public static function get_module_name(): string {
121 return esc_html__( 'Password Reset', 'defender-security' );
122 }
123 }
124