@lark-apaas/client-toolkit 1.1.21-alpha.auth.dev.2 → 1.1.21-alpha.auth.dev.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +26 -0
- package/lib/auth/index.d.ts +1 -1
- package/lib/auth/index.js +2 -2
- package/package.json +3 -4
package/README.md
CHANGED
|
@@ -6,3 +6,29 @@
|
|
|
6
6
|
|
|
7
7
|
* 导出所有对外暴露的 API 和组件,并通过 npm exports 来控制
|
|
8
8
|
* 其他目录作为 internal 实现,不对外暴露
|
|
9
|
+
|
|
10
|
+
### auth 目录
|
|
11
|
+
|
|
12
|
+
* 包含与权限相关的 API 和组件
|
|
13
|
+
|
|
14
|
+
#### Can 组件
|
|
15
|
+
|
|
16
|
+
**作用**: 条件渲染,只有当 `I` 对 `a` 可操作时才渲染子内容。 `I` 为资源类型,需要保证为 `@role`。
|
|
17
|
+
|
|
18
|
+
```tsx
|
|
19
|
+
<Can I="@role" a="Editor">
|
|
20
|
+
<button>删除任务</button>
|
|
21
|
+
</Can>
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
#### AbilityContext
|
|
25
|
+
|
|
26
|
+
**作用**: 从 React 上下文获取 CASL `Ability` 实例,使用 `ability.can(action, subject)` 做权限判断。
|
|
27
|
+
|
|
28
|
+
```tsx
|
|
29
|
+
import { useContext } from 'react';
|
|
30
|
+
import { AbilityContext } from '@lark-apaas/auth-sdk';
|
|
31
|
+
|
|
32
|
+
const ability = useContext(AbilityContext);
|
|
33
|
+
const canCreate = ability.can('Editor', '@role');
|
|
34
|
+
```
|
package/lib/auth/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { CanRole, AbilityContext, ROLE_SUBJECT } from '@lark-apaas/auth-sdk';
|
package/lib/auth/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export {
|
|
1
|
+
import { AbilityContext, CanRole, ROLE_SUBJECT } from "@lark-apaas/auth-sdk";
|
|
2
|
+
export { AbilityContext, CanRole, ROLE_SUBJECT };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lark-apaas/client-toolkit",
|
|
3
|
-
"version": "1.1.21-alpha.auth.dev.
|
|
3
|
+
"version": "1.1.21-alpha.auth.dev.3",
|
|
4
4
|
"types": "./lib/index.d.ts",
|
|
5
5
|
"main": "./lib/index.js",
|
|
6
6
|
"files": [
|
|
@@ -79,14 +79,13 @@
|
|
|
79
79
|
"storybook": "storybook dev",
|
|
80
80
|
"test": "echo 0",
|
|
81
81
|
"lint": "eslint src --ext .js,.jsx,.ts,.tsx",
|
|
82
|
-
"lint:fix": "eslint src --ext .js,.jsx,.ts,.tsx --fix"
|
|
83
|
-
"prepublishOnly": "npm run build && node scripts/replace-workspace-alias.js"
|
|
82
|
+
"lint:fix": "eslint src --ext .js,.jsx,.ts,.tsx --fix"
|
|
84
83
|
},
|
|
85
84
|
"dependencies": {
|
|
86
85
|
"@ant-design/colors": "^7.2.1",
|
|
87
86
|
"@ant-design/cssinjs": "^1.24.0",
|
|
88
87
|
"@data-loom/js": "^0.4.0",
|
|
89
|
-
"@lark-apaas/auth-sdk": "0.1.0-alpha.
|
|
88
|
+
"@lark-apaas/auth-sdk": "0.1.0-alpha.9",
|
|
90
89
|
"@lark-apaas/miaoda-inspector": "^1.0.4",
|
|
91
90
|
"@radix-ui/react-avatar": "^1.1.10",
|
|
92
91
|
"@radix-ui/react-popover": "^1.1.15",
|