From 36585af2fe27bf65f96d9bdf3cffc3bd7e627e32 Mon Sep 17 00:00:00 2001 From: wanglei <34475144@qqcom> Date: Fri, 7 Nov 2025 10:33:32 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=86=E4=BC=A0=E5=85=A5=E7=9A=84=E5=8F=82?= =?UTF-8?q?=E6=95=B0=E9=85=8D=E7=BD=AE=E5=88=B0=E8=B7=AF=E7=94=B1=E4=B8=AD?= =?UTF-8?q?=EF=BC=8C=E9=80=9A=E8=BF=87=E4=BC=A0=E5=8F=82=E8=BF=9B=E8=A1=8C?= =?UTF-8?q?=E5=A4=84=E7=90=86=EF=BC=8C=E7=BC=96=E5=86=99=E7=AE=80=E5=8D=95?= =?UTF-8?q?=E7=9A=84=E4=BE=8B=E5=AD=90=EF=BC=8C=E5=B9=B6=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/system/user.lua | 25 ++++++++++++++++---- src/config.lua | 2 +- src/init.lua | 2 ++ src/service/system/user.lua | 11 ++++----- src/test/test.lua | 47 +++++++++++++++++++++++++++++++------ 5 files changed, 67 insertions(+), 20 deletions(-) diff --git a/src/api/system/user.lua b/src/api/system/user.lua index 6375d89..c4b8542 100644 --- a/src/api/system/user.lua +++ b/src/api/system/user.lua @@ -14,32 +14,47 @@ local routes = { { paths = { "/api/system/users" }, methods = { "GET" }, - params = { "system::users::list" }, + filter_fun = function(vars) + ngx.ctx.perms = "system::users::list" + return true + end, handler = systemUser.getSystemUsers, }, { paths = { "/api/system/users/:id" }, methods = { "GET" }, + filter_fun = function(vars) + ngx.ctx.perms = "system::users::view" + return true + end, handler = systemUser.getSystemUser, - params = { "system::users::view" } }, { paths = { "/api/system/users" }, methods = { "POST" }, + filter_fun = function(vars) + ngx.ctx.perms = "system::users::add" + return true + end, handler = systemUser.addSystemUser, - params = { "system::users::add" } }, { paths = { "/api/system/users/:id" }, methods = { "DELETE" }, + filter_fun = function(vars) + ngx.ctx.perms = "system::users::delete" + return true + end, handler = systemUser.deleteSystemUser, - params = { "system::users::delete" } }, { paths = { "/api/system/users/:id" }, methods = { "PUT" }, + filter_fun = function(vars) + ngx.ctx.perms = "system::users::edit" + return true + end, handler = systemUser.updateSystemUser, - params = { "system::users::edit" } }, } diff --git a/src/config.lua b/src/config.lua index 5d71edf..4075d2d 100644 --- a/src/config.lua +++ b/src/config.lua @@ -38,4 +38,4 @@ SYSTEM_CONFIG = { POOL_SIZE = 100, -- postgresql pool size TIMEOUT = 1000, -- postgresql timeout } -} \ No newline at end of file +} diff --git a/src/init.lua b/src/init.lua index f1e2c31..bceea50 100644 --- a/src/init.lua +++ b/src/init.lua @@ -37,6 +37,8 @@ local function handler() local redis = require("resty.redis") local red = redis:new() + --“admin-system::users::edit“ ”1“ + -- 设置超时时间 red:set_timeout(SYSTEM_CONFIG.REDIS.TIMEOUT) -- 1秒 diff --git a/src/service/system/user.lua b/src/service/system/user.lua index 6cedcbc..3364a9f 100644 --- a/src/service/system/user.lua +++ b/src/service/system/user.lua @@ -30,16 +30,13 @@ function _M.getSystemUsers(m) local username = ngx.ctx.username local role = ngx.ctx.role ngx.log(ngx.INFO, "userid:"..userid.." username:"..username.." role:"..role) - - local vars = m.params - print(vars) - + --权限数据 + local perms = ngx.ctx.perms local method = m._method local path = m._path ngx.log(ngx.INFO, "path:"..path.." method:"..method) - - --local metadata = m.matched.action - --ngx.log(ngx.INFO, "metadata value:"..metadata) + --判断当前接口用户和角色是否有权限 + --获取页码和请求的数据量 --local args = ngx.req.get_uri_args() local pageNum = ngx.var.pagenum or 1 diff --git a/src/test/test.lua b/src/test/test.lua index ec8fef7..a9f01f8 100644 --- a/src/test/test.lua +++ b/src/test/test.lua @@ -18,22 +18,49 @@ local redis = require("share.redis") --max =a and b or c--a?b:c local radix = require("resty.radixtree") +--[[ +local opts = { + --host = ngx.var.host, + method = ngx.var.request_method, + --remote_addr = ngx.var.remote_addr, + matched = {} +} + +local vars = { + {"arg_name", "==", "json"}, + {"arg_weight", ">", 10}, +} + +local rx = radix.new({ + { + paths = {"/aa"}, + methods = {"GET"}, + filter_fun = function(vars) + return vars["perms"] == "json" + end, + } +}) + +-- try to match +ngx.say(rx:match("/aa", opts, opts.matched)) +--]] + -- 路由处理函数注册表 -local function user_handler(params) - print(params.name) - print(params.metadata.service) +local function user_handler(m) + print(m.name) + print(ngx.ctx.perms) end -- 创建路由规则 local routes = { { paths = {"/user/:name"}, - metadata = { - service = "user-service", - timeout = 3000, - }, methods = {"GET"}, + filter_fun = function(vars) + ngx.ctx.perms = "system::users::view" + return true + end, handler = user_handler, } } @@ -53,6 +80,12 @@ local opts = { -- 使用dispatch方法进行路由匹配 local ok = rx:dispatch("/user/123", opts, opts.matched) +--local result, err = rx:match("/user/123", opts, opts.matched) +--if result then +-- print(result) +-- --result.handler(opts, result.metadata) +--end + --[[ --获取用户相关的角色数据的数据 local function init_task()