function add($user_id, $cause) { if (strlen(trim($cause))) { $userModel = new UserModel(); $currentUser = Project::getUser()->getDbUser(); $userModel->load($user_id); if ($userModel->id) { $banHistoryModel = new BanHistoryModel(); $paramModel = new ParamModel(); $n_warnings_to_ban = $paramModel->getParam("UserController", "N_WARNINGS_TO_BAN"); $t_ban_time_sec = $paramModel->getParam("UserController", "T_BAN_TIME_SEC"); $count_user_warnings = $this->getUserWarningCount($user_id); $this->clear(); $this->user_id = (int) $user_id; $this->cause = $cause; $warning_id = $this->save(); if ($userModel->warnings_fromlast_ban + 1 >= $n_warnings_to_ban) { // пора банить $subject = "Ваш аккаун заблокирован в системе Next24.ru"; $userModel->warnings_fromlast_ban = 0; $userModel->banned = 1; $userModel->banned_date = time(); $banHistoryModel->ban($user_id, $currentUser->id, $warning_id, date("Y-m-d H:i:s", time() + $t_ban_time_sec)); } else { $userModel->warnings_fromlast_ban = $userModel->warnings_fromlast_ban + 1; $subject = "Администратор Next24.ru установил Вам предупреждение"; } $userModel->save(); $url_referer = $_SERVER['HTTP_REFERER']; $this->sendMessage((int) $user_id, $subject, $cause, $url_referer); return $warning_id; } } return 0; }
public function checkForUserBans($user) { $banHistoryModel = new BanHistoryModel(); $paramModel = new ParamModel(); if ($user['banned'] || $banHistoryModel->isBanned($user['id'])) { // если забанен , проверить может уже все $t_ban_time_sec = $paramModel->getParam("UserController", "T_BAN_TIME_SEC"); if (time() > $user['banned_date'] + $t_ban_time_sec) { $this->load($user['id']); $this->banned = 0; $this->save(); $banHistoryModel->unban($user['id'], 1); } else { Project::getSecurityManager()->logout(); Project::getResponse()->redirect(Project::getRequest()->createUrl('User', 'Login', null, false) . "/error:ban/login:" . $user['login']); } } }
public function getCommonParam($param_name, $default = null) { $model = new ParamModel(); $param_value = $model->getParam(null, $param_name); return $param_value === null ? $default : $param_value; }