Symfony 1.4: пытается управлять учетными данными действий - PullRequest
0 голосов
/ 03 ноября 2010

мы хотим управлять учетными данными действий сервера из бэкэнд.

Как получить список действий приложения? После этого мы могли показать учетные данные каждого из них через getCredential ().

2-й вопрос: я нашел функцию для получения учетных данных действия (getCredential ()), но как установить учетные данные? Я не нашел ни одного Функция setCredential () ...

1009 * Javi *

Ответы [ 3 ]

2 голосов
/ 04 ноября 2010

Я согласен со многим из того, что уже было сказано относительно того, является ли это хорошей идеей.

Независимо от того, чтобы сделать то, что я думаю, вы просите:

Учетные данные, необходимые для действия, получены из этого метода в sfAction:

  public function getCredential()
  {
    return $this->getSecurityValue('credentials');
  }

Вы можете перегрузить это в своих действиях (или расширить его в новом подклассе sfActions и сделать так, чтобы все ваши действия расширили это), если вы хотите сделать что-то более сложное, например получить учетные данные из базы данных или другого источника. *

0 голосов
/ 04 ноября 2010

Давайте сначала начнем со второго вопроса, чтобы понять, как работают учетные данные в Symfony.

Учетные данные в Symfony задаются через файл security.yml в каталоге config модуля. Файл security.yml может выглядеть так:

all:
  is_secure: true #makes all methods on this action require user's to be authenticated

edit:
  credentials: [admin]

show:
  is_secure: false #don't require authentication for this one

Вы не можете изменить настройки безопасности действия из бэкэнда, если вы не хотите фактически записать новый файл YAML и очистить старый из кэша (не рекомендуется). Если вы действительно нуждались в динамических учетных данных для действия, я бы сохранял какой-то тип переключателя (файл блокировки, APC, база данных) и использовал фильтр для динамической установки необходимых учетных данных (также не очень рекомендуется).

Разве вы не можете делать то, что пытаетесь сделать со стандартной настройкой пользователя / группы / разрешения?

0 голосов
/ 04 ноября 2010

Получение списка действий приложения не имеет ничего общего с учетными данными. Это вопрос соглашения о том, как учетные данные названы или организованы. Действия и учетные данные являются независимыми. Вы можете иметь одну учетную запись для всего приложения или определить одну учетную запись для каждого действия. Тем не менее, вы управляете учетными данными отдельно.

Если вы действительно хотите получить список действий, вы можете проанализировать файл маршрутизации.

Вы также можете использовать PHP-механизм Reflection, чтобы получить методы из классов действий.

Однако, sfDoctrineGuardPlugin / sfGuardPlugin предлагает вам достаточное управление учетными данными для большинства приложений. Я бы предпочел пойти с этим подходом.

2n вопрос: метода setCredential () нет, но есть addCredential () .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...