Принудительно выходить из системы, когда sfDoctrineGuard отказывает в доступе из-за отсутствия разрешений - PullRequest
1 голос
/ 04 апреля 2011

Я использую модуль sfDoctrineGuard для управления разрешениями для моего проекта Symfony.

Я заметил следующее поведение: если вы вошли в систему как один пользователь, а затем попытаетесь получить доступ к чему-то, для чего у вас нет учетных данных, вам сообщат об этом и представят экран входа в систему. Если вы затем попытаетесь войти в систему как другой пользователь, вы не сможете: вы продолжаете получать одно и то же сообщение об ошибке «Отказано в доступе». Похоже, что вы должны явно выйти из системы (или закрыть браузер), чтобы удалить свои учетные данные в сеансе, прежде чем вы сможете снова войти в систему как другой пользователь.

Это предполагаемое поведение? Или я что-то неправильно настроил?

UPDATE . Дармен попросил код. Я не написал много кода, а скорее сделал некоторые настройки. Если это поможет, вот что я сделал

  1. Установлен модуль sfDoctrineGuard согласно документации для плагина.
  2. Включен модуль путем редактирования config/ProjectConfiguration.class.php:

    class ProjectConfiguration extends sfProjectConfiguration
    {
      public function setup()
      {
        $this->enablePlugins('sfDoctrinePlugin');      // Add this
        $this->enablePlugins('sfDoctrineGuardPlugin'); // Add this
      }
    }
    
  3. Перестроить модели.

  4. Защищено приложение backend путем редактирования apps/backend/config/security.yml:

    default:
      is_secure: true
    
  5. Я создал несколько пользователей, групп и разрешений. Я ограничил один из модулей для пользователей или групп, связанных с разрешением perm_backend_edit, добавив его в apps/backend/modules/book/config/security.yml

    default:
      is_secure: true
      credentials: [ perm_backend_edit ]
    
...