Я использую модуль sfDoctrineGuard для управления разрешениями для моего проекта Symfony.
Я заметил следующее поведение: если вы вошли в систему как один пользователь, а затем попытаетесь получить доступ к чему-то, для чего у вас нет учетных данных, вам сообщат об этом и представят экран входа в систему. Если вы затем попытаетесь войти в систему как другой пользователь, вы не сможете: вы продолжаете получать одно и то же сообщение об ошибке «Отказано в доступе». Похоже, что вы должны явно выйти из системы (или закрыть браузер), чтобы удалить свои учетные данные в сеансе, прежде чем вы сможете снова войти в систему как другой пользователь.
Это предполагаемое поведение? Или я что-то неправильно настроил?
UPDATE . Дармен попросил код. Я не написал много кода, а скорее сделал некоторые настройки. Если это поможет, вот что я сделал
- Установлен модуль sfDoctrineGuard согласно документации для плагина.
Включен модуль путем редактирования config/ProjectConfiguration.class.php
:
class ProjectConfiguration extends sfProjectConfiguration
{
public function setup()
{
$this->enablePlugins('sfDoctrinePlugin'); // Add this
$this->enablePlugins('sfDoctrineGuardPlugin'); // Add this
}
}
Перестроить модели.
Защищено приложение backend
путем редактирования apps/backend/config/security.yml
:
default:
is_secure: true
Я создал несколько пользователей, групп и разрешений. Я ограничил один из модулей для пользователей или групп, связанных с разрешением perm_backend_edit
, добавив его в apps/backend/modules/book/config/security.yml
default:
is_secure: true
credentials: [ perm_backend_edit ]