博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基于资源的权限系统-API设计
阅读量:7237 次
发布时间:2019-06-29

本文共 1104 字,大约阅读时间需要 3 分钟。

概述

权限系统需要和别的系统集成,因此,良好的API是易用性的保证。

这里只设计一些权限相关的核心 API,关于用户,组织,导入导出之类的后续再逐步补充

API 设计

围绕权限有以下 4 类 API:

授权

  1. 单独授权 给某个 用户/组织 授予权限,权限 = 资源+动作

    UpdatePermission(userID, resourceID, action) error    // 授权后 userID 可以在 resouceID 上进行 actionUpdatePermission(orgID, resouceID, action) error      // 授权后 orgID 可以在 resouceID 上进行 action
  2. 批量授权 给多个 用户/组织 授予权限。

    UpdatePermissions(userIDList, resourceIDList, actionList) errorUpdatePermissions(orgIDList, resouceIDList, actionList) error

检查权限

检查某个用户/组织 是否有权限

CheckPermission(userID, resourceID, action) bool    // 检查 userID 是否可以在 resouceID 上进行 actionCheckPermission(orgID, resouceID, action) bool      // 检查 orgID 是否可以在 resouceID 上进行 action

查询权限

查询某个用户/组织的权限数据,其中 Permission 是权限数据的结构

GetPermissions(userID) ([]Permission, error)   // 获取 userID 的所有权限数据GetPermissions(orgID) ([]Permission, error)    // 获取 orgID 的所有权限数据

删除权限

删除某个用户/组织的权限数据

DeletePermission(userID, resourceID, action)    // 取消 userID 在 resouceID 上进行 action 的权限DeletePermission(orgID, resouceID, action)      // 取消 orgID 在 resouceID 上进行 action 的权限

总结

整个权限系统只有以上几个API肯定是不够的,其他的API都是常规的 用户/组织,资源,动作等的CURD,这里就不一一列出了。

转载地址:http://ymrfm.baihongyu.com/

你可能感兴趣的文章
工控主板定制ARM9选择思路
查看>>
PHP实现远程下载文件到本地
查看>>
Matplotlib 中文用户指南 7.3 事件处理及拾取
查看>>
IBM新思路,让无人机照看、训练你的宝贝萌宠
查看>>
使用 AppImageLauncher 轻松运行和集成 AppImage 文件
查看>>
区块链技术指北社区(Chain One Community)规划
查看>>
善用金融科技——第十四届中国区域商业银行信息化发展战略高峰年会5月开幕...
查看>>
镁客网首场香港活动,与海内外人士共话AI革新
查看>>
操作ACCESS数据库注意事项
查看>>
禁止IE7的页面缩放功能
查看>>
java多线程的等待唤醒机制及如何解决同步过程中的安全问题
查看>>
捷径 - The certain shortcut
查看>>
IE 的浏览器模式和文本模式(二)
查看>>
css3 背景
查看>>
LVS的DR和NAT模式配置
查看>>
总结概括对于大数据、高并发的网站如何进行优化的问题
查看>>
学习javascript必须订阅30个程序员的Blog
查看>>
如何将Exchange 2007迁移到一台新的服务器并且保留原有服务器名
查看>>
设置控件只读
查看>>
box-align,box-pack实现元素垂直底部对齐
查看>>