承接 memcrab/access 相关项目开发

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

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

memcrab/access

最新稳定版本:1.4.0

Composer 安装命令:

composer require memcrab/access

包简介

PHP Access lib for memCrab Core API

README 文档

README

Status

Build Status Total Downloads Latest Stable Version Latest Unstable Version License composer.lock available

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

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2017-02-16