承接 kairos/acl-manager-bundle 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

kairos/acl-manager-bundle

Composer 安装命令:

composer require kairos/acl-manager-bundle

包简介

ACL Manager for Symfony2

关键字:

README 文档

README

Add this bundle to your composer.json file:

{
    "require": {
        "problematic/acl-manager-bundle": "dev-master"
    }
}

Register the bundle in app/AppKernel.php:

<?php

// app/AppKernel.php
public function registerBundles()
{
    return array(
        // ...
        new Problematic\AclManagerBundle\ProblematicAclManagerBundle(),
    );
}

If you haven't configured the ACL enable it in app/config/security.yml:

# app/config/security.yml
security:
    acl:
        connection: default

Finally run the ACL init command

php app/console init:acl

Usage

<?php

$comment = new Comment(); // create some entity
// ... do work on entity

$em->persist($comment);
$em->flush(); // entity must be persisted and flushed before AclManager can act on it (needs identifier)
$aclManager = $this->get('problematic.acl_manager');

// Adds a permission no matter what other permissions existed before
$aclManager->addObjectPermission($comment, MaskBuilder::MASK_OWNER, $userEntity);
// Or:
$aclManager->addObjectPermission($comment, MaskBuilder::MASK_OWNER);

// Replaces all current permissions with this new one
$aclManager->setObjectPermission($comment, MaskBuilder::MASK_OWNER, $userEntity);
$aclManager->revokePermission($comment, MaskBUILDER::MASK_DELETE, $userEntity);
$aclManager->revokeAllObjectPermissions($comment, $userEntity);

// Same with class permissions:
$aclManager->addClassPermission($comment, MaskBuilder::MASK_OWNER, $userEntity);

$aclManager->setClassPermission($comment, MaskBuilder::MASK_OWNER, $userEntity);

$aclManager->revokeClassPermission($comment, MaskBUILDER::MASK_DELETE, $userEntity);
$aclManager->revokeAllClassPermissions($comment, $userEntity);

$aclManager->deleteAclFor($comment);
$em->remove($comment);
$em->flush();

If no $userEntity is provided, the current session user will be used instead.

If you'll be doing work on a lot of entities, use AclManager#preloadAcls():

<?php

$products = $repo->findAll();

$aclManager = $this->get('problematic.acl_manager');
$aclManager->preloadAcls($products);

// ... carry on

统计信息

  • 总下载量: 113
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 3
  • Forks: 33
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2012-12-19