eZ\Publish\Core\Persistence\Legacy\User\Role\Gateway\DoctrineDatabase::loadRoleByIdentifier PHP Method

loadRoleByIdentifier() public method

Loads a specified role by $identifier.
public loadRoleByIdentifier ( string $identifier, integer $status = Role::STATUS_DEFINED ) : array
$identifier string
$status integer One of Role::STATUS_DEFINED|Role::STATUS_DRAFT
return array
    public function loadRoleByIdentifier($identifier, $status = Role::STATUS_DEFINED)
    {
        $query = $this->handler->createSelectQuery();
        if ($status === Role::STATUS_DEFINED) {
            $roleVersionCondition = $query->expr->eq($this->handler->quoteColumn('version', 'ezrole'), $query->bindValue($status, null, \PDO::PARAM_INT));
        } else {
            $roleVersionCondition = $query->expr->neq($this->handler->quoteColumn('version', 'ezrole'), $query->bindValue($status, null, \PDO::PARAM_INT));
        }
        $query->select($this->handler->aliasedColumn($query, 'id', 'ezrole'), $this->handler->aliasedColumn($query, 'name', 'ezrole'), $this->handler->aliasedColumn($query, 'version', 'ezrole'), $this->handler->aliasedColumn($query, 'id', 'ezpolicy'), $this->handler->aliasedColumn($query, 'function_name', 'ezpolicy'), $this->handler->aliasedColumn($query, 'module_name', 'ezpolicy'), $this->handler->aliasedColumn($query, 'original_id', 'ezpolicy'), $this->handler->aliasedColumn($query, 'identifier', 'ezpolicy_limitation'), $this->handler->aliasedColumn($query, 'value', 'ezpolicy_limitation_value'))->from($this->handler->quoteTable('ezrole'))->leftJoin($this->handler->quoteTable('ezpolicy'), $query->expr->eq($this->handler->quoteColumn('role_id', 'ezpolicy'), $this->handler->quoteColumn('id', 'ezrole')))->leftJoin($this->handler->quoteTable('ezpolicy_limitation'), $query->expr->eq($this->handler->quoteColumn('policy_id', 'ezpolicy_limitation'), $this->handler->quoteColumn('id', 'ezpolicy')))->leftJoin($this->handler->quoteTable('ezpolicy_limitation_value'), $query->expr->eq($this->handler->quoteColumn('limitation_id', 'ezpolicy_limitation_value'), $this->handler->quoteColumn('id', 'ezpolicy_limitation')))->where($query->expr->lAnd($query->expr->eq($this->handler->quoteColumn('name', 'ezrole'), $query->bindValue($identifier, null, \PDO::PARAM_STR)), $roleVersionCondition));
        $statement = $query->prepare();
        $statement->execute();
        return $statement->fetchAll(\PDO::FETCH_ASSOC);
    }