我们希望管理后端操作的凭据 后端。
如何获取应用操作列表?之后我们可以展示 每个凭证通过getCredential()。
第二个问题:我找到了获取动作凭证的功能 (getCredential()),但如何设置凭据?我没找到任何 setCredential()函数......
哈维
答案 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,数据库)并使用过滤器来动态设置所需的凭据(也就是说,不是真的推荐)。
你不能做任何你想用标准用户/组/权限设置做的事情吗?