修改权限过滤器文件中的获取角色中的所有权限和删除角色后删除掉所对应的权限
This commit is contained in:
parent
e95d2a0ee5
commit
fa7185d1d1
|
|
@ -79,6 +79,8 @@ local function handler()
|
|||
|
||||
--共享数据字典进行数据存储
|
||||
--dict:set("RBAC", "1")
|
||||
|
||||
print("init application success")
|
||||
end
|
||||
|
||||
-- 设置定时器,执行一次handler函数
|
||||
|
|
|
|||
|
|
@ -59,4 +59,8 @@ function _M:ttl(key)
|
|||
return self.red:ttl(key)
|
||||
end
|
||||
|
||||
function _M:scan(cursor, method, pattern)
|
||||
return self.red:scan(cursor, method, pattern)
|
||||
end
|
||||
|
||||
return _M
|
||||
|
|
@ -336,12 +336,13 @@ end
|
|||
local perm = require("util.permissionfilter")
|
||||
|
||||
local rest = perm:getRolePermissions("admin")
|
||||
for _, row in pairs(rest) do
|
||||
print(row.key)
|
||||
for _, key in ipairs(rest) do
|
||||
print(key)
|
||||
end
|
||||
|
||||
perm:clearRolePermissions("admin")
|
||||
|
||||
--[[
|
||||
--读取用户表、角色表和权限表中配置的权限数据
|
||||
local roleDao = require("dao.role")
|
||||
--获取数据表中的记录数
|
||||
|
|
@ -358,6 +359,7 @@ for _, row in pairs(res) do
|
|||
--row.role_key:超级管理员
|
||||
print(row.id..row.create_by..row.role_name)
|
||||
end
|
||||
--]]
|
||||
|
||||
--[[
|
||||
--获取数据表中的记录数
|
||||
|
|
|
|||
|
|
@ -58,23 +58,38 @@ function _M:getRolePermissions(role_name)
|
|||
--获取redis中所有匹配的数据内容
|
||||
local pattern = role_name.."-*"
|
||||
local cursor = "0"
|
||||
local result, err = red:scan(cursor, 'MATCH', pattern)
|
||||
if not result then
|
||||
return allPermissions
|
||||
end
|
||||
cursor = result[1]
|
||||
for _, key in ipairs(result[2]) do
|
||||
table.insert(allPermissions, key)
|
||||
end
|
||||
repeat
|
||||
local result, err = red:scan(cursor, 'MATCH', pattern)
|
||||
if not result then
|
||||
return allPermissions
|
||||
end
|
||||
cursor = result[1]
|
||||
for _, key in ipairs(result[2]) do
|
||||
table.insert(allPermissions, key)
|
||||
end
|
||||
until cursor == "0"
|
||||
return allPermissions
|
||||
end
|
||||
|
||||
-- 清除角色的所有权限
|
||||
function _M:clearRolePermissions(role_name)
|
||||
--将redis中角色相关的键值去掉
|
||||
local keys = red:call("KEYS", role_name.."-*")
|
||||
if keys then
|
||||
red:call("DEL", unpack(keys))
|
||||
--获取redis中所有匹配的数据内容
|
||||
local pattern = role_name.."-*"
|
||||
local cursor = "0"
|
||||
local keys = {}
|
||||
repeat
|
||||
local result, err = red:scan(cursor, 'MATCH', pattern)
|
||||
if not result then
|
||||
break
|
||||
end
|
||||
cursor = result[1]
|
||||
for _, key in ipairs(result[2]) do
|
||||
table.insert(keys, key)
|
||||
end
|
||||
until cursor == "0"
|
||||
for _, key in ipairs(keys) do
|
||||
red:del(key)
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user