github.com/aacfactory/fns@v1.2.86-0.20240310083819-80d667fc0a17/docs/permissions_zh.md (about)

     1  # 配置
     2  
     3  ---
     4  
     5  RBAC的权限模式。 
     6  简单的说,哪些角色可以访问函数,当然也支持哪些角色可以读写哪些资源。 
     7  
     8  
     9  ## 组件
    10  ### 存储器
    11  `Postgres` 和 `MYSQL` 由 `fns-contrib`提供, 阅读 [doc](https://github.com/aacfactory/fns-contrib/tree/main/permissions/store) 获取更多信息。
    12  
    13  ## 接口
    14  ### 策略
    15  验证
    16  ```go
    17  verifyErr := permissions.Verify(ctx, roles...)
    18  ```
    19  用户绑定角色
    20  ```go
    21  bindErr := permissions.UserBindRoles(ctx, userId, roles...)
    22  ```
    23  用户解绑角色
    24  ```go
    25  bindErr := permissions.UserUnbindRoles(ctx, userId, roles...)
    26  ```
    27  获取用户的角色
    28  ```go
    29  roles, getErr := permissions.GetUserRoles(ctx, userId)
    30  ```
    31  请求上下文中的用户是否可以读资源
    32  ```go
    33  ok, err := CanReadResource(ctx, resource)
    34  ```
    35  请求上下文中的用户是否可以写资源
    36  ```go
    37  ok, err := CanWriteResource(ctx, resource)
    38  ```
    39  ### 模型
    40  获取所有角色树
    41  ```go
    42  roles, getErr := permissions.GetRoles(ctx)
    43  ```
    44  获取上下文中用户的指定角色树。
    45  ```go
    46  role, getErr := permissions.GetRole(ctx, name)
    47  ```
    48  保存角色,不会对其子节点角色进行保存。
    49  ```go
    50  saveErr := permissions.SaveRole(ctx, role)
    51  ```