Symfony sfGuardPlugin:禁用默认路由

发布于 2024-11-26 11:10:12 字数 164 浏览 3 评论 0原文

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

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

I'm using the sfGuardPlugin in symfony 1.4 and I'm wondering how to get rid of its "default" routes. I mean by that the "guard/users", "guard/permissions" and "guard/groups" routes.

Indeed I have designed my own backend without admin generator, and I've recreated these three pages with customs urls. So how can I disable the access to the default sfGuard pages ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

自找没趣 2024-12-03 11:10:12

app.yml:

all:
  sf_guard_plugin:
    routes_register: false

文档中所述。

app.yml:

all:
  sf_guard_plugin:
    routes_register: false

as stated in the documentation.

荒芜了季节 2024-12-03 11:10:12

您应该将文件

/config/sfDoctrineGuardPluginConfiguration.class.php

更新到最新版本。

在上次更新之前,尽管有文档,但路由确实已注册。

您似乎正在使用此文件的先前版本。

You should update the file

/config/sfDoctrineGuardPluginConfiguration.class.php

to the lasted version.

Before the lasted update, despite the documentation, the routes did get registed anyway.

It seems you are using the previous version of this file.

ˉ厌 2024-12-03 11:10:12

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

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

为了只保留身份验证模块

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

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

To desactivate these 3 modules : you just have to remove the sfGuardGroup, sfGuardUser, sfGuardPermission from the settings.yml for backend application.

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

In order to keep only the authentification module

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

However I have no idea what default is.

权谋诡计 2024-12-03 11:10:12

如果您 (i) 仍然想使用插件提供的模块,(ii) 使用您自己的路由,(iii) 阻止人们使用默认的 sfGuard 路由,并且 (iv) 仍然使用默认的 /:module/:action 路由(这是相当有用的),你可以重写 sfGuardRouting 类,它在这里

plugins/sfGuardPlugin/lib/routing/sfGuardRouting.class.php

您只需将此文件复制到您的

库/

目录,然后使用这些方法。例如,我只是评论了该类所有方法的所有代码(因为我在 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'))); 
  }
}

If you (i) still want to use the modules provided by the plugin, (ii) using your own routes, (iii) preventing people from using the default sfGuard routes and (iv) still have the default /:module/:action route (which is rather useful), you can override the sfGuardRouting class, which is here

plugins/sfGuardPlugin/lib/routing/sfGuardRouting.class.php

You can simply copy this file to your

lib/

directory and then play with the methods. For instance I just commented all the code of all methods of the class (since I made my own routes in my apps/myApp/config/routing.yml file) for the modules of the sfGuardPlugin), like this

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'))); 
  }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文