mirror of
https://gitee.com/dotnetchina/OpenAuth.Net.git
synced 2026-03-30 05:03:24 +08:00
转移.net core 3.1,为.NET 5做准备
This commit is contained in:
248
OpenAuth.WebApi/Controllers/ModulesController.cs
Normal file
248
OpenAuth.WebApi/Controllers/ModulesController.cs
Normal file
@@ -0,0 +1,248 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Infrastructure;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using OpenAuth.App;
|
||||
using OpenAuth.App.Interface;
|
||||
using OpenAuth.Repository.Domain;
|
||||
|
||||
namespace OpenAuth.WebApi.Controllers
|
||||
{
|
||||
/// <summary>
|
||||
/// 模块及菜单管理
|
||||
/// </summary>
|
||||
[Route("api/[controller]/[action]")]
|
||||
[ApiController]
|
||||
public class ModulesController : ControllerBase
|
||||
{
|
||||
private ModuleManagerApp _app;
|
||||
private IAuth _authUtil;
|
||||
public ModulesController(IAuth authUtil, ModuleManagerApp app)
|
||||
{
|
||||
_app = app;
|
||||
_authUtil = authUtil;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 加载角色模块
|
||||
/// </summary>
|
||||
/// <param name="firstId">The role identifier.</param>
|
||||
/// <returns>System.String.</returns>
|
||||
[HttpGet]
|
||||
public Response<IEnumerable<Module>> LoadForRole(string firstId)
|
||||
{
|
||||
var result = new Response<IEnumerable<Module>>();
|
||||
try
|
||||
{
|
||||
result.Result = _app.LoadForRole(firstId);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
result.Code = 500;
|
||||
result.Message = ex.InnerException?.Message ?? ex.Message;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 根据某角色ID获取可访问某模块的菜单项
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
public Response<IEnumerable<ModuleElement>> LoadMenusForRole(string moduleId, string firstId)
|
||||
{
|
||||
var result = new Response<IEnumerable<ModuleElement>>();
|
||||
try
|
||||
{
|
||||
result.Result = _app.LoadMenusForRole(moduleId, firstId);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
result.Code = 500;
|
||||
result.Message = ex.InnerException?.Message ?? ex.Message;
|
||||
}
|
||||
|
||||
return result;
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取角色已经分配的字段
|
||||
/// </summary>
|
||||
/// <param name="roleId">角色id</param>
|
||||
/// <param name="moduleCode">模块代码,如Category</param>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
public Response<IEnumerable<string>> LoadPropertiesForRole(string roleId, string moduleCode)
|
||||
{
|
||||
var result = new Response<IEnumerable<string>>();
|
||||
try
|
||||
{
|
||||
result.Result = _app.LoadPropertiesForRole(roleId, moduleCode);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
result.Code = 500;
|
||||
result.Message = ex.InnerException?.Message ?? ex.Message;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取发起页面的菜单权限
|
||||
/// </summary>
|
||||
/// <returns>System.String.</returns>
|
||||
[HttpGet]
|
||||
public Response<List<ModuleElement>> LoadMenus(string moduleId)
|
||||
{
|
||||
var result = new Response<List<ModuleElement>>();
|
||||
try
|
||||
{
|
||||
var user = _authUtil.GetCurrentUser();
|
||||
if (string.IsNullOrEmpty(moduleId))
|
||||
{
|
||||
result.Result = user.ModuleElements;
|
||||
}
|
||||
else
|
||||
{
|
||||
var module = user.Modules.First(u => u.Id == moduleId);
|
||||
if (module == null)
|
||||
{
|
||||
throw new Exception("模块不存在");
|
||||
}
|
||||
result.Result = module.Elements;
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
result.Code = 500;
|
||||
result.Message = ex.InnerException?.Message ?? ex.Message;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
#region 添加编辑模块
|
||||
|
||||
//添加或修改
|
||||
[HttpPost]
|
||||
public Response<Module> Add(Module obj)
|
||||
{
|
||||
var result = new Response<Module>();
|
||||
try
|
||||
{
|
||||
_app.Add(obj);
|
||||
result.Result = obj;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
result.Code = 500;
|
||||
result.Message = ex.InnerException?.Message ?? ex.Message;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
//添加或修改
|
||||
[HttpPost]
|
||||
public Response Update(Module obj)
|
||||
{
|
||||
var result = new Response();
|
||||
try
|
||||
{
|
||||
_app.Update(obj);
|
||||
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
result.Code = 500;
|
||||
result.Message = ex.InnerException?.Message ?? ex.Message;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
[HttpPost]
|
||||
public Response Delete([FromBody]string[] ids)
|
||||
{
|
||||
var result = new Response();
|
||||
try
|
||||
{
|
||||
_app.Delete(ids);
|
||||
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
result.Code = 500;
|
||||
result.Message = ex.InnerException?.Message ?? ex.Message;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
#endregion 添加编辑模块
|
||||
|
||||
//添加或修改
|
||||
[HttpPost]
|
||||
public Response<ModuleElement> AddMenu(ModuleElement obj)
|
||||
{
|
||||
var result = new Response<ModuleElement>();
|
||||
try
|
||||
{
|
||||
_app.AddMenu(obj);
|
||||
result.Result = obj;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
result.Code = 500;
|
||||
result.Message = ex.InnerException?.Message ?? ex.Message;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
//添加或修改
|
||||
[HttpPost]
|
||||
public Response UpdateMenu(ModuleElement obj)
|
||||
{
|
||||
var result = new Response();
|
||||
try
|
||||
{
|
||||
_app.UpdateMenu(obj);
|
||||
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
result.Code = 500;
|
||||
result.Message = ex.InnerException?.Message ?? ex.Message;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
[HttpPost]
|
||||
public Response DeleteMenu([FromBody]string[] ids)
|
||||
{
|
||||
var result = new Response();
|
||||
try
|
||||
{
|
||||
_app.DelMenu(ids);
|
||||
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
result.Code = 500;
|
||||
result.Message = ex.InnerException?.Message ?? ex.Message;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user