【问题标题】:Laravel: Adding permissions in sentryLaravel:在哨兵中添加权限
【发布时间】:2013-06-01 10:40:21
【问题描述】:

我才开始在 Sentry Laravel 4 中使用,我不确定我应该在哪里写我的组权限。我已经浏览了 Sentry 文档,但解释似乎有点含糊。是否有任何 Sentry 用户可以为我指明正确的方向?

【问题讨论】:

  • 找到这个文档。希望这可以帮助。 github.com/cartalyst/sentry/blob/master/docs/permissions/…
  • 我已经浏览了 Sentry 文档,但我想知道“user.delete 等”是否是一种方法?我应该把这些权限放在哪里,在用户和组的表中,还是在 Sentry 包的“config/config.php”中?视图中每个用户和组的权限显示是什么?

标签: php laravel cartalyst-sentry


【解决方案1】:

我自己仍在弄清楚 Sentry 权限,但希望此回复能帮助您走上正轨。我也希望在正确的轨道上! :)

以下是(显然)未说明的事实,让我感到困惑最长。一旦我意识到这一点,其余的就开始有意义了:

Sentry 不维护,甚至不需要预先定义的权限列表。

groupsusers 表中的 permissions 字段将采用您提供的任何权限密钥。 Sentry 不会检查以确保这些密钥在保存时是合法的。它只是一个文本字段。

如果您想要/需要明确的可管理权限列表,一种选择是在数据库中创建自己的 permissions 表。

管理此权限表可能还需要创建您自己的模型和管理视图,因为这仍然与 Sentry 分开。至于对组和用户应用权限,您可以使用此表在“创建/编辑用户”和“创建/编辑组”页面上填充可选权限列表。

【讨论】:

    【解决方案2】:

    当我看到 Sentry 配置文件时,我发现了一些关于如何使用权限的想法。您需要在sentry/config/sentry.php 文件中定义权限。这是简单的演示。

    'rules' => array(
        /**
         * config samples.
         *
         *  'application::admin@dashboard',
         *  'user::admin@create',
         *  'user::admin@read',
         *  'blog::admin@delete',
         *  'my_custom_rule',
         *  'is_admin',
         */
        'is_admin',
        'superuser',
        'can_edit',
        'can_delete'
    )
    

    我添加了can_editcan_delete 权限,现在可以使用了。

    【讨论】:

      【解决方案3】:

      有一个不错的 Laravel starter with Sentry2 ,它通过检查它的实现方式帮助我解释了它是如何工作的。在此处查看l4 with sentry

      似乎很多人都在为哨兵的许可部分而苦恼,包括我自己。另外,请查看this SO thread,它似乎与此问题重复,还有关于该问题的更多信息。

      【讨论】:

        猜你喜欢
        • 2023-03-29
        • 2013-06-05
        • 1970-01-01
        • 2014-01-21
        • 1970-01-01
        • 2014-06-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多