????
| Current Path : /home2/morganrand/www/wp-content/plugins/login-ninja/ |
| Current File : /home2/morganrand/www/wp-content/plugins/login-ninja/wf-ln-ajax.php |
<?php
/*
Login Ninja
(c) 2012. Web factory Ltd
http://www.webfactoryltd.com/
*/
class wf_ln_ajax extends wf_login_ninja {
// dialog - Add New Redirect By User
static function callback_add_new_dialog() {
global $wpdb;
echo '<div style="padding: 20px;">';
echo '<p id="redirect-err"></p>';
echo '<label for="username">Username: </label>';
echo '<select id="username" name="username">';
$users = $wpdb->get_results("SELECT ID, user_login, display_name from $wpdb->users ORDER BY display_name");
foreach($users as $user) {
echo "<option value=\"{$user->user_login}\">{$user->display_name}</option>";
}
echo '</select>';
echo '<br/>';
$redirect_types[] = array('val' => '0', 'label' => 'Default (normal) behaviour');
$redirect_types[] = array('val' => '1', 'label' => 'Disable login');
$redirect_types[] = array('val' => '2', 'label' => 'Redirect to a custom URL');
$redirect_types[] = array('val' => '3', 'label' => 'Redirect to a random post');
$redirect_types[] = array('val' => '4', 'label' => 'Redirect to the most recent post');
// Redirect types
echo '<label for="redirect_type">Redirection type: </label>';
echo '<select name="redirect_type" id="redirect_type">';
wf_ln_common::create_select_options($redirect_types, 0);
echo '</select>';
echo '</div>';
die();
} // callback_add_new_dialog
// dialog - Add New Ban
static function callback_add_new_ban() {
global $wpdb;
echo '<div style="padding: 20px;">';
echo '<p id="redirect-err"></p>';
echo '<label for="ip">IP: </label>';
echo '<input type="text" id="ip" name="ip" value="" size="20" />';
echo '<br/>';
$bruteforce_timeouts[] = array('val' => 10, 'label' => '10 minutes');
$bruteforce_timeouts[] = array('val' => 20, 'label' => '20 minutes');
$bruteforce_timeouts[] = array('val' => 30, 'label' => '30 minutes');
$bruteforce_timeouts[] = array('val' => 60, 'label' => '1 hour');
$bruteforce_timeouts[] = array('val' => 120, 'label' => '2 hours');
$bruteforce_timeouts[] = array('val' => 1440, 'label' => '1 day');
$bruteforce_timeouts[] = array('val' => 2880, 'label' => '2 days');
$bruteforce_timeouts[] = array('val' => 10080, 'label' => '7 days');
$bruteforce_timeouts[] = array('val' => 43200, 'label' => '1 month');
$bruteforce_timeouts[] = array('val' => 525600, 'label' => '1 year');
echo '<label for="ban_time">Ban for: </label>';
echo '<select name="ban_time" id="ban_time">';
wf_ln_common::create_select_options($bruteforce_timeouts, 0);
echo '</select>';
echo '<p>IPs are entered in the <i>abc.abc.abc.abc</i> notation. Wildcards (* and %) are not supported and leading zeroes have to be removed. This is not good: <i>192.168.001.017</i>, it should be <i>192.168.1.17</i>.</p>';
echo '</div>';
die();
} // callback_add_new_ban
// callback - save new user redirect
static function callback_save_new_user_redirect() {
$username = trim($_POST['username']);
$redirect_type = trim($_POST['redirect_type']);
$options = wf_login_ninja::fetch_options('users');
if (!is_array($options)) {
$options = array();
}
if (!isset($options[$username])) {
$options[$username]['redirect_type'] = $redirect_type;
update_option(WF_LOGIN_NINJA_OPTIONS_KEY . 'users', $options);
die('1');
} else {
die('Redirection for specified username already exists!');
}
} // callback_save_new_user_redirect
// callback - save new user redirect
static function callback_save_new_ban() {
$ip = substr(trim($_POST['ip']), 0, 15);
$time = trim($_POST['ban_time']);
$bans = wf_login_ninja::fetch_options('banned');
if (!is_array($bans)) {
$bans = array();
}
$bans[$ip] = current_time('timestamp') + $time * 60;
update_option(WF_LOGIN_NINJA_OPTIONS_KEY . 'banned', $bans);
die('1');
} // callback_save_new_user_redirect
// action - delete user redirection
static function callback_delete_user_redirect() {
$username = trim($_POST['username']);
$options = wf_login_ninja::fetch_options('users');
unset($options[$username]);
if (update_option(WF_LOGIN_NINJA_OPTIONS_KEY . 'users', $options)) {
die('1');
} else {
die(0);
}
} // callback_delete_user_redirect
// action - delete single ban
static function callback_delete_ban() {
$ip = trim($_POST['ip']);
$bans = wf_login_ninja::fetch_options('banned');
unset($bans[$ip]);
if (update_option(WF_LOGIN_NINJA_OPTIONS_KEY . 'banned', $bans)) {
die('1');
} else {
die('0');
}
} // callback_delete_ban
// action - truncate log
static function callback_truncate_log() {
global $wpdb;
$truncate = $wpdb->query('TRUNCATE TABLE ' . $wpdb->prefix . WF_LOGIN_NINJA_TABLE);
if ($truncate) {
die('1');
} else {
die('0');
}
} // ajax_callback_truncate_log
} // class wf_ajax
?>