我在 symfony 1.4 中使用 sfGuardPlugin,我想知道如何摆脱它的“默认”路由。我的意思是“守卫/用户”、“守卫/权限”和“守卫/组”路线。
事实上,我已经设计了自己的后端,没有管理员生成器,并且我用自定义 url 重新创建了这三个页面。那么如何禁用对默认 sfGuard 页面的访问呢?
我在 symfony 1.4 中使用 sfGuardPlugin,我想知道如何摆脱它的“默认”路由。我的意思是“守卫/用户”、“守卫/权限”和“守卫/组”路线。
事实上,我已经设计了自己的后端,没有管理员生成器,并且我用自定义 url 重新创建了这三个页面。那么如何禁用对默认 sfGuard 页面的访问呢?
你应该更新文件
/config/sfDoctrineGuardPluginConfiguration.class.php
到最新版本。
在最后一次更新之前,尽管有文档,但路线确实已经注册了。
看来您正在使用此文件的先前版本。
如果你 (i) 仍然想使用插件提供的模块,(ii) 使用你自己的路由,(iii) 阻止人们使用默认的 sfGuard 路由,并且 (iv) 仍然有默认的 /:module/:action 路由(这是相当有用的),你可以覆盖 sfGuardRouting 类,这是here
插件/sfGuardPlugin/lib/routing/sfGuardRouting.class.php
您可以简单地将这个文件复制到您的
库/
目录,然后使用方法。例如,我刚刚为 sfGuardPlugin 的模块注释了类的所有方法的所有代码(因为我在我的 apps/myApp/config/routing.yml 文件中创建了自己的路由),就像这样
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')));
}
}
要停用这 3 个模块:您只需从后端应用程序的 settings.yml 中删除 sfGuardGroup、sfGuardUser、sfGuardPermission。
all:
.settings:
enabled_modules: [default, sfGuardAuth, sfGuardGroup, sfGuardUser, sfGuardPermission]
为了只保留认证模块
all:
.settings:
enabled_modules: [default, sfGuardAuth]
但是我不知道默认值是什么。