Skip to content

Commit bcf5509

Browse files
authored
Merge pull request #3 from basakest/document
improve document, fix #2
2 parents 294c203 + e482b90 commit bcf5509

File tree

2 files changed

+344
-21
lines changed

2 files changed

+344
-21
lines changed

README.md

Lines changed: 90 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,65 @@
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

647
Require 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+
1463
add 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+
4394
Before using it, you need to create a table named `casbin_rules` for Casbin to store the policy.
4495

4596
Take 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+
63116
Then 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

93146
It 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+
95156
Gets all roles:
96157

97158
```php
98-
Enforcer::getAllRoles(); // ['writer', 'reader']
159+
$enforcer->getAllRoles(); // ['writer', 'reader']
99160
```
100161

101162
Gets all the authorization rules in the policy.:
102163

103164
```php
104-
Enforcer::getPolicy();
165+
$enforcer->getPolicy();
105166
```
106167

107168
Gets the roles that a user has.
108169

109170
```php
110-
Enforcer::getRolesForUser('eve'); // ['writer']
171+
$enforcer->getRolesForUser('eve'); // ['writer']
111172
```
112173

113174
Gets the users that has a role.
114175

115176
```php
116-
Enforcer::getUsersForRole('writer'); // ['eve']
177+
$enforcer->getUsersForRole('writer'); // ['eve']
117178
```
118179

119180
Determines 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

125186
Adds a role for a user.
126187

127188
```php
128-
Enforcer::addRoleForUser('eve', 'writer');
189+
$enforcer->addRoleForUser('eve', 'writer');
129190
```
130191

131192
Adds 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

140201
Deletes a role for a user.
141202

142203
```php
143-
Enforcer::deleteRoleForUser('eve', 'writer');
204+
$enforcer->deleteRoleForUser('eve', 'writer');
144205
```
145206

146207
Deletes all roles for a user.
147208

148209
```php
149-
Enforcer::deleteRolesForUser('eve');
210+
$enforcer->deleteRolesForUser('eve');
150211
```
151212

152213
Deletes a role.
153214

154215
```php
155-
Enforcer::deleteRole('writer');
216+
$enforcer->deleteRole('writer');
156217
```
157218

158219
Deletes 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

164225
Deletes a permission for a user or role.
165226

166227
```php
167-
Enforcer::deletePermissionForUser('eve', 'articles', 'read');
228+
$enforcer->deletePermissionForUser('eve', 'articles', 'read');
168229
```
169230

170231
Deletes 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

179240
Gets permissions for a user or role.
180241

181242
```php
182-
Enforcer::getPermissionsForUser('eve'); // return array
243+
$enforcer->getPermissionsForUser('eve'); // return array
183244
```
184245

185246
Determines 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

191252
See [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

Comments
 (0)