113 lines
2.8 KiB
C#
113 lines
2.8 KiB
C#
using Dlhis.Sys.Identity.Request;
|
|
using Dlhis.Sys.Identity.Response;
|
|
using Dlhis.Sys.Identity.Services;
|
|
using Kurisu.AspNetCore.DataAccess.Dto;
|
|
using Microsoft.AspNetCore.Authorization;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
|
|
namespace Dlhis.Sys.Identity.Controllers;
|
|
|
|
/// <summary>
|
|
/// 角色
|
|
/// </summary>
|
|
[Authorize]
|
|
[Route("api/[controller]")]
|
|
[ApiController]
|
|
public class RolesController : ControllerBase
|
|
{
|
|
private readonly IRoleService _roleService;
|
|
|
|
public RolesController(IRoleService roleService)
|
|
{
|
|
_roleService = roleService;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取角色分页
|
|
/// </summary>
|
|
/// <param name="request"></param>
|
|
/// <returns></returns>
|
|
[Authorize(Roles = "admin")]
|
|
[HttpGet("page")]
|
|
public async Task<Pagination<RoleResponse>> GetPageAsync([FromQuery] RolePageRequest request)
|
|
{
|
|
return await _roleService.GetPageAsync(request);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 角色列表
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
[Authorize(Roles = "admin")]
|
|
[HttpGet("list")]
|
|
public async Task<List<RoleResponse>> GetListAsync()
|
|
{
|
|
return await _roleService.GetListAsync();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 分配角色
|
|
/// </summary>
|
|
/// <param name="request"></param>
|
|
/// <returns></returns>
|
|
[Authorize(Roles = "admin,tenant-admin")]
|
|
[HttpPost("assign")]
|
|
public async Task AssignRole(RoleAssignRequest request)
|
|
{
|
|
await _roleService.AssignRoleAsync(request);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 保存角色
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
[Authorize(Roles = "admin")]
|
|
[HttpPost("save")]
|
|
public async Task SaveRole(RoleSaveRequest request)
|
|
{
|
|
await _roleService.SaveRoleAsync(request);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 移除角色
|
|
/// </summary>
|
|
/// <param name="request"></param>
|
|
/// <returns></returns>
|
|
[Authorize(Roles = "admin")]
|
|
[HttpPost("delete")]
|
|
public async Task RemoveRole(IdRequest request)
|
|
{
|
|
await _roleService.RemoveRoleAsync(request);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 我的角色
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
[HttpGet("my")]
|
|
public async Task<RoleResponse> GetMyRoleAsync(int? userId)
|
|
{
|
|
return await _roleService.GetMyRoleAsync(userId);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 设置混淆
|
|
/// </summary>
|
|
/// <param name="request"></param>
|
|
[HttpPost("obfuscate")]
|
|
public async Task SaveRoleObfuscateAsync(RoleObfuscateRequest request)
|
|
{
|
|
await _roleService.SaveRoleObfuscateAsync(request);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取混淆状态
|
|
/// </summary>
|
|
/// <param name="id"></param>
|
|
/// <returns></returns>
|
|
[HttpGet("obfuscate")]
|
|
public async Task<bool> GetRoleObfuscateAsync(int id)
|
|
{
|
|
return await _roleService.GetRoleObfuscateAsync(id);
|
|
}
|
|
} |