GithubHelp home page GithubHelp logo

zds-s / hyperf-casbin Goto Github PK

View Code? Open in Web Editor NEW

This project forked from donjan-deng/hyperf-casbin

0.0 0.0 0.0 53 KB

适配 Hyperf 的开源访问控制框架Casbin

License: Apache License 2.0

Shell 0.66% PHP 99.34%

hyperf-casbin's Introduction

Hyperf Casbin

Test Latest Stable Version Total Downloads License

Casbin是一个强大的、高效的开源访问控制框架,其权限管理机制支持多种访问控制模型。本项目做了Hyperf适配并自带了一个RBAC模型,使用本项目前你需要先学会如何使用Casbin。

简单使用

Casbin只负责访问控制,在RBAC方案中也只是储存用户和角色之间的映射关系,身份认证、管理用户列表或角色列表应由项目自身来管理。这里有个简单的示例:example

版本定义

本项目主版本与Casbin主版本相同,子版本和修订版本为项目独有

重大变更

  • 3.22适配Hyperf 3.0

  • 3.21增加Redis Watcher 升级需要重新发布配置

  • 3.6 升级需要重新发布配置

安装

 composer require donjan-deng/hyperf-casbin

发布配置

 php bin/hyperf.php vendor:publish donjan-deng/hyperf-casbin

配置文件config/autoload/casbin.php

API

use Donjan\Casbin\Enforcer;

为用户添加权限

Enforcer::addPermissionForUser('user1', '/user', 'read');

删除一个用户的权限

Enforcer::deletePermissionForUser('user1', '/user', 'read');

获取用户所有权限

Enforcer::getPermissionsForUser('user1'); 

为用户添加角色

Enforcer::addRoleForUser('user1', 'role1');

为角色添加权限

Enforcer::addPermissionForUser('role1', '/user', 'edit');

获取所有角色

Enforcer::getAllRoles();

获取用户所有角色

Enforcer::getRolesForUser('user1');

根据角色获取用户

Enforcer::getUsersForRole('role1');

判断用户是否属于一个角色

Enforcer::hasRoleForUser('use1', 'role1');

删除用户角色

Enforcer::deleteRoleForUser('use1', 'role1');

删除用户所有角色

Enforcer::deleteRolesForUser('use1');

删除角色

Enforcer::deleteRole('role1');

删除权限

Enforcer::deletePermission('/user', 'read');

删除用户或者角色的所有权限

Enforcer::deletePermissionsForUser('user1');
Enforcer::deletePermissionsForUser('role1');

检查权限,返回 true or false

Enforcer::enforce("user1", "/user", "edit")

更多使用方法详见官方API

官方资源

参考库

License

This project is licensed under the Apache 2.0 license.

hyperf-casbin's People

Contributors

donjan-deng avatar zds-s avatar mmfei avatar nashgao avatar onekb avatar yyy1000 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.