0

我使用 symfony 1.4 的“管理员生成器”为我的项目构建了一个 beckend,因此我可以访问诸如管理员和其他成员(如用户(角色))......

我希望在后端的成员列表中隐藏密码,然后当我像管理员一样登录时(数据库中的 is_super_admin =1:sf_guard_user)所以我可以看到密码但是当有人像用户一样登录时他看不到相同的字段(is_super_admin =数据库中的 0:sf_guard_user)。

我在问他们是否有任何使用角色和 generator.yml 或任何其他解决方案隐藏字段的解决方案?

4

3 回答 3

2

是的,你可以这样做:

# generator.yml
generator:
  class: fdDoctrineGenerator
  param:
    model_class:           sfGuardUser
    theme:                 admin
    non_verbose_templates: true
    with_show:             false
    singular:              ~
    plural:                ~
    route_prefix:          user
    with_doctrine_route:   true
    actions_base_class:    sfActions

    config:
      actions: ~
      fields:
        password:
          credentials: [super_admin]
      list:
        display: [=username, password]
      filter   ~
      form:    ~
      edit:    ~
      new:     ~

如果您有管理员,is_super_admin == true则可以使用未分配给任何用户的任何凭据。

于 2013-03-25T20:27:13.110 回答
0

在 generator.yml 中包含该字段。

在 module/templates/_form_field.php 中为该字段创建一个部分。

在部分表单字段中传递一个条件:

  <?php if ($sf_user->hasCredential('admin')): ?> 

      <?php echo $MyObject->getMyFormField(); ?>  

  <?php endif; ?>

那应该这样做。

于 2013-03-25T17:09:39.950 回答
0

我不认为仅使用选项可以generator.yml选择。

我要做的是创建两个不同的操作列出用户,一个有密码,一个没有。然后,security.yml您可以使用密码限制对列表的访问,因此只有超级管理员才能访问它。

如果您希望能够仅使用一个 URL 访问此列表。我将创建第三个操作,它将检查用户的权限并将他转发到其中一个列表(此操作必须写为“正常”操作,未在 中定义generator.yml)。

于 2013-03-25T15:55:38.970 回答