2

我在 symfony 1.4 中使用 sfGuardPlugin,我想知道如何摆脱它的“默认”路由。我的意思是“守卫/用户”、“守卫/权限”和“守卫/组”路线。

事实上,我已经设计了自己的后端,没有管理员生成器,并且我用自定义 url 重新创建了这三个页面。那么如何禁用对默认 sfGuard 页面的访问呢?

4

4 回答 4

2

你应该更新文件

/config/sfDoctrineGuardPluginConfiguration.class.php

到最新版本。

在最后一次更新之前,尽管有文档,但路线确实已经注册了。

看来您正在使用此文件的先前版本。

于 2011-07-26T19:44:38.987 回答
2

应用程序.yml:

all:
  sf_guard_plugin:
    routes_register: false

文档中所述。

于 2011-07-26T18:33:49.560 回答
1

如果你 (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'))); 
  }
}
于 2013-06-25T20:50:26.643 回答
1

要停用这 3 个模块:您只需从后端应用程序的 settings.yml 中删除 sfGuardGroup、sfGuardUser、sfGuardPermission。

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

为了只保留认证模块

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

但是我不知道默认值是什么。

于 2011-07-26T20:09:55.500 回答