SuperAPI AI 工具集

mobile-rbac

编程与开发

查看项目

更新于 10-16 09:51

技能介绍

用途:为集成多租户 SaaS 后端的 Android 应用提供角色权限控制(RBAC)实现规范,覆盖权限获取、缓存、UI 门控与离线降级。

主要能力:采用客户端与服务端混合模型。后端通过 PermissionMiddleware 校验每次 API 调用,拒绝时返回 403;客户端依据缓存权限控制按钮、标签页与屏幕可见性;权限未知时默认拒绝(fail-secure),缓存可用时支持离线。权限解析由后端按 5 级优先级完成(用户拒绝、用户授予、租户覆盖、角色默认、超级管理员/所有者),客户端不做本地解析,仅通过 GET /user/permissions 获取并使用。权限以约 20-50 个字符串码的扁平集合存储于 EncryptedSharedPreferences,键包括 user_permissions、user_modules、user_roles、user_type、permissions_updated。刷新触发点:登录后立即、冷启动或恢复时超过 15 分钟、收到 403 后立即刷新并重试、下拉刷新。

使用方式:提供 PermissionManager 单例(经 Hilt 注入,暴露 StateFlow 与 hasPermission/hasModule/isOwner 等方法),以及 PermissionGate(隐藏)、PermissionButton(禁用并提示)、ModuleGate(标签页隐藏)、导航守卫与 PermissionDeniedScreen 等 Compose 模式;可通过 CompositionLocal 便捷访问。UI 约定:无权限的标签页隐藏,按钮禁用置灰并提示,卡片区域隐藏,深链进入无权限页面显示拒绝页;403 时自动刷新并提示。若报表可能超过 25 行需使用表格布局,图标使用自定义 PNG 并更新 PROJECT_ICONS.md。安全规则:后端始终校验、使用加密存储、登出调用 clear()、权限按 JWT 中 franchise_id 隔离、日志不记录完整权限集。

限制:文中未提供价格、授权或平台版本要求;环境相关基础 URL 需用 Gradle build flavors 处理;离线无缓存时拒绝全部访问,不允许比上次同步授予更多权限。