diff --git a/admin/index.php b/admin/index.php
index b947e57..122f18e 100644
--- a/admin/index.php
+++ b/admin/index.php
@@ -33,23 +33,53 @@ $users = new Table('users');
// Admin login
if (Request::post('login_submit')) {
- $user = $users->select("[login='" . trim(Request::post('login')) . "']", null);
- if (count($user) !== 0) {
- if ($user['login'] == Request::post('login')) {
- if (trim($user['password']) == Security::encryptPassword(Request::post('password'))) {
- if ($user['role'] == 'admin' || $user['role'] == 'editor') {
- Session::set('admin', true);
- Session::set('user_id', (int) $user['id']);
- Session::set('user_login', (string) $user['login']);
- Session::set('user_role', (string) $user['role']);
- Request::redirect('index.php');
+ if (Cookie::get('login_attempts') && Cookie::get('login_attempts') >= 5) {
+
+ $login_error = __('You are banned for 10 minutes. Try again later', 'users');
+
+ } else {
+
+ $user = $users->select("[login='" . trim(Request::post('login')) . "']", null);
+ if (count($user) !== 0) {
+ if ($user['login'] == Request::post('login')) {
+ if (trim($user['password']) == Security::encryptPassword(Request::post('password'))) {
+ if ($user['role'] == 'admin' || $user['role'] == 'editor') {
+ Session::set('admin', true);
+ Session::set('user_id', (int) $user['id']);
+ Session::set('user_login', (string) $user['login']);
+ Session::set('user_role', (string) $user['role']);
+ Request::redirect('index.php');
+ }
+ } else {
+ $login_error = __('Wrong username or password', 'users');
+
+ if (Cookie::get('login_attempts')) {
+ if (Cookie::get('login_attempts') < 5) {
+ $attempts = Cookie::get('login_attempts') + 1;
+ Cookie::set('login_attempts', $attempts, 600);
+ } else {
+ $login_error = __('You are banned for 10 minutes. Try again later', 'users');
+ }
+ } else {
+ Cookie::set('login_attempts', 1, 600);
+ }
+
+ }
+ }
+ } else {
+ $login_error = __('Wrong username or password', 'users');
+
+ if (Cookie::get('login_attempts')) {
+ if (Cookie::get('login_attempts') < 5) {
+ $attempts = Cookie::get('login_attempts') + 1;
+ Cookie::set('login_attempts', $attempts, 600);
+ } else {
+ $login_error = __('You are banned for 10 minutes. Try again later', 'users');
}
} else {
- $login_error = __('Wrong username or password', 'users');
+ Cookie::set('login_attempts', 1, 600);
}
}
- } else {
- $login_error = __('Wrong username or password', 'users');
}
}