array(
'id' => 'basic-auth-plugin-admin-enable',
'title' => 'Enable for wp-admin',
'callback' => 'basic_auth_plugin_admin_enable_cb',
),
'1' => array(
'id' => 'basic-auth-plugin-enable',
'title' => 'Enable for the entire site (only if wp-admin is enabled)',
'callback' => 'basic_auth_plugin_enable_cb',
),
'2' => array(
'id' => 'basic-auth-plugin-username',
'title' => 'Username',
'callback' => 'basic_auth_plugin_username_cb',
),
'3' => array(
'id' => 'basic-auth-plugin-password',
'title' => 'Password',
'callback' => 'basic_auth_plugin_password_cb',
),
'4' => array(
'id' => 'basic-auth-plugin-admin-log-enable',
'title' => 'Enable access logs',
'callback' => 'basic_auth_plugin_admin_log_enable_cb',
),
'5' => array(
'id' => 'basic-auth-plugin-alert-enable',
'title' => 'Enable email alert',
'callback' => 'basic_auth_plugin_alert_enable_cb',
),
'6' => array(
'id' => 'basic-auth-plugin-email-alert',
'title' => 'Email for alert',
'callback' => 'basic_auth_plugin_alertemail_cb',
),
'7' => array(
'id' => 'basic-auth-plugin-white-list',
'title' => 'Ip White list',
'callback' => 'basic_auth_plugin_whitelist_cb',
)
);
public function __construct()
{
}
public function basic_auth_plugin_settings_init() {
register_setting( 'basic-auth-plugin-settings', 'basic_auth_plugin_admin_enable' );
register_setting( 'basic-auth-plugin-settings', 'basic_auth_plugin_enable' );
register_setting( 'basic-auth-plugin-settings', 'basic_auth_plugin_username' );
register_setting( 'basic-auth-plugin-settings', 'basic_auth_plugin_admin_log_enable' );
register_setting( 'basic-auth-plugin-settings', 'basic_auth_plugin_whitelist' );
add_settings_section(
'basic-auth-plugin-section',
__('Configurations for Easy Basic Authentication', 'easy-basic-authentication'),
array($this,'basic_auth_plugin_section_cb'),
'basic-auth-plugin-settings'
);
foreach(self::FORM_FIELD as $field) {
add_settings_field(
$field['id'],
__($field['title'], 'easy-basic-authentication'),
array($this,$field['callback']),
'basic-auth-plugin-settings',
'basic-auth-plugin-section'
);
}
}
public function basic_auth_plugin_section_cb() {
echo __('Configure basic authentication', 'easy-basic-authentication');
}
public function basic_auth_plugin_enable_cb() {
$admin_enable = get_option( 'basic_auth_plugin_admin_enable' );
$enable = get_option( 'basic_auth_plugin_enable' );
?>
>
>
>
>
validateIpList( $white_list ) ) {
update_option( 'basic_auth_plugin_whitelist', $white_list );
} else {
add_settings_error(
'basic_auth_plugin_whitelist',
'basic_auth_plugin_whitelist_error',
__('Invalid whitelist format. Please enter valid email addresses separated by commas.', 'easy-basic-authentication'),
'error'
);
}
}
if ( ! empty( $password ) ) {
$hashed_password = wp_hash_password( $password );
update_option( 'basic_auth_plugin_password', $hashed_password );
}
}
}
public function basic_auth_plugin_settings_page() {
include plugin_dir_path( __FILE__ ) . '../template/settings_page.php';
}
public function validateIpList($white_list) {
$pattern = '/^(\s*(?:\d{1,3}\.){3}\d{1,3}\s*(?:,\s*|$))+$/';
if ( preg_match( $pattern, $white_list ) ) {
return true;
}
return false;
}
}