妖怪/安全扩展包

此包已废弃且不再维护。未建议替代包。

Symfony安全扩展功能

dev-master / 1.0.x-dev 2017-08-24 08:30 UTC

This package is auto-updated.

Last update: 2024-01-04 15:01:53 UTC


README

Latest Stable Version Latest Unstable Version Total Downloads License

Build Status Scrutinizer Code Quality Code Coverage

安装

使用Composer将包作为依赖项添加

$ composer require yokai/security-extra-bundle:1.0-dev

在内核中启用包

<?php
// app/AppKernel.php

public function registerBundles()
{
    $bundles = [
        // ...
        new Yokai\SecurityExtraBundle\YokaiSecurityExtraBundle(),
    ];
}

配置

假设你处理名为 AppBundle\Entity\Article 的实体,并在其上执行基本的CRUD操作。

你可以想象你需要实现哪些检查来确保你的CRUD操作的安全性

  • 如果你有 ROLE_ARTICLE_LIST 角色,则允许浏览帖子
  • 如果你有 ROLE_ARTICLE_SHOW 角色,则允许显示帖子详情
  • 如果你有 ROLE_ARTICLE_CREATE 角色,则允许创建新帖子
  • 如果你有 ROLE_ARTICLE_UPDATE 角色且最初创建了此帖子,则允许更新现有帖子
  • 如果你有 ROLE_ARTICLE_DELETE 角色且最初创建了此帖子,则允许删除现有帖子

好的,下面是如何配置它的方法

# app/config/config.yml

yokai_security_extra:
    permissions:

        - attributes: 'browse'
          roles:      ROLE_ARTICLE_LIST

        - attributes: 'details'
          subjects:   AppBundle\Entity\Article
          roles:      ROLE_ARTICLE_SHOW

        - attributes: 'create'
          roles:      ROLE_ARTICLE_CREATE

        - attributes: 'update'
          subjects:   AppBundle\Entity\Article
          roles:      ROLE_ARTICLE_UPDATE
          callables:  'isOwnedBy'

        - attributes: 'delete'
          subjects:   AppBundle\Entity\Article
          roles:      ROLE_ARTICLE_DELETE
          callables:  'isOwnedBy'

注意 isOwnedBy 是在 AppBundle\Entity\Article 上可用的一种方法,可能看起来像

public function isOwnedBy(User $user)
{
    return $this->author === $user;
}

高级

待办事项

MIT许可证

许可证可以在 此处 找到。

作者

此包最初由 Yann Eugoné 创建。

查看贡献者列表