Ejemplo n.º 1
0
 /**
  * Зарегистрироваться в системе
  *
  * @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;
 }
Ejemplo n.º 2
0
 /**
  * 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();
 }
Ejemplo n.º 3
0
 public function errorAction()
 {
     $this->app->error();
 }