@@ -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```
1530composer require casbin/think-adapter
1631```
1732
18- 发布资源:
33+ 3 . 发布资源:
1934
2035```
2136php 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```
3148php 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
4080use 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