例子:實(shí)體類四個(gè)字段:A、B、C、D ; 兩個(gè)角色:角色1、角色2 ; 前端語(yǔ)言:vue ; 后端語(yǔ)言:java
項(xiàng)目需求:角色字段權(quán)限控制(比如設(shè)置 角色1擁有A、B兩個(gè)字段,意味著查看不到C、D兩個(gè)字段值)
說明:原本框架是java+mybatis+jsp,采用shiro標(biāo)簽,可以實(shí)現(xiàn)字段權(quán)限控制,但是現(xiàn)在使用java++mybatis+vue前后端分離框架,不知應(yīng)采用哪種方式實(shí)現(xiàn) 字段權(quán)限控制。
表達(dá)可能不是很清楚,望各位大神討論提意見,我再進(jìn)行補(bǔ)充,謝謝。
3 回答

墨色風(fēng)雨
TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超6個(gè)贊
通過登陸角色/
然后前端把角色獲取的ID(列舉/不一定是ID) 你進(jìn)行判斷該用戶權(quán)限 然后去sql數(shù)據(jù) 返給前端不就OK了嗎

蝴蝶刀刀
TA貢獻(xiàn)1801條經(jīng)驗(yàn) 獲得超8個(gè)贊
- 存儲(chǔ)角色,Java類.字段的關(guān)系
例如:t_role_relationship(fk_role_id, class, field) - 寫一個(gè)公共方法。
Map<Integer, RoleRelationship> map = new Hashxxx();
public Object(Object obj) {
Object newObj = Class.forName(xxx).instance();
Field[] fields = obj.getClass().getFields();
for(Field f: fields) {
if(map.keys.contains(f.getName()) {
setMethod.invoke(newObj, invoke(obj, getMethod));
}
}
return newObj;
}
添加回答
舉報(bào)
0/150
提交
取消