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; } }
/** * @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); }
/** * @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; }
/** * 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; }
/** * 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(); }
/** * 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(); }
/** * 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); }
/** * 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); }