Пример #1
0
 static function auth($login, $password)
 {
     $ret = false;
     $login = system::checkVar($login, isString);
     $sel = new ormSelect('user');
     $sel->where($sel->val('active', '=', 1), $sel->val('login', '=', trim($login)), $sel->containedIn('user_group', $sel->val('active', '=', 1)));
     $sel->limit(1);
     if (self::$obj = $sel->getObject()) {
         if (self::$obj->password == system::checkVar($password, isPassword)) {
             $ret = self::authHim(self::$obj);
         } else {
             $max_error = reg::getKey('/users/errorCountBlock');
             //Смотрим, если у юзера уже N неправильных паролей, то блокируем его
             if (self::$obj->error_passw + 1 >= $max_error && $max_error > 0) {
                 self::$obj->active = 0;
                 self::sendMailBlock(self::$obj);
             }
             self::$obj->error_passw++;
             self::$obj->save();
             if (!self::$obj->active) {
                 //записываем что пользователь заблокирован по своей дурости из-за не знания пароля
                 system::log(str_replace('%user%', $login, str_replace('%count%', $max_error, lang::get('BLOCKED_USER'))), error);
             } else {
                 //Записываем в журнал о неправильном вводе пароля
                 system::log(str_replace('%user%', $login, lang::get('ERROR_PASSWORD')), error);
             }
         }
     }
     return $ret;
 }