Esempio n. 1
0
 /**
  * @inheritdoc
  * @throws \Micro\Base\Exception
  * @param string $name
  */
 protected function getElement($name)
 {
     $query = new Query($this->driver);
     $query->table = $this->table;
     $query->addWhere('`name`=:name');
     $query->params = ['name' => $name];
     $query->limit = 1;
     $query->single = true;
     return $query->run(\PDO::FETCH_ASSOC);
 }
 public function logined()
 {
     $query = new Query($this->container->db);
     $query->addWhere('login = :login');
     $query->addWhere('pass = :pass');
     $query->params = ['login' => $this->login, 'pass' => md5($this->password)];
     if ($user = User::finder($query, true)) {
         $this->container->session->UserID = $user->id;
         return true;
     } else {
         $this->addError('Логин или пароль не верны.');
         return false;
     }
 }
Esempio n. 3
0
 /**
  * @inheritdoc
  */
 public function validate(IFormModel $model)
 {
     foreach ($this->elements as $element) {
         if (!$model->checkAttributeExists($element)) {
             $this->errors[] = 'Parameter ' . $element . ' not defined in class ' . get_class($model);
             return false;
         }
         $elementValue = $model->{$element};
         $query = new Query($this->container->db);
         $query->select = $this->params['attribute'];
         $query->table = $this->params['table'];
         $query->addWhere($this->params['attribute'] . '="' . $elementValue . '"');
         $query->limit = 1;
         $query->single = true;
         if ($query->run()) {
             return false;
         }
     }
     return true;
 }
Esempio n. 4
0
 /**
  * Get relation data or magic properties
  *
  * @access public
  *
  * @param string $name
  *
  * @return mixed
  */
 public function __get($name)
 {
     /** @var array $relation */
     if ($relation = $this->relations()->get($name)) {
         if (empty($this->cacheRelations[$name])) {
             $sql = new Query($this->container->db);
             $sql->addWhere('`m`.`' . $relation['On'][1] . '`=:' . $relation['On'][0]);
             if ($relation['Where']) {
                 $sql->addWhere($relation['Where']);
             }
             if ($relation['Params']) {
                 $sql->params = $relation['Params'];
             }
             if ($relation['Limit'] > 0) {
                 $sql->limit = $relation['Limit'];
             }
             $sql->params[$relation['On'][0]] = $this->{$relation['On'][0]};
             /** @noinspection PhpUndefinedMethodInspection */
             $this->cacheRelations[$name] = $relation['Model']::finder($sql, !$relation['IsMany'], $this->container);
         }
         return $this->cacheRelations[$name];
     } elseif (isset($this->{$name})) {
         return $this->{$name};
     }
     return false;
 }
Esempio n. 5
0
 /**
  * Get role perms
  *
  * @access public
  *
  * @param string $role role name
  *
  * @return array
  * @throws \Micro\base\Exception
  */
 protected function rolePerms($role)
 {
     $query = new Query($this->container->db);
     $query->select = '*';
     $query->table = 'acl_role_perm';
     $query->addWhere('role=' . $role);
     $query->single = false;
     return $query->run();
 }
Esempio n. 6
0
 /**
  * Get assigned elements
  *
  * @access public
  *
  * @param integer $userId user ID
  *
  * @return mixed
  * @throws \Micro\base\Exception
  */
 public function assigned($userId)
 {
     $query = new Query($this->container->db);
     $query->select = '*';
     $query->table = 'acl_user';
     $query->addWhere('`user`=' . $userId);
     $query->single = false;
     return $query->run();
 }
Esempio n. 7
0
 /**
  * Get assigned to user RBAC elements
  *
  * @access public
  *
  * @param integer $userId user ID
  *
  * @return mixed
  * @throws \Micro\base\Exception
  */
 public function assigned($userId)
 {
     $query = new Query($this->container->db);
     $query->distinct = true;
     $query->select = '`role` AS `name`';
     $query->table = '`rbac_user`';
     $query->addWhere('`user`=' . $userId);
     $query->single = false;
     return $query->run(\PDO::FETCH_ASSOC);
 }
Esempio n. 8
0
 /**
  * Get raw roles
  *
  * @access public
  *
  * @param int $pdo PHPDataObject fetch key
  *
  * @return mixed
  * @throws \Micro\base\Exception
  */
 public function rawRoles($pdo = \PDO::FETCH_ASSOC)
 {
     $query = new Query($this->container->db);
     $query->table = 'rbac_role';
     $query->order = '`type` ASC';
     $query->single = false;
     return $query->run($pdo);
 }
Esempio n. 9
0
 /**
  * Get assigned to user RBAC elements
  *
  * @access public
  *
  * @param integer $userId user ID
  *
  * @return mixed
  * @throws \Micro\Base\Exception
  */
 public function assigned($userId)
 {
     $query = new Query($this->db);
     $query->distinct = true;
     $query->select = $this->db->getDriverType() === 'pgsql' ? '"role" AS "name"' : '`role` AS `name`';
     $query->table = $this->db->getDriverType() === 'pgsql' ? '"rbac_user"' : '`rbac_user`';
     $query->addWhere(($this->db->getDriverType() === 'pgsql' ? '"user"=' : '`user`=') . $userId);
     $query->single = false;
     return $query->run(\PDO::FETCH_ASSOC);
 }
Esempio n. 10
0
 /**
  * Get raw roles
  *
  * @access public
  *
  * @param int $pdo PHPDataObject fetch key
  *
  * @return mixed
  * @throws \Micro\Base\Exception
  */
 public function rawRoles($pdo = \PDO::FETCH_ASSOC)
 {
     $query = new Query($this->db);
     $query->table = $this->db->getDriverType() === 'pgsql' ? '"rbac_role"' : '`rbac_role`';
     $query->order = $this->db->getDriverType() === 'pgsql' ? '"type" ASC' : '`type` ASC';
     $query->single = false;
     return $query->run($pdo);
 }