v1.0.1
This commit is contained in:
parent
212d64abfa
commit
b8e17df2db
17 changed files with 1145 additions and 732 deletions
|
|
@ -173,7 +173,7 @@ class Two_Factor_Extended_Network_Settings {
|
|||
type="number"
|
||||
id="network_grace_period"
|
||||
name="network_settings[grace_period_days]"
|
||||
value="<?php echo esc_attr( $settings['grace_period_days'] ?? 7 ); ?>"
|
||||
value="<?php echo esc_attr( (string) ( isset( $settings['grace_period_days'] ) && is_numeric( $settings['grace_period_days'] ) ? (int) $settings['grace_period_days'] : 7 ) ); ?>"
|
||||
min="0"
|
||||
max="365"
|
||||
class="small-text"
|
||||
|
|
@ -204,11 +204,11 @@ class Two_Factor_Extended_Network_Settings {
|
|||
*
|
||||
* @since 0.1.0
|
||||
*
|
||||
* @param array $settings Current network settings.
|
||||
* @param array<string, mixed> $settings Current network settings.
|
||||
*/
|
||||
private function render_super_admin_requirements( array $settings ): void {
|
||||
$providers = Two_Factor_Extended_Provider_Detector::get_provider_names();
|
||||
$super_admin_reqs = $settings['super_admin_requirements'] ?? array();
|
||||
$providers = Two_Factor_Extended_Provider_Detector::get_provider_names();
|
||||
$super_admin_reqs = isset( $settings['super_admin_requirements'] ) && is_array( $settings['super_admin_requirements'] ) ? $settings['super_admin_requirements'] : array();
|
||||
|
||||
if ( empty( $providers ) ) {
|
||||
?>
|
||||
|
|
@ -244,12 +244,12 @@ class Two_Factor_Extended_Network_Settings {
|
|||
*
|
||||
* @since 0.1.0
|
||||
*
|
||||
* @param array $settings Current network settings.
|
||||
* @param array<string, mixed> $settings Current network settings.
|
||||
*/
|
||||
private function render_network_role_requirements( array $settings ): void {
|
||||
$roles = Two_Factor_Extended_Role_Manager::get_all_roles();
|
||||
$providers = Two_Factor_Extended_Provider_Detector::get_provider_names();
|
||||
$network_reqs = $settings['role_requirements'] ?? array();
|
||||
$network_reqs = isset( $settings['role_requirements'] ) && is_array( $settings['role_requirements'] ) ? $settings['role_requirements'] : array();
|
||||
|
||||
if ( empty( $providers ) ) {
|
||||
?>
|
||||
|
|
@ -274,7 +274,7 @@ class Two_Factor_Extended_Network_Settings {
|
|||
<td><strong><?php echo esc_html( $role_name ); ?></strong></td>
|
||||
<td>
|
||||
<?php
|
||||
$role_reqs = $network_reqs[ $role_slug ] ?? array();
|
||||
$role_reqs = isset( $network_reqs[ $role_slug ] ) && is_array( $network_reqs[ $role_slug ] ) ? $network_reqs[ $role_slug ] : array();
|
||||
|
||||
foreach ( $providers as $class => $name ) :
|
||||
?>
|
||||
|
|
@ -308,7 +308,7 @@ class Two_Factor_Extended_Network_Settings {
|
|||
}
|
||||
|
||||
// Verify nonce.
|
||||
$nonce = isset( $_POST['two_factor_extended_network_nonce'] )
|
||||
$nonce = isset( $_POST['two_factor_extended_network_nonce'] ) && is_string( $_POST['two_factor_extended_network_nonce'] )
|
||||
? sanitize_text_field( wp_unslash( $_POST['two_factor_extended_network_nonce'] ) )
|
||||
: '';
|
||||
|
||||
|
|
@ -344,7 +344,7 @@ class Two_Factor_Extended_Network_Settings {
|
|||
*
|
||||
* @since 0.1.0
|
||||
*
|
||||
* @return array Network settings.
|
||||
* @return array<string, mixed> Network settings.
|
||||
*/
|
||||
public function get_network_settings(): array {
|
||||
$defaults = array(
|
||||
|
|
@ -357,6 +357,10 @@ class Two_Factor_Extended_Network_Settings {
|
|||
|
||||
$settings = get_site_option( TWO_FACTOR_EXTENDED_NETWORK_OPTION_SETTINGS, array() );
|
||||
|
||||
if ( ! is_array( $settings ) ) {
|
||||
$settings = array();
|
||||
}
|
||||
|
||||
return wp_parse_args( $settings, $defaults );
|
||||
}
|
||||
|
||||
|
|
@ -365,9 +369,9 @@ class Two_Factor_Extended_Network_Settings {
|
|||
*
|
||||
* @since 0.1.0
|
||||
*
|
||||
* @param array $input Raw input.
|
||||
* @param array<string, mixed> $input Raw input.
|
||||
*
|
||||
* @return array Sanitized settings.
|
||||
* @return array<string, mixed> Sanitized settings.
|
||||
*/
|
||||
private function sanitize_network_settings( array $input ): array {
|
||||
$sanitized = array();
|
||||
|
|
@ -379,14 +383,19 @@ class Two_Factor_Extended_Network_Settings {
|
|||
$sanitized['allow_site_override'] = ! empty( $input['allow_site_override'] );
|
||||
|
||||
// Grace period days.
|
||||
if ( isset( $input['grace_period_days'] ) ) {
|
||||
if ( isset( $input['grace_period_days'] ) && is_numeric( $input['grace_period_days'] ) ) {
|
||||
$days = (int) $input['grace_period_days'];
|
||||
$sanitized['grace_period_days'] = max( 0, min( 365, $days ) );
|
||||
}
|
||||
|
||||
// Super admin requirements.
|
||||
if ( isset( $input['super_admin_requirements'] ) && is_array( $input['super_admin_requirements'] ) ) {
|
||||
$sanitized['super_admin_requirements'] = array_map( 'sanitize_text_field', $input['super_admin_requirements'] );
|
||||
$sanitized['super_admin_requirements'] = array_map(
|
||||
function ( mixed $item ): string {
|
||||
return sanitize_text_field( is_string( $item ) ? $item : '' );
|
||||
},
|
||||
$input['super_admin_requirements']
|
||||
);
|
||||
}
|
||||
|
||||
// Role requirements.
|
||||
|
|
@ -394,10 +403,15 @@ class Two_Factor_Extended_Network_Settings {
|
|||
$sanitized['role_requirements'] = array();
|
||||
|
||||
foreach ( $input['role_requirements'] as $role => $providers ) {
|
||||
$role_slug = sanitize_key( $role );
|
||||
$role_slug = sanitize_key( is_string( $role ) ? $role : '' );
|
||||
|
||||
if ( Two_Factor_Extended_Role_Manager::role_exists( $role_slug ) && is_array( $providers ) ) {
|
||||
$sanitized['role_requirements'][ $role_slug ] = array_map( 'sanitize_text_field', $providers );
|
||||
$sanitized['role_requirements'][ $role_slug ] = array_map(
|
||||
function ( mixed $item ): string {
|
||||
return sanitize_text_field( is_string( $item ) ? $item : '' );
|
||||
},
|
||||
$providers
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue