程序代码:
* 权限检查-------------------------------------------------------------------
FUNCTION CheckRight(tcModule) && cModule(模块名)
LOCAL nSelect,cRight,nMid,lFlag
nSelect = SELECT()
cRight = '无'
* 找到模块 tcModule 对应的模块号 nMid
IF !USED('module')
USE module SHARED IN 0
lFlag = .t.
ENDIF
SELECT module
LOCATE FOR ALLT(UPPER(Module)) == ALLT(UPPER(tcModule)) AND !DELETED()
nMid = m_id
IF lFlag
USE IN module
ENDIF
* 先处理组权限
lFlag = .f.
IF !USED('right')
USE right SHARED IN 0
lFlag = .t.
ENDIF
SELECT right
IF gnGroupId # 0
LOCATE FOR user_id = gnGroupId AND user_type = 'G' AND m_id = nMid AND !DELETED()
IF FOUND()
cRight = right
ENDIF
ENDIF
* 再处理用户权限
LOCATE FOR user_id = gnUserId AND user_type = 'U' AND m_id = nMid AND !DELETED()
IF FOUND()
cRight = right
ENDIF
IF lFlag
USE IN right
ENDIF
SELECT (nSelect)
RETURN cRight
ENDFUNC

本文详细介绍了在VFP中实现权限管理的方法,包括用户角色设定、权限分配及代码实现,揭示了如何在VFP环境中创建安全、可控的程序运行环境。
最低0.47元/天 解锁文章
1582

被折叠的 条评论
为什么被折叠?



