LMS.service/LMS.service/Controllers/PermissionController.cs
2024-10-13 17:04:47 +08:00

135 lines
4.8 KiB
C#

using LMS.Repository.Models.Promission;
using LMS.Repository.RequestModel.Permission;
using LMS.service;
using LMS.service.Service.PermissionService;
using LMS.Tools.Extensions;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using static LMS.Common.Enums.ResponseCodeEnum;
namespace Lai_server.Controllers
{
[Route("lms/[controller]/[action]")]
[ApiController]
public class PermissionController : ControllerBase
{
private readonly PermissionService _permissionService;
public PermissionController(PermissionService permissionService)
{
_permissionService = permissionService;
}
#region
/// <summary>
/// 创建权限类型
/// </summary>
/// <param name="permissionType"></param>
/// <returns></returns>
[HttpPost]
[Authorize]
public async Task<ActionResult<APIResponseModel<object>>> AddPermissionType([FromBody] PermissionTypeModel permissionType)
{
if (!ModelState.IsValid)
{
return APIResponseModel<object>.CreateErrorResponseModel(ResponseCode.ParameterError);
}
long userId = ConvertExtension.ObjectToLong(HttpContext.Items["UserId"] ?? 0);
return await _permissionService.AddPermissionType(permissionType, userId);
}
/// <summary>
/// 新增权限类型
/// </summary>
/// <param name="permissionType"></param>
/// <returns></returns>
[HttpPost("{permissionId}")]
[Authorize]
public async Task<ActionResult<APIResponseModel<object>>> ModifyPermissionType(string permissionId, [FromBody] PermissionTypeModel permissionType)
{
if (!ModelState.IsValid)
{
return APIResponseModel<object>.CreateErrorResponseModel(ResponseCode.ParameterError);
}
long userId = ConvertExtension.ObjectToLong(HttpContext.Items["UserId"] ?? 0);
return await _permissionService.ModifyPermissionType(permissionId, permissionType, userId);
}
/// <summary>
/// 删除权限类型
/// </summary>
/// <param name="id"></param>
/// <param name="relation"></param>
/// <returns></returns>
[HttpDelete("{id}/{relation}")]
[Authorize]
public async Task<ActionResult<APIResponseModel<object>>> DeletePermissionType(string id, bool relation)
{
if (!ModelState.IsValid)
{
return APIResponseModel<object>.CreateErrorResponseModel(ResponseCode.ParameterError);
}
long userId = ConvertExtension.ObjectToLong(HttpContext.Items["UserId"] ?? 0);
return await _permissionService.DeletePermissionType(id, relation, userId);
}
#endregion
#region
/// <summary>
/// 添加对应的权限
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
[HttpPost]
[Authorize]
public async Task<ActionResult<APIResponseModel<object>>> AddPermission([FromBody] PermissionModel model)
{
if (!ModelState.IsValid)
{
return APIResponseModel<object>.CreateErrorResponseModel(ResponseCode.ParameterError);
}
long userId = ConvertExtension.ObjectToLong(HttpContext.Items["UserId"] ?? 0);
return await _permissionService.AddPermission(model, userId);
}
///// <summary>
///// 修改权限
///// </summary>
///// <param name="request"></param>
///// <returns></returns>
[HttpPost("{id}")]
[Authorize]
public async Task<ActionResult<APIResponseModel<object>>> ModfiyPermission(string id, [FromBody] PermissionModel request)
{
if (!ModelState.IsValid)
{
return APIResponseModel<object>.CreateErrorResponseModel(ResponseCode.ParameterError);
}
long userId = ConvertExtension.ObjectToLong(HttpContext.Items["UserId"] ?? 0);
return await _permissionService.ModfiyPermission(id, request, userId);
}
/// <summary>
/// 删除权限
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpDelete("{id}")]
[Authorize]
public async Task<ActionResult<APIResponseModel<string>>> DeletePermission(string Id)
{
if (!ModelState.IsValid)
{
return APIResponseModel<string>.CreateErrorResponseModel(ResponseCode.ParameterError);
}
long userId = ConvertExtension.ObjectToLong(HttpContext.Items["UserId"] ?? 0);
return await _permissionService.DeletePermission(Id, userId);
}
#endregion
}
}