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

Symfony1 symfony 1.4:尝试管理操作的凭据,symfony1,Symfony1,我们希望从管理后端操作的凭据 后端 如何获取应用程序的操作列表?在那之后我们可以展示 通过getCredential()获取每个用户的凭据 第二个问题:我找到了获取操作凭据的函数 (getCredential()),但如何设置凭据?我没找到 setCredential()函数 Javi获取应用程序的操作列表与凭据无关。如何命名或组织凭证是一个惯例问题。操作和凭据是独立的。您可以为整个应用程序提供一个凭据,也可以为每个操作定义一个凭据。不过,您可以单独管理凭证 如果您真的想获得操作列表,可以解析路

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

如何获取应用程序的操作列表?在那之后我们可以展示 通过getCredential()获取每个用户的凭据

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


Javi获取应用程序的操作列表与凭据无关。如何命名或组织凭证是一个惯例问题。操作和凭据是独立的。您可以为整个应用程序提供一个凭据,也可以为每个操作定义一个凭据。不过,您可以单独管理凭证

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

您还可以使用PHP的反射机制从action类中获取方法

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


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

让我们先从第二个问题开始,以巩固我们对Symfony中凭据如何工作的理解

Symfony中的凭据通过模块的
config
目录下的
security.yml
文件进行设置。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、数据库),并使用过滤器动态设置所需的凭据(也不推荐)


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

关于这是否是个好主意,我同意很多人已经说过的话

不管怎样,做我认为你要求的事情:

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

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

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

您好,再次感谢您的回复。读/写每个security.yml文件怎么样?然后,我将解析每个文件,查找“credentials:”键所在的行,并在该行中添加/删除凭据…您好,再次感谢您的回复。读/写每个security.yml文件怎么样?然后,我将解析每个文件,查找“credentials:”键所在的行,并在该行中添加/删除凭据…您好,再次感谢您的回复。读/写每个security.yml文件怎么样?然后我将解析每个文件,查找“credentials:”键所在的行,并在该行中添加/删除凭据。。。