using System; using Infrastructure; using Microsoft.AspNetCore.Mvc; using OpenAuth.App; using OpenAuth.App.Interface; using OpenAuth.App.Request; namespace OpenAuth.WebApi.Controllers { /// /// 分配资源/分配字段等 /// [Route("api/[controller]/[action]")] [ApiController] [ApiExplorerSettings(GroupName = "分配资源_AccessObjs")] public class AccessObjsController : ControllerBase { private readonly RevelanceManagerApp _app; private readonly IAuth _authUtil; public AccessObjsController(IAuth authUtil, RevelanceManagerApp app) { _app = app; _authUtil = authUtil; } /// /// 添加关联 /// 比如给用户分配资源,那么firstId就是用户ID,secIds就是资源ID列表 /// /// [HttpPost] public Response Assign(AssignReq request) { var result = new Response(); try { _app.Assign(request); } catch (Exception ex) { result.Code = 500; result.Message = ex.InnerException?.Message ?? ex.Message; } return result; } /// /// 取消关联 /// [HttpPost] public Response UnAssign(AssignReq request) { var result = new Response(); try { _app.UnAssign(request); } catch (Exception ex) { result.Code = 500; result.Message = ex.InnerException?.Message ?? ex.Message; } return result; } /// /// 角色分配数据字段权限 /// /// [HttpPost] public Response AssignDataProperty(AssignDataReq request) { var result = new Response(); try { _app.AssignData(request); } catch (Exception ex) { result.Code = 500; result.Message = ex.InnerException?.Message ?? ex.Message; } return result; } /// /// 取消角色的数据字段权限 /// 如果Properties为空,则把角色的某一个模块权限全部删除 /// 如果moduleId为空,直接把角色的所有授权删除 /// /// /// private static string lockobj = "lock"; [HttpPost] public Response UnAssignDataProperty(AssignDataReq request) { var result = new Response(); try { lock (lockobj) { _app.UnAssignData(request); } } catch (Exception ex) { result.Code = 500; result.Message = ex.InnerException?.Message ?? ex.Message; } return result; } /// /// 角色分配用户,整体提交,会覆盖之前的配置 /// [HttpPost] public Response AssignRoleUsers(AssignRoleUsers request) { var result = new Response(); try { _app.AssignRoleUsers(request); } catch (Exception ex) { result.Code = 500; result.Message = ex.InnerException?.Message ?? ex.Message; } return result; } /// /// 部门分配用户,整体提交,会覆盖之前的配置 /// [HttpPost] public Response AssignOrgUsers(AssignOrgUsers request) { var result = new Response(); try { _app.AssignOrgUsers(request); } catch (Exception ex) { result.Code = 500; result.Message = ex.InnerException?.Message ?? ex.Message; } return result; } } }