Skip to content
This repository was archived by the owner on Aug 22, 2023. It is now read-only.

Commit 6f13b4f

Browse files
authored
Update README.md
1 parent 13c500f commit 6f13b4f

File tree

1 file changed

+56
-10
lines changed

1 file changed

+56
-10
lines changed

README.md

Lines changed: 56 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,36 +5,76 @@ Think-Casbin
55
[![Total Downloads](https://poser.pugx.org/casbin/think-adapter/downloads)](https://packagist.org/packages/casbin/think-adapter)
66
[![License](https://poser.pugx.org/casbin/think-adapter/license)](https://packagist.org/packages/casbin/think-adapter)
77

8-
一个专为ThinkPHP5.1定制的[Casbin](https://github.com/php-casbin/php-casbin)的扩展包( https://github.com/php-casbin/think-casbin )。
8+
[PHP-Casbin](https://github.com/php-casbin/php-casbin) 是一个强大的、高效的开源访问控制框架,它支持基于各种访问控制模型的权限管理。
9+
10+
[Think-Casbin](https://github.com/php-casbin/think-casbin) 是一个专为ThinkPHP5.1定制的Casbin的扩展包,使开发者更便捷的在thinkphp项目中使用Casbin。
11+
12+
### 知识储备
13+
14+
+ 熟练使用`Composer`包管理工具
15+
+ 掌握ThinkPHP框架各个功能,例如:门面(Facade)、模型、数据库迁移工具等
16+
+ 熟悉PHP命令行、ThinkPHP命令行的使用
17+
+ 了解`Casbin`工作原理及用法
918

1019
### 安装
1120

12-
在你的`ThinkPHP`项目里,通过`composer`安装这个扩展
21+
1. 创建thinkphp项目(**如果没有**):
22+
23+
```
24+
composer create-project topthink/think tp
25+
```
26+
27+
2.`ThinkPHP`项目里,安装`Think-Casbin`扩展:
1328

1429
```
1530
composer require casbin/think-adapter
1631
```
1732

18-
发布资源:
33+
3. 发布资源:
1934

2035
```
2136
php think casbin:publish
2237
```
2338

24-
这将自动创建model配置文件`config/casbin-basic-model.conf`,和Casbin的配置文件`config/casbin.php`
39+
这将自动创建model配置文件`config/casbin-basic-model.conf`,和Casbin的配置文件`config/casbin.php`
2540

26-
数据迁移:
41+
4. 数据迁移:
2742

28-
执行前,请确保数据库连接信息配置正确,如需修改数据库连接信息或表名,可以修改`config/casbin.php`里的配置
43+
由于Think-Casbin默认将Casbin的策略(Policy)存储在数据库中,所以需要初始化数据库表信息。
44+
45+
执行前,请**确保数据库连接信息配置正确**,如需单独修改`Casbin`的数据库连接信息或表名,可以修改`config/casbin.php`里的配置。
2946

3047
```
3148
php think casbin:migrate
3249
```
3350

34-
这将会自动创建Casbin的策略表`casbin_rule`
51+
这将会自动创建Casbin的策略(Policy)表`casbin_rule`
3552

3653
### 用法
3754

55+
#### 为用户分配权限
56+
57+
```php
58+
use Casbin;
59+
60+
// 给用户alice赋予对data1的read权限
61+
Casbin::addPolicy('alice', 'data1', 'read');
62+
```
63+
64+
#### 判断是权限策略是否存在
65+
66+
```php
67+
Casbin::hasPolicy('alice', 'data1', 'read'); // true
68+
```
69+
70+
#### 移除权限
71+
72+
```php
73+
Casbin::removePolicy('alice', 'data1', 'read');
74+
```
75+
76+
#### 使用决策器,验证权限
77+
3878
```php
3979

4080
use Casbin;
@@ -51,13 +91,19 @@ if (true === Casbin::enforce($sub, $obj, $act)) {
5191
}
5292
```
5393

54-
### 自定义配置
94+
#### 自定义配置
5595

5696
`config/casbin-basic-model.conf`为Casbin的model文件
5797

5898
`config/casbin.php`为Casbin的adapter、db配置信息
5999

60100

61-
### 关于Casbin
101+
### 关于
102+
103+
**Think-Casbin**
104+
105+
+ 实现基于Think-ORM的Adapter存储(将Policy存储在数据库中)
106+
+ 实现Casbin的门面(think\Facade)调用,使用`\Casbin::`可以静态调用`PHP-Casbin``Enforcer`的所有方法。
107+
+ 使用配置文件对Casbin的Model、Adapter的可配置化
62108

63-
Casbin官网文档 (https://casbin.org )查看更多用法。
109+
通过Casbin官网 (https://casbin.org )查看更多用法。

0 commit comments

Comments
 (0)