symfony 1.4:尝试管理操作的凭据

时间:2010-11-03 16:55:49

标签: symfony1

我们希望管理后端操作的凭据 后端。

如何获取应用操作列表?之后我们可以展示 每个凭证通过getCredential()。

第二个问题:我找到了获取动作凭证的功能 (getCredential()),但如何设置凭据?我没找到任何 setCredential()函数......

哈维

3 个答案:

答案 0 :(得分:2)

我同意很多关于这是否是一个好主意的说法。

无论如何,做我认为你要问的事情:

动作所需的凭据来自sfAction中的此方法:

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

如果你想做一些更复杂的事情,比如从数据库或其他来源提取凭据,你可以在你的行动中重载(或者在sfActions的新子类中扩展它并让你的所有行动扩展)。

答案 1 :(得分:0)

获取应用操作列表与凭据无关。根据惯例,如何命名或组织凭证。操作和凭据是独立的。您可以在每个应用程序中拥有一个凭据,也可以为每个操作定义一个凭据。不过,您还是单独管理凭证。

如果您真的想获得可以解析路由文件的操作列表。

您还可以使用PHP的Reflection机制从方法类中获取方法。

但是,sfDoctrineGuardPlugin / sfGuardPlugin为大多数应用程序提供了足够的凭据管理。我宁愿采用这种方法。

2n问题:没有 setCredential()方法,但有一个 addCredential()

答案 2 :(得分:0)

让我们首先回答您的第二个问题,以确定我们对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文件并从缓存中清除旧的YAML文件(不推荐),否则无法从后端更改操作的安全设置。如果确实需要动作凭据,我会存储某种交换机(锁定文件,APC,数据库)并使用过滤器来动态设置所需的凭据(也就是说,不是真的推荐)。

你不能做任何你想用标准用户/组/权限设置做的事情吗?