Class RolesController
- Namespace
- KadicAuth.Api.Controllers
- Assembly
- KadicAuth.Api.dll
[ApiController]
[Authorize]
[Route("api/[controller]")]
[Produces("application/json", new string[] { })]
public class RolesController : ControllerBase
- Inheritance
-
objectControllerBaseRolesController
Constructors
RolesController(IMediator, ILogger<RolesController>, IStringLocalizer<AuthMessages>)
public RolesController(IMediator mediator, ILogger<RolesController> logger, IStringLocalizer<AuthMessages> localizer)
Parameters
mediatorIMediatorloggerILogger<RolesController>localizerIStringLocalizer<AuthMessages>
Methods
AssignPermissionsBatchToRole(Guid, AssignPermissionsBatchRequest, CancellationToken)
Assign multiple permissions to a role by permission IDs
[HttpPost("{roleId:guid}/assign-batch-permissions")]
[Authorize(Policy = "AUTH_ROLES_ASSIGN_PERMISSIONS")]
[ProducesResponseType(typeof(AssignPermissionsBatchResult), 200)]
[ProducesResponseType(typeof(Error), 400)]
public Task<ActionResult<AssignPermissionsBatchResult>> AssignPermissionsBatchToRole(Guid roleId, AssignPermissionsBatchRequest request, CancellationToken cancellationToken)
Parameters
roleIdGuidrequestAssignPermissionsBatchRequestcancellationTokenCancellationToken
Returns
- Task<ActionResult<AssignPermissionsBatchResult>>
AssignPermissionsByCodeToRole(Guid, AssignPermissionsByCodesRequest, CancellationToken)
Assign multiple permissions to a role by permission codes (resolves codes to IDs server-side)
[HttpPost("{roleId:guid}/permissions/assign")]
[Authorize(Policy = "AUTH_ROLES_ASSIGN_PERMISSIONS")]
[ProducesResponseType(typeof(AssignPermissionsToRoleResult), 200)]
[ProducesResponseType(typeof(Error), 400)]
public Task<ActionResult<AssignPermissionsToRoleResult>> AssignPermissionsByCodeToRole(Guid roleId, AssignPermissionsByCodesRequest request, CancellationToken cancellationToken)
Parameters
roleIdGuidrequestAssignPermissionsByCodesRequestcancellationTokenCancellationToken
Returns
- Task<ActionResult<AssignPermissionsToRoleResult>>
CreateRole(CreateRoleDto, CancellationToken)
Create a new role
[HttpPost]
[Authorize(Policy = "AUTH_ROLES_CREATE")]
[ProducesResponseType(typeof(Result<Guid>), 201)]
[ProducesResponseType(typeof(Result), 400)]
[ProducesResponseType(typeof(Result), 409)]
public Task<ActionResult> CreateRole(CreateRoleDto request, CancellationToken cancellationToken)
Parameters
requestCreateRoleDtocancellationTokenCancellationToken
Returns
- Task<ActionResult>
DeleteRole(Guid, CancellationToken)
Delete a role by ID
[HttpDelete("{id:guid}")]
[Authorize(Policy = "AUTH_ROLES_DELETE")]
[ProducesResponseType(204)]
[ProducesResponseType(typeof(Error), 404)]
[ProducesResponseType(typeof(Error), 400)]
public Task<IActionResult> DeleteRole(Guid id, CancellationToken cancellationToken)
Parameters
idGuidcancellationTokenCancellationToken
Returns
- Task<IActionResult>
GetRoleById(Guid, CancellationToken)
Get role by ID
[HttpGet("{id:guid}")]
[Authorize(Policy = "AUTH_ROLES_VIEW")]
[ProducesResponseType(typeof(RoleDto), 200)]
[ProducesResponseType(typeof(Error), 404)]
[ProducesResponseType(typeof(Error), 400)]
public Task<ActionResult<RoleDto>> GetRoleById(Guid id, CancellationToken cancellationToken)
Parameters
idGuidcancellationTokenCancellationToken
Returns
- Task<ActionResult<RoleDto>>
GetRoles(PaginatorRequestDto, Guid?, CancellationToken)
Get paginated list of roles
[HttpGet("role-permissions-paginated")]
[Authorize(Policy = "AUTH_ROLES_VIEW")]
[ProducesResponseType(typeof(PaginatorResponseDto<RoleDto>), 200)]
[ProducesResponseType(typeof(Error), 400)]
public Task<ActionResult<PaginatorResponseDto<RoleDto>>> GetRoles(PaginatorRequestDto paginatorRequest, Guid? roleId = null, CancellationToken cancellationToken = default)
Parameters
paginatorRequestPaginatorRequestDtoroleIdGuid?cancellationTokenCancellationToken
Returns
- Task<ActionResult<PaginatorResponseDto<RoleDto>>>
UpdateRoleWithPermissions(Guid, UpsertRolePermissionsRequest, CancellationToken)
Update role and manage permissions (upsert pattern)
[HttpPut("{id:guid}/update-with-permissions")]
[Authorize(Policy = "AUTH_ROLES_UPDATE")]
[ProducesResponseType(typeof(RoleUpsertResult), 200)]
[ProducesResponseType(typeof(Error), 400)]
public Task<ActionResult<RoleUpsertResult>> UpdateRoleWithPermissions(Guid id, UpsertRolePermissionsRequest request, CancellationToken cancellationToken)
Parameters
idGuidrequestUpsertRolePermissionsRequestcancellationTokenCancellationToken
Returns
- Task<ActionResult<RoleUpsertResult>>