11<h1 align =" center " >easyswoole-permission</h1 >
2- <p align =" center " >An authorization library that supports access control models like ACL, RBAC, ABAC in EasySwoole.</p >
32
4- ## Installing
3+ <p align =" center " >
4+ <strong>easyswoole-permission is an authorization library for the easyswoole framework.</strong>
5+ </p >
6+
7+ <p align =" center " >
8+ <a href="https://github.com/php-casbin/easyswoole-permission/actions">
9+ <img src="https://github.com/php-casbin/easyswoole-permission/workflows/build/badge.svg?branch=master" alt="Build Status">
10+ </a>
11+ <a href="https://coveralls.io/github/php-casbin/easyswoole-permission">
12+ <img src="https://coveralls.io/repos/github/php-casbin/easyswoole-permission/badge.svg" alt="Coverage Status">
13+ </a>
14+ <a href="https://packagist.org/packages/casbin/easyswoole-permission">
15+ <img src="https://poser.pugx.org/casbin/easyswoole-permission/v/stable" alt="Latest Stable Version">
16+ </a>
17+ <a href="https://packagist.org/packages/casbin/easyswoole-permission">
18+ <img src="https://poser.pugx.org/casbin/easyswoole-permission/downloads" alt="Total Downloads">
19+ </a>
20+ <a href="https://packagist.org/packages/casbin/easyswoole-permissionz">
21+ <img src="https://poser.pugx.org/casbin/easyswoole-permission/license" alt="License">
22+ </a>
23+ </p >
24+
25+ [ Chinese Version] ( https://github.com/casbin/easyswoole-permission/blob/master/README_CN.md )
26+
27+ It's based on [ Casbin] ( https://github.com/php-casbin/php-casbin ) , an authorization library that supports access control models like ` ACL ` , ` RBAC ` , ` ABAC ` .
28+
29+ All you need to learn to use ` Casbin ` first.
30+
31+ * [ Installation] ( #installation )
32+
33+ * [ Usage] ( #usage )
34+
35+ - [ Database settings] ( #database-settings )
36+ - [ Create corresponding data table] ( #create-corresponding-data-table )
37+
38+ * [ Quick start] ( #quick-start )
39+ * [ Using Enforcer Api] ( #using-enforcer-api )
40+
41+ * [ Thinks] ( #thinks )
42+
43+ * [ License] ( #license )
44+
45+ ## Installation
546
647Require this package in the ` composer.json ` of your easyswoole project. This will download the package.
748
849``` shell
950$ composer require
1051```
1152
53+ Or in the root directory of your easyswoole application, you can use the following composer command to install this package directly .
54+
55+ ``` shell
56+ $ composer require casbin/easyswoole-permission:dev-master
57+ ```
58+
1259## Usage
1360
61+ ### Database settings
62+
1463add mysql configuration to ` dev.php ` :
1564``` php
1665/*################ MYSQL CONFIG ##################*/
@@ -40,6 +89,8 @@ public static function initialize()
4089}
4190```
4291
92+ ### Create corresponding data table
93+
4394Before using it, you need to create a table named ` casbin_rules ` for Casbin to store the policy.
4495
4596Take mysql as an example:
@@ -60,11 +111,13 @@ CREATE TABLE if not exists `casbin_rules` (
60111) ENGINE= InnoDB DEFAULT CHARSET= utf8mb4;
61112```
62113
114+ ### Quick start
115+
63116Then you can start like this:
64117
65118``` php
66- use Easyswolle \Permission\Casbin;
67- use Easyswolle \Permission\Config;
119+ use EasySwoole \Permission\Casbin;
120+ use EasySwoole \Permission\Config;
68121
69122$config = new Config();
70123$casbin = new Casbin($config);
@@ -92,100 +145,116 @@ if ($casbin->enforce('eve', 'articles', 'edit')) {
92145
93146It provides a very rich api to facilitate various operations on the Policy:
94147
148+ First create an instance of the enforcer class, and the following operations are based on this instance:
149+
150+ ``` php
151+ $config = new Config();
152+ $casbin = new Casbin($config);
153+ $enforcer = $casbin->enforcer();
154+ ```
155+
95156Gets all roles:
96157
97158``` php
98- Enforcer:: getAllRoles(); // ['writer', 'reader']
159+ $enforcer-> getAllRoles(); // ['writer', 'reader']
99160```
100161
101162Gets all the authorization rules in the policy.:
102163
103164``` php
104- Enforcer:: getPolicy();
165+ $enforcer-> getPolicy();
105166```
106167
107168Gets the roles that a user has.
108169
109170``` php
110- Enforcer:: getRolesForUser('eve'); // ['writer']
171+ $enforcer-> getRolesForUser('eve'); // ['writer']
111172```
112173
113174Gets the users that has a role.
114175
115176``` php
116- Enforcer:: getUsersForRole('writer'); // ['eve']
177+ $enforcer-> getUsersForRole('writer'); // ['eve']
117178```
118179
119180Determines whether a user has a role.
120181
121182``` php
122- Enforcer:: hasRoleForUser('eve', 'writer'); // true or false
183+ $enforcer-> hasRoleForUser('eve', 'writer'); // true or false
123184```
124185
125186Adds a role for a user.
126187
127188``` php
128- Enforcer:: addRoleForUser('eve', 'writer');
189+ $enforcer-> addRoleForUser('eve', 'writer');
129190```
130191
131192Adds a permission for a user or role.
132193
133194``` php
134195// to user
135- Enforcer:: addPermissionForUser('eve', 'articles', 'read');
196+ $enforcer-> addPermissionForUser('eve', 'articles', 'read');
136197// to role
137- Enforcer:: addPermissionForUser('writer', 'articles','edit');
198+ $enforcer-> addPermissionForUser('writer', 'articles','edit');
138199```
139200
140201Deletes a role for a user.
141202
142203``` php
143- Enforcer:: deleteRoleForUser('eve', 'writer');
204+ $enforcer-> deleteRoleForUser('eve', 'writer');
144205```
145206
146207Deletes all roles for a user.
147208
148209``` php
149- Enforcer:: deleteRolesForUser('eve');
210+ $enforcer-> deleteRolesForUser('eve');
150211```
151212
152213Deletes a role.
153214
154215``` php
155- Enforcer:: deleteRole('writer');
216+ $enforcer-> deleteRole('writer');
156217```
157218
158219Deletes a permission.
159220
160221``` php
161- Enforcer:: deletePermission('articles', 'read'); // returns false if the permission does not exist (aka not affected).
222+ $enforcer-> deletePermission('articles', 'read'); // returns false if the permission does not exist (aka not affected).
162223```
163224
164225Deletes a permission for a user or role.
165226
166227``` php
167- Enforcer:: deletePermissionForUser('eve', 'articles', 'read');
228+ $enforcer-> deletePermissionForUser('eve', 'articles', 'read');
168229```
169230
170231Deletes permissions for a user or role.
171232
172233``` php
173234// to user
174- Enforcer:: deletePermissionsForUser('eve');
235+ $enforcer-> deletePermissionsForUser('eve');
175236// to role
176- Enforcer:: deletePermissionsForUser('writer');
237+ $enforcer-> deletePermissionsForUser('writer');
177238```
178239
179240Gets permissions for a user or role.
180241
181242``` php
182- Enforcer:: getPermissionsForUser('eve'); // return array
243+ $enforcer-> getPermissionsForUser('eve'); // return array
183244```
184245
185246Determines whether a user has a permission.
186247
187248``` php
188- Enforcer:: hasPermissionForUser('eve', 'articles', 'read'); // true or false
249+ $enforcer-> hasPermissionForUser('eve', 'articles', 'read'); // true or false
189250```
190251
191252See [ Casbin API] ( https://casbin.org/docs/en/management-api ) for more APIs.
253+
254+ ## Thinks
255+
256+ [ Casbin] ( https://github.com/php-casbin/php-casbin ) in Easyswoole. You can find the full documentation of Casbin [ on the website] ( https://casbin.org/ ) .
257+
258+ ## License
259+
260+ This project is licensed under the [ Apache 2.0 license] ( LICENSE ) .
0 commit comments