Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/hanwenbo/policy.js
结合https://github.com/hanwenbo/policy 使用,主要用于FaShop项目内使用,不建议其他人直接使用
https://github.com/hanwenbo/policy.js
Last synced: about 2 months ago
JSON representation
结合https://github.com/hanwenbo/policy 使用,主要用于FaShop项目内使用,不建议其他人直接使用
- Host: GitHub
- URL: https://github.com/hanwenbo/policy.js
- Owner: hanwenbo
- License: apache-2.0
- Created: 2019-02-25T09:54:48.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2022-01-18T05:40:36.000Z (almost 3 years ago)
- Last Synced: 2024-10-08T16:44:38.013Z (3 months ago)
- Language: JavaScript
- Homepage: https://www.fashop.cn
- Size: 32.2 KB
- Stars: 2
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# policy.js
js验证policy语法php版本 : https://github.com/hanwenbo/policy
本库主要用于FaShop项目内使用,不建议其他人直接使用
## 安装
```bash
npm install fashop-policy --save
```## 引入和使用
```js
import Policy from "fashop-policy"var policy = new Policy
// 支持添加多组
policy.addPolicy({"Statement": [{"Action": ["user/*","goods/info"], "Effect": "Allow"}]})
policy.addPolicy({"Statement": [{"Action": ["user/*","goods/list"], "Effect": "Deny"}]})if(policy.verify('goods/info') === true){
// 有权限...
// 执行.........
}else{
// 不显示菜单
// 或者显示占位信息
}// 测试
policy.verify('goods/info').should.be.equal(true)
policy.verify('goods/list').should.be.equal(false)// 验证表现层,用于多个权限同时验证,当都满足条件时才显示某个节点
let string = '(( goods/* && !goods/list) && goods/info && goods/info && goods/infoXx) || * || goods/info';policy.viewVerify(string)
```
更便捷的语句式操作,请见github的fashop-admin项目## 测试
> 自动执行test目录下的所有文件
```bash
mocha
```## 发布
```bash
npm login --registry https://registry.npmjs.org
npm publish --registry https://registry.npmjs.org
```
发布的时候注意源源管理工具:NRM
安装
`sudo npm install -g nrm`查看源列表
`nrm ls`使用某个源
`nrm use npm`## 开发
- 编译基于rollup
- 支持浏览器和nodejs## 疑问
由于不熟悉js
不明白为什么class不能定义属性如:
```js
class XX{
name;
sex;
}
```
在umi.js下就可以但在rollup下编译就过不去,需要通过构造函数去this.xxxx赋值
如果谁知道,请告诉我
class了解参考:http://es6.ruanyifeng.com/#docs/class
### 感谢
![img](https://ws4.sinaimg.cn/large/006tKfTcly1g139x67vvrj30ry0nan43.jpg)
![img](https://ws3.sinaimg.cn/large/006tKfTcly1g139y9vr50j30q80eq44m.jpg)