/** * Зарегистрироваться в системе * * @param string $login * @param string $password * @param boolean $hash использовать функцию для хеширования пароля * @return boolean * @api */ public function login($login, $password, $hash = true) { // хеш пароля if ($hash) { $password = $this->app->hash($password); // $password = hash_hmac($this->app['settings']['crypt.method'], // $password, // $this->app['settings']['crypt.key']); } // находим пользователя из базы $user = $this->checkLogin($login, $password); if (!$user) { $this->status = self::STATUS_USERNAME_INCORRECT; return false; } // если сесии храняться в базе if ($this->map['sid']) { $sidName = $this->map['sid']; $onlineName = $this->map['online']; $d_time = time() - strtotime($user->{$onlineName}); // Имееться ли пользователь уже в системе // для это проверяем имееться ли запись о сесии в базе if ($d_time < $this->dTime && $user->{$sidName}) { if (!$this->checkSidAuth($user->{$sidName})) { $this->status = self::STATUS_SESSION_INCORRECT; return false; } } } // Все хорошо - пользователь найден и он ни где не используеться $this->user = $user; $this->app->session['auth'] = array('user' => $user, 'password' => $password, 'login' => $login, 'online' => time()); $this->setOnline(); return true; }
/** * params: * pkey - primary key (имя первичного ключа) * id - значение первичного ключа * * @param array $params * @return boolean */ public function delete($params = null) { $db = Application::getInstance()->db; $params = (array) $params; $pkey = $params['pkey'] ? $params['pkey'] : $this->getPrimaryKey(); $id = $params['id'] ? $params['id'] : $this->{$pkey}; $q = $db->createDeleteQuery(); $q->deleteFrom($this->getTableName()); $q->where($q->expr->eq($pkey, $db->quote($id))); $stmt = $q->prepare(); return $stmt->execute(); }
public function errorAction() { $this->app->error(); }