first commit
This commit is contained in:
@@ -0,0 +1,65 @@
|
||||
using Microsoft.AspNetCore.Authentication.JwtBearer;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.IdentityModel.JsonWebTokens;
|
||||
using Microsoft.IdentityModel.Tokens;
|
||||
using OpenWarehouse.auth.lib.Model.Privilage;
|
||||
|
||||
namespace OpenWarehouse.auth.api.Controller;
|
||||
|
||||
[ApiController]
|
||||
[Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]
|
||||
[Route("[controller]/[action]")]
|
||||
public class Privilege(UserManager<ApplicationUser> userManager,
|
||||
PrivilegeManager privilegeManager, ILogger<Privilege> logger) : ControllerBase
|
||||
{
|
||||
[HttpPost]
|
||||
public async Task<ActionResult<List<string>>> GetUserPrivilege()
|
||||
{
|
||||
var userId = User.FindFirstValue(ClaimTypes.NameIdentifier);
|
||||
|
||||
logger.LogInformation("GetUserPrivilege request received for user: {UserId}", userId);
|
||||
if (userId == null)
|
||||
{
|
||||
logger.LogWarning("User ID not found in claims");
|
||||
return BadRequest();
|
||||
}
|
||||
|
||||
var user = await userManager.FindByIdAsync(userId);
|
||||
if (user == null)
|
||||
{
|
||||
logger.LogWarning("User not found for ID: {UserId}", userId);
|
||||
return Unauthorized("User not found");
|
||||
}
|
||||
|
||||
var privilege = await privilegeManager.GetUserPrivilage(user);
|
||||
logger.LogInformation("Privileges retrieved for user {UserId}", userId);
|
||||
|
||||
return Ok(privilege);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[HasPrivilege(GlobalPrivilage.Privilege.GlobalEditRole)]
|
||||
public async Task<ActionResult> CreatePrivilage([FromBody] CreatePrivilageModel privilage)
|
||||
{
|
||||
logger.LogInformation("CreatePrivilege request received for privilege: {Privilege}", privilage.Privilage);
|
||||
if (privilage is { Privilage: null })
|
||||
{
|
||||
logger.LogWarning("Invalid privilege model provided");
|
||||
return BadRequest();
|
||||
}
|
||||
|
||||
var ok = await privilegeManager.CreatePrivageAsync(privilage.Privilage);
|
||||
|
||||
if (ok.IsSuccessed)
|
||||
{
|
||||
logger.LogInformation("Privilege created successfully");
|
||||
return Created();
|
||||
}
|
||||
else
|
||||
{
|
||||
logger.LogWarning("Failed to create privilege");
|
||||
return BadRequest();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user