Symfony sfGuardPlugin: отключить маршруты по умолчанию - PullRequest
2 голосов
/ 26 июля 2011

Я использую sfGuardPlugin в symfony 1.4, и мне интересно, как избавиться от его маршрутов по умолчанию. Под этим я подразумеваю маршруты "guard / users", "guard / permissions" и "guard / groups".

Действительно, я разработал свой собственный бэкэнд без генератора администратора, и я воссоздал эти три страницы с таможенными URL-адресами. Так как я могу отключить доступ к страницам sfGuard по умолчанию?

Ответы [ 4 ]

2 голосов
/ 26 июля 2011

Вам следует обновить файл

/ конфиг / sfDoctrineGuardPluginConfiguration.class.php

к продолжительной версии.

Перед продолжительным обновлением, несмотря на документацию, маршруты все равно регистрировались.

Кажется, вы используете предыдущую версию этого файла.

2 голосов
/ 26 июля 2011

app.yml:

all:
  sf_guard_plugin:
    routes_register: false

как указано в документации .

1 голос
/ 26 июня 2013

Если вы (i) все еще хотите использовать модули, предоставляемые плагином, (ii) использовать свои собственные маршруты, (iii) запретить людям использовать маршруты sfGuard по умолчанию и (iv) по-прежнему использовать по умолчанию /: module / : action route (что довольно полезно), вы можете переопределить класс sfGuardRouting, который здесь

плагины / sfGuardPlugin / Библиотека / маршрутизации / sfGuardRouting.class.php

Вы можете просто скопировать этот файл на ваш

lib /

каталог, а затем играть с методами. Например, я просто прокомментировал весь код всех методов класса (так как я сделал свои собственные маршруты в моем файле apps / myApp / config / routing.yml) для модулей sfGuardPlugin), например,

class sfGuardRouting
{
  static public function listenToRoutingLoadConfigurationEvent(sfEvent $event)
  {
   //    $r = $event->getSubject();
   // preprend our routes
   //    $r->prependRoute('sf_guard_signin', new sfRoute('/guard/login', array('module' => 'sfGuardAuth', 'action' => 'signin'))); 
   //    $r->prependRoute('sf_guard_signout', new sfRoute('/guard/logout', array('module' => 'sfGuardAuth', 'action' => 'signout'))); 
  }
}
1 голос
/ 27 июля 2011

Чтобы деактивировать эти 3 модуля: вам просто нужно удалить sfGuardGroup, sfGuardUser, sfGuardPermission из settings.yml для внутреннего приложения.

all:
  .settings:
    enabled_modules: [default, sfGuardAuth, sfGuardGroup, sfGuardUser, sfGuardPermission]

Чтобы сохранить только модуль аутентификации

all:
  .settings:
    enabled_modules: [default, sfGuardAuth]

Однако я понятия не имею, что по умолчанию.

...