You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
142 lines
3.8 KiB
142 lines
3.8 KiB
var express = require('express');
|
|
var router = express.Router();
|
|
var path = require("path");
|
|
|
|
// 获取验证模块
|
|
var authorization = require(path.join(process.cwd(),"/modules/authorization"));
|
|
|
|
// 角色管理模块
|
|
var roleServ = authorization.getService("RoleService");
|
|
|
|
// 获取角色列表
|
|
router.get("/",
|
|
// 参数验证
|
|
function(req,res,next){
|
|
next();
|
|
},
|
|
// 处理业务逻辑
|
|
function(req,res,next) {
|
|
roleServ.getAllRoles(function(err,result) {
|
|
if(err) return res.sendResult(null,400,err);
|
|
res.sendResult(result,200,"获取成功");
|
|
})(req,res,next);
|
|
}
|
|
);
|
|
|
|
// 创建角色
|
|
router.post("/",
|
|
// 参数验证
|
|
function(req,res,next) {
|
|
if(!req.body.roleName) return res.sendResult(null,400,"角色名称不能为空");
|
|
next();
|
|
},
|
|
// 处理业务逻辑
|
|
function(req,res,next) {
|
|
roleServ.createRole({
|
|
"roleName":req.body.roleName,
|
|
"roleDesc":req.body.roleDesc
|
|
},function(err,role){
|
|
if(err) return res.sendResult(null,400,err);
|
|
res.sendResult(role,201,"创建成功");
|
|
})(req,res,next);
|
|
}
|
|
);
|
|
|
|
// 获取角色详情
|
|
router.get("/:id",
|
|
// 参数验证
|
|
function(req,res,next) {
|
|
if(!req.params.id) return res.sendResult(null,400,"角色ID不能为空");
|
|
if(isNaN(parseInt(req.params.id))) res.sendResult(null,400,"角色ID必须为数字");
|
|
next();
|
|
},
|
|
// 处理业务逻辑
|
|
function(req,res,next) {
|
|
roleServ.getRoleById(
|
|
req.params.id,
|
|
function(err,result){
|
|
if(err) return res.sendResult(null,400,err);
|
|
res.sendResult(result,200,"获取成功");
|
|
})(req,res,next);
|
|
}
|
|
);
|
|
|
|
// 更新角色信息
|
|
router.put("/:id",
|
|
// 参数验证
|
|
function(req,res,next) {
|
|
if(!req.params.id) return res.sendResult(null,400,"角色ID不能为空");
|
|
if(isNaN(parseInt(req.params.id))) return res.sendResult(null,400,"角色ID必须为数字");
|
|
if(!req.body.roleName) return res.sendResult(null,400,"角色名称不能为空");
|
|
next();
|
|
},
|
|
// 处理业务逻辑
|
|
function(req,res,next) {
|
|
roleServ.updateRole(
|
|
{
|
|
"id":req.params.id,
|
|
"roleName":req.body.roleName,
|
|
"roleDesc":req.body.roleDesc
|
|
},
|
|
function(err,result){
|
|
if(err) return res.sendResult(null,400,err);
|
|
res.sendResult(result,200,"获取成功");
|
|
})(req,res,next);
|
|
}
|
|
);
|
|
|
|
// 删除角色
|
|
router.delete("/:id",
|
|
// 参数验证
|
|
function(req,res,next) {
|
|
if(!req.params.id) return res.sendResult(null,400,"角色ID不能为空");
|
|
if(isNaN(parseInt(req.params.id))) return res.sendResult(null,400,"角色ID必须为数字");
|
|
next();
|
|
},
|
|
// 处理业务逻辑
|
|
function(req,res,next) {
|
|
roleServ.deleteRole(
|
|
req.params.id,
|
|
function(err,success){
|
|
if(err) return res.sendResult(null,400,err);
|
|
res.sendResult(null,200,"删除成功");
|
|
})(req,res,next);
|
|
}
|
|
);
|
|
|
|
// 为角色授权
|
|
router.post("/:id/rights",
|
|
// 参数校验
|
|
function(req,res,next) {
|
|
if(!req.params.id) return res.sendResult(null,400,"角色ID不能为空");
|
|
if(isNaN(parseInt(req.params.id))) res.sendResult(null,400,"角色ID必须为数字");
|
|
next();
|
|
},
|
|
// 业务逻辑
|
|
function(req,res,next) {
|
|
roleServ.updateRoleRight(req.params.id,req.body.rids,function(err,newRole){
|
|
if(err) return res.sendResult(null,400,err);
|
|
res.sendResult(null,200,"更新成功");
|
|
})(req,res,next);
|
|
}
|
|
);
|
|
|
|
// 删除角色权限
|
|
router.delete("/:id/rights/:rightId",
|
|
// 参数验证
|
|
function(req,res,next) {
|
|
if(!req.params.id) return res.sendResult(null,400,"角色ID不能为空");
|
|
if(isNaN(parseInt(req.params.id))) res.sendResult(null,400,"角色ID必须为数字");
|
|
if(isNaN(parseInt(req.params.rightId))) res.sendResult(null,400,"权限ID必须为数字");
|
|
next();
|
|
},
|
|
// 业务逻辑
|
|
function(req,res,next) {
|
|
roleServ.deleteRoleRight(req.params.id,req.params.rightId,function(err,result){
|
|
if(err) return res.sendResult(null,400,err);
|
|
res.sendResult(result,200,"取消权限成功");
|
|
})(req,res,next);
|
|
}
|
|
);
|
|
|
|
module.exports = router; |