Add functionality to list roles and fetch the usercount inside that role

closes: #1
This commit is contained in:
2025-10-15 13:13:34 +02:00
parent 2c3df4c338
commit e1e05eea9b
5 changed files with 84 additions and 25 deletions

View File

@@ -9,6 +9,8 @@ using SZUAbsolventenverein.Module.AdminModules.Services;
using Oqtane.Controllers;
using System.Net;
using System.Threading.Tasks;
using SZUAbsolventenverein.Module.AdminModules.Models;
using Oqtane.Models;
namespace SZUAbsolventenverein.Module.AdminModules.Controllers
{
@@ -41,7 +43,7 @@ namespace SZUAbsolventenverein.Module.AdminModules.Controllers
}
// GET api/<controller>/5
[HttpGet("{id}/{moduleid}")]
[HttpGet("get/{id}/{moduleid}")]
[Authorize(Policy = PolicyNames.ViewModule)]
public async Task<Models.AdminModules> Get(int id, int moduleid)
{
@@ -111,21 +113,39 @@ namespace SZUAbsolventenverein.Module.AdminModules.Controllers
}
}
// GET api/<controller>/5/roles
[HttpGet("roles/{id}")]
// GET api/<controller>/roles
[HttpGet("roles")]
[Authorize(Policy = PolicyNames.ViewModule)]
public async Task<List<Role>> GetRoles(string moduleid)
{
int ModuleId;
if (int.TryParse(moduleid, out ModuleId) && IsAuthorizedEntityId(EntityNames.Module, ModuleId))
{
return await _AdminModulesService.GetRoles(ModuleId);
}
else
{
_logger.Log(LogLevel.Error, this, LogFunction.Security, "Unauthorized AdminModules Get Attempt {ModuleId}", moduleid);
HttpContext.Response.StatusCode = (int)HttpStatusCode.Forbidden;
return null;
}
}
// Post api/<controller>/roles/5
[HttpPost("roles/{id}")]
[Authorize(Policy = PolicyNames.EditModule)]
public async Task<int> GetUserCount(int id, [FromBody] Models.EmailFields EmailFields)
public async Task<EmailFields> PostUserCount(int id, [FromBody] EmailFields EmailFields)
{
if (ModelState.IsValid && EmailFields.AdminModulesId == id && IsAuthorizedEntityId(EntityNames.Module, EmailFields.ModuleId))
{
return await _AdminModulesService.GetUsercountInRole(EmailFields);
return await _AdminModulesService.PostUsercountInRole(EmailFields);
}
else
{
_logger.Log(LogLevel.Error, this, LogFunction.Security, "Unauthorized AdminModules Put Attempt {AdminModules}", EmailFields);
HttpContext.Response.StatusCode = (int)HttpStatusCode.Forbidden;
EmailFields = null;
return -1;
return null;
}
}
}