AuthPlatform/src/service/system/user.lua

155 lines
5.2 KiB
Lua
Raw Normal View History

---
--- Generated by EmmyLua(https://github.com/EmmyLua)
--- Created by .
--- DateTime: 2025/9/25 08:19
--- 业务逻辑 对用户数据表进行数据表业务处理
local status = require("util.status")
local resp = require("util.response")
local userDao = require("dao.system.user")
local validator = require("validator.system.user")
local cjson = require("cjson.safe")
local token = require("util.token")
local perm = require("util.permissionfilter")
local _M = {}
--验证用户id与token中的用户id是否一致
local function getUserId()
--获取请求头中的令牌数据
local auth_header = ngx.var.http_Authorization
--验证数据的正确性
local retToken = token.authorizationToken(auth_header)
--token前面已经进行验证不需要进行判断
--验证成功获取用户id信息
local userid = retToken["body"]["payload"]["userid"]
return userid
end
--获取所有用户信息
function _M.getSystemUsers(m)
--获取登录的用户信息
--local userid = ngx.ctx.userid
--local username = ngx.ctx.username
local role = ngx.ctx.role
--ngx.log(ngx.INFO, "userid:"..userid.." username:"..username.." role:"..role)
--权限数据
local perms = ngx.ctx.perms
--local method = m._method
--local path = m._path
--ngx.log(ngx.INFO, "path:"..path.." method:"..method)
--判断当前接口用户和角色是否有权限
if perm:hasPermission(role, perms) == false then
ngx.exit(ngx.HTTP_FORBIDDEN)
end
--获取页码和请求的数据量
local args = ngx.req.get_uri_args()
local pageNum = args["pagenum"] or 1
local pageSize = args["pagesize"] or 10
local code, ret = userDao.getSystemUsers(pageNum, pageSize)
local state = status.SUCCESS
if code ~= 0 then state = status.DATA_IS_WRONG end
resp: response(state, ret)
end
--根据用户id获取用户信息
function _M.getSystemUser(m)
local role = ngx.ctx.role
--权限数据
local perms = ngx.ctx.perms
print("get getSystemUser", role, perms)
--判断当前接口用户和角色是否有权限
if perm:hasPermission(role, perms) == false then
ngx.exit(ngx.HTTP_FORBIDDEN)
end
--获取登录的用户信息
local payload = ngx.var.uid
local userid = getUserId()
if userid ~= m.id then --非管理员情况下
ngx.log(ngx.WARN, "用户与使用token中的用户id不一致", userid, m.id)
ngx.status = ngx.HTTP_NOT_ALLOWED
ngx.exit(ngx.HTTP_NOT_ALLOWED)
end
local code, ret = userDao.getSystemUser(m.id)
local state = status.SUCCESS
if code ~= 0 then state = status.DATA_IS_WRONG end
resp:response(state, ret[1])
end
--根据用户id获取用户信息
function _M.addSystemUser(m)
local role = ngx.ctx.role
--权限数据
local perms = ngx.ctx.perms
--判断当前接口用户和角色是否有权限
if perm:hasPermission(role, perms) == false then
ngx.exit(ngx.HTTP_FORBIDDEN)
end
--读取请求体的数据
ngx.req.read_body()
--获取请求数据
local body_data = ngx.req.get_body_data()
-- 验证数据是否符合json
local ok = validator.validateJson(body_data)
--验证失败则返回
if not ok then
resp:response(status.PARAM_NOT_COMPLETE)
return
end
--ngx.say(body_data)
local jsonData = cjson.decode(body_data)
--ngx.say(jsonData)
local code, ret = userDao.addSystemUser(jsonData)
local state = status.SUCCESS
if code ~= 0 then state = status.DATA_IS_WRONG end
resp: response(state, ret)
end
--根据用户id删除用户信息
function _M.deleteSystemUser(m)
local role = ngx.ctx.role
--权限数据
local perms = ngx.ctx.perms
--判断当前接口用户和角色是否有权限
if perm:hasPermission(role, perms) == false then
ngx.exit(ngx.HTTP_FORBIDDEN)
end
local code, ret = userDao.deleteSystemUser(m.id)
local state = status.SUCCESS
if code ~= 0 then state = status.DATA_IS_WRONG end
resp: response(state, ret)
end
--根据用户id删除用户信息
function _M.updateSystemUser(m)
local role = ngx.ctx.role
--权限数据
local perms = ngx.ctx.perms
--判断当前接口用户和角色是否有权限
if perm:hasPermission(role, perms) == false then
ngx.exit(ngx.HTTP_FORBIDDEN)
end
local userid = getUserId()
if userid ~= m.id then
ngx.log(ngx.WARN, "用户与使用token中的用户id不一致")
ngx.exit(ngx.HTTP_NOT_ALLOWED)
end
--读取请求体的数据
ngx.req.read_body()
--获取请求数据
local body_data = ngx.req.get_body_data()
-- 验证数据是否符合json
local ok = validator.validateJson(body_data)
--验证失败则返回
if not ok then
resp:response(status.PARAM_NOT_COMPLETE)
return
end
--将数据更新到数据表中
local code, ret = userDao.updateSystemUser(m.id, cjson.decode(body_data))
local state = status.SUCCESS
if code ~= 0 then state = status.DATA_IS_WRONG end
resp: response(state, ret)
end
return _M