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