memcrab/access
最新稳定版本:1.4.0
Composer 安装命令:
composer require memcrab/access
包简介
PHP Access lib for memCrab Core API
README 文档
README
Status
It's lightweight php access rights module.
Features
- Support services, actions and roles that need to be controlled by access rights
- Support access groups that combaine multiple services and actions for access all of them to some role
- All configurations is array based and it may be simple YAML file
- Allows you to check role access to any Service/Action
- Allows to check role access to group of actions
- Allows you to get all groups that available for current role
- Allows to use rights matrix by roles or by services or by access groups it's allows you to check any rights by simple isset() using only keys of array.
- Used High performance yaml parse throw using updated pecl yaml-ext 2.0.0 for php 7.0
- Strict standart coding with full Typing of params and returns (by php 7.1)
- PSR-4 autoloading compliant structure
- Unit-Testing with PHPUnit
- Easy to use to any framework
Install
composer require memcrab/access
Dependencies
php extension YAML:
- for Ubuntu/Debian
- apt-get update
- apt-get install php-pear
- apt-get install php-dev
- apt-get install php-xml php7.0-xml
- apt-get install libyaml-dev
- pecl channel-update pecl.php.net
- pecl install yaml-2.0.0
- for OS X
- brew install php71 --with-pear
- brew install autoconf
- touch $(brew --prefix php71)/lib/php/.lock && chmod 0644 $(brew --prefix php71)/lib/php/.lock
- pecl install yaml-2.0.0
Usage
- init Access:
new memCrab\Access() - load rules:
->loadRules(array $rules)- $rules - Rules from yaml file for exaple
- run checks:
->checkRights(string $service, string $action, string $userRole)- $service - name of service (or maybe controller)
- $action - name of action
- $userRole - name of user role
Yaml Config Example
contentView: roles: [guest, user, admin] services: post: [get] product: [get] index: [get] catalog: [filter] contentManage: roles: [admin] services: post: [add, save, delete] product: [add, save, delete]
Run Example
require_once __DIR__ . "/../vendor/autoload.php"; use memCrab\Exceptions\FileException; use memCrab\File\Yaml; use memCrab\Access\Access; use memCrab\Exception\AccessException; try { $Yaml = new Yaml(); $rules = $Yaml->load("config/rules.yaml", null)->getContent(); $Access = new Access(); $Access->loadRules($rules); if(!$Access->checkRights("post", "save", "admin")) throw AccessException("Access Denie.", 401); // do all your work } catch(AccessException $error){ $Response = new \YourResponseClass(); $Response->setErrorResponse($error); } $Response->sendHeaders(); $Response->sendContent();
MIT Licensed
统计信息
- 总下载量: 48.58k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 1
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2017-02-16