135 lines
4.8 KiB
C#
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
|
|
}
|
|
}
|