android用户特权管理思路

本文介绍了一个Android应用程序中如何管理用户权限的问题。通过分析用户权利的组成,如用户组、岗位和特权,提出了两种解决方案。重点讨论了通过生成唯一标识码来简化权限获取,包括个性化特权和套餐特权的唯一标识码生成方法,并提供了相关代码示例。
摘要由CSDN通过智能技术生成

前言

项目背景

用户固有属性:

  • 用户id
  • username
  • 联系方式
  • 等等

app需要获取的用户的:

  1. 用户组,用户具有组权利;
  2. 用户在所在组的岗位,岗位类型很多,用户具有岗位权利,不同组不同岗位权利不同;
  3. 用户特权Vip,电话服务等等很多,有些特权是固有的,有些是付费购买的;
    注意:一个用户可以在不同用户组担任职务。

项目简要流程

用户登录→之后显示用户所拥有的权利。不具有的权利不能显示
分析:

1,2两项权利都是根据岗位及所在组所与生俱有的。
第3项是个性化定制的。

用户权利可以分为两大类:
①:打包特权,即特权包(里面有一些权利)类似于:套餐
②:单个的特权,个性化定制的特权,组合较为灵活。类似于:自由组合

而现在的用户权利是由①+②组成的,而且更要命的是:一个用户可以有多个套餐再加上N个自由组合。这样一个权利体系就很复杂了。即:

特权=(套餐x+套餐y+...)+(个性化特权x+个性化特权y+....)

用户的各项权利,后台都有存储。

项目中的问题与解决方案

现在的问题是,后台的这些权利,前台怎样获取?

方案一:在登录的同时,获取用户的所有权利,当然,数据量相当大。具有很大的缺点,而且不利于分离出用户权利。
方案二:将用户所在组特权,岗位特权,包特权(xx级别会员),个性特权分别生成一个唯一识别码。当然如果量不太大的话你也可以将这些唯一识别码合并成一个。

解决方案详解

解决方案示例图
解决方案示例图在线查看地址
唯一识别码怎么定义?
首先规定这个识别码是数值型的。

先说说“用户个性化自由组合特权”的唯一标识码

CP(Custom Privilege):用户个性化自由组合特权;单种特权类型多,并且一个用户可以购买多个特权;
个性化特权,姑且假设有31个,如果再多,你再添加位或者再来一个识别码

32位的int值 0111 1111 …. 1111 1111
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值