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;
}
}
}