From 03089652557ac8ee4164594aa0f2eb68cef197c9 Mon Sep 17 00:00:00 2001 From: wanglei <34475144@qqcom> Date: Sat, 8 Nov 2025 00:01:43 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=88=9D=E5=A7=8B=E5=8C=96?= =?UTF-8?q?=E8=BF=9B=E8=A1=8C=E8=A7=92=E8=89=B2=E6=9D=83=E9=99=90=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E5=88=B0redis=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/dao/role.lua | 7 ++++- src/init.lua | 69 +++++++++++++++-------------------------------- src/test/test.lua | 25 ++++++++++------- 3 files changed, 43 insertions(+), 58 deletions(-) diff --git a/src/dao/role.lua b/src/dao/role.lua index ca624a0..460c33a 100644 --- a/src/dao/role.lua +++ b/src/dao/role.lua @@ -31,6 +31,11 @@ local function isExistRole(id) end -- 查询数据表中的所有角色信息 +function _M.getAllSystemRoles() + return roleModel:all() +end + +-- 根据页码和数量查询数据表中的角色信息 function _M.getSystemRoles(pageNum, pageSize) return roleModel:paginate(pageNum, pageSize) end @@ -97,7 +102,7 @@ function _M:getPermission2roleId(role_id, status) if status ~= nil then sql = sql.." AND \"A\".status='"..status.."'" end - return roleModel.exec(sql) + return roleModel:exec(sql) end return _M \ No newline at end of file diff --git a/src/init.lua b/src/init.lua index c621659..679acb0 100644 --- a/src/init.lua +++ b/src/init.lua @@ -24,21 +24,7 @@ end --初始化,获取系统默认的用户权限,为实现RBAC框架做权限数据准备 local function handler() - --读取用户表、角色表和权限表中配置的权限数据 - local roleDao = require("dao.role") - --获取数据表中的记录数 - local code, res = roleDao:all() - if res == nil then return end - ngx.log(ngx.INFO, "user count:"..res) - --读取角色id和角色名称 - for _, row in pairs(res) do - for key, value in pairs(row) do - ngx.say(key .. ":" .. tostring(value)) - end - end - --“admin-system::users::edit“ ”1“ - - --将取到的数据存储到redis中,后续进行验证使用 + --与redis进行连接 local redis = require("resty.redis") local red = redis:new() -- 设置超时时间 @@ -62,39 +48,28 @@ local function handler() -- 从连接池中获取连接 --red:set_keepalive(SYSTEM_CONFIG.REDIS.POOL_MAX_IDLE_TIME, SYSTEM_CONFIG.REDIS.POOL_SIZE) - -- 设置 key-value - local ok, err = red:set("admin-system:user:add", "1") - if not ok then - ngx.log(ngx.ERR, "redis failed to set key: "..err) - return + --读取用户表、角色表和权限表中配置的权限数据 + local roleDao = require("dao.role") + --获取数据表中的记录数 + local code, res = roleDao:getAllSystemRoles() + if res == nil then return end + --读取角色id和角色名称 + for _, row in pairs(res) do + local id = row.id --:1 + local name = row.role_name --:admin + --row.status:0, + local code, rest = roleDao:getPermission2roleId(id) + for _, ret in pairs(rest) do + --将数据存储到redis中 + local permid = ret.permission_id + local perm = ret.permission_code + local key = name.."-"..perm + local ok, err = red:set(key, "1") + if not ok then + ngx.log(ngx.ERR, "redis failed to set key: "..err) + end + end end - - local ok, err = red:set("admin-system:user:edit", "1") - if not ok then - ngx.log(ngx.ERR, "failed to set key: "..err) - return - end - - local ok, err = red:set("admin-system:user:delete", "1") - if not ok then - ngx.log(ngx.ERR, "failed to set key: "..err) - return - end - - local ok, err = red:set("admin-system:user:view", "1") - if not ok then - ngx.log(ngx.ERR, "failed to set key: "..err) - return - end - - local ok, err = red:set("admin-system:user:list", "1") - if not ok then - ngx.log(ngx.ERR, "failed to set key: "..err) - return - end - - ngx.log(ngx.INFO, "set key successfully") - --关闭redis连接 red:close() diff --git a/src/test/test.lua b/src/test/test.lua index 2a3acd2..d05b88e 100644 --- a/src/test/test.lua +++ b/src/test/test.lua @@ -334,16 +334,21 @@ end --]] -local userModel = require("dao.user") -local code, res = userModel:userRole("1") ---显示查询到的数据记录 -if res ~= nil then - print("id value: -- ", res[1].id) - for _, row in pairs(res) do - for key, value in pairs(row) do - ngx.say(key .. ":" .. tostring(value)) - end - end +--读取用户表、角色表和权限表中配置的权限数据 +local roleDao = require("dao.role") +--获取数据表中的记录数 +local code, res = roleDao:getAllSystemRoles() +if res == nil then return end +--读取角色id和角色名称 +for _, row in pairs(res) do + --row.id:1 + --row.create_by:admin + --row.create_time: + --row.role_name:admin + --row.status:0, + --row.remark:超级管理员 + --row.role_key:超级管理员 + print(row.id..row.create_by..row.role_name) end --[[