array(
'en' => 'Kleeja Admin Firewall',
'ar' => 'جدار أمني للوحة كليجا'
),
# Who wrote this plugin?
'plugin_developer' => 'Kleeja.com',
# This plugin version
'plugin_version' => '1.0',
# Explain what is this plugin, why should I use it?
'plugin_description' => array(
'en' => 'Ban a user after so many invalid login attempts to Kleeja control panel',
'ar' => 'حظر أي مستخدم يحاول الدخول للوحة كليجا بعد عدة محاولات خاطئة'
),
# Min version of Kleeja that's required to run this plugin
'plugin_kleeja_version_min' => '2.0',
# Max version of Kleeja that support this plugin, use 0 for unlimited
'plugin_kleeja_version_max' => '3.9',
# Should this plugin run before others?, 0 is normal, and higher number has high priority
'plugin_priority' => 0
);
//after installation message, you can remove it, it's not requiered
$kleeja_plugin['kj_ban_admin']['first_run']['ar'] = "
شكراً لاستخدامك هذه الإضافة، قم بمراسلتنا بالأخطاء عند ظهورها على البريد:
info@kleeja.com
لاحظ:
عند حظر عضويتك قم بإزالة الحظر من phpMyAdmin، من جدول klj_stats
";
$kleeja_plugin['kj_ban_admin']['first_run']['en'] = "
Thanks for using this plugin, for bugs reports, contact us at:
info@kleeja.com
Note:
If your user account got banned, remove it using phpMyAdmin, from klj_stats table.
";
# Plugin Installation function
$kleeja_plugin['kj_ban_admin']['install'] = function ($plg_id) {
};
//Plugin update function, called if plugin is already installed but version is different than current
$kleeja_plugin['kj_ban_admin']['update'] = function ($old_version, $new_version) {
// if(version_compare($old_version, '0.5', '<')){
// //... update to 0.5
// }
//
// if(version_compare($old_version, '0.6', '<')){
// //... update to 0.6
// }
//you could use update_config, update_olang
};
# Plugin Uninstallation, function to be called at unistalling
$kleeja_plugin['kj_ban_admin']['uninstall'] = function ($plg_id) {
};
# Plugin functions
$kleeja_plugin['kj_ban_admin']['functions'] = array(
'admin_login_submit_admin_page' => function ($args) {
$ERRORS = $args['ERRORS'];
if(sizeof($ERRORS)){
$_SESSION['kj_ban_admin_attemps'] = !empty($_SESSION['kj_ban_admin_attemps'])
? intval($_SESSION['kj_ban_admin_attemps'])+1
: 1;
}
if(!empty($_SESSION['kj_ban_admin_attemps']) && $_SESSION['kj_ban_admin_attemps'] > 10)
{
global $SQL, $dbprefix, $config;
$query = array(
'SELECT' => 'ban',
'FROM' => "{$dbprefix}stats"
);
$result = $SQL->build($query);
$current_ban_data = $SQL->fetch_array($result);
$current_ban_data = $current_ban_data['ban'];
if(trim($current_ban_data) == ''){
$current_ban_data = get_ip();
}else{
$current_ban_data = rtrim($current_ban_data, '|') . '|'. get_ip();
}
$update_query = array(
'UPDATE' => "{$dbprefix}stats",
'SET' => "ban='" . $SQL->escape($current_ban_data) . "'"
);
$SQL->build($update_query);
if($SQL->affected())
{
delete_cache('data_ban');
}
unset($_SESSION['kj_ban_admin_attemps']);
redirect($config['siteurl']);
}
}
);