Class PermissionsController
- Namespace
- KadicAuth.Api.Controllers
- Assembly
- KadicAuth.Api.dll
[ApiController]
[Authorize]
[Route("api/[controller]")]
[Produces("application/json", new string[] { })]
public class PermissionsController : ControllerBase
- Inheritance
-
objectControllerBasePermissionsController
Constructors
PermissionsController(IMediator, ILogger<PermissionsController>, IStringLocalizer<AuthMessages>)
public PermissionsController(IMediator mediator, ILogger<PermissionsController> logger, IStringLocalizer<AuthMessages> localizer)
Parameters
mediatorIMediatorloggerILogger<PermissionsController>localizerIStringLocalizer<AuthMessages>
Methods
CreatePermission(CreatePermissionDto, CancellationToken)
Create a new permission
[HttpPost]
[Authorize(Policy = "AUTH_PERMISSIONS_CREATE")]
[ProducesResponseType(typeof(Result<Guid>), 201)]
[ProducesResponseType(typeof(Result), 400)]
[ProducesResponseType(typeof(Result), 409)]
public Task<ActionResult> CreatePermission(CreatePermissionDto request, CancellationToken cancellationToken)
Parameters
requestCreatePermissionDtocancellationTokenCancellationToken
Returns
- Task<ActionResult>
DeletePermission(Guid, CancellationToken)
Delete a permission
[HttpDelete("{id:guid}")]
[Authorize(Policy = "AUTH_PERMISSIONS_DELETE")]
[ProducesResponseType(200)]
[ProducesResponseType(typeof(Error), 400)]
public Task<ActionResult> DeletePermission(Guid id, CancellationToken cancellationToken)
Parameters
idGuidcancellationTokenCancellationToken
Returns
- Task<ActionResult>
GetPermissionByCode(string, CancellationToken)
Get a permission by its code
[HttpGet("by-code/{code}")]
[Authorize(Policy = "AUTH_PERMISSIONS_VIEW")]
[ProducesResponseType(typeof(PermissionDto), 200)]
[ProducesResponseType(typeof(Error), 404)]
[ProducesResponseType(typeof(Error), 400)]
public Task<ActionResult<PermissionDto>> GetPermissionByCode(string code, CancellationToken cancellationToken)
Parameters
codestringcancellationTokenCancellationToken
Returns
- Task<ActionResult<PermissionDto>>
GetPermissionById(Guid, CancellationToken)
Get permission by ID
[HttpGet("{id:guid}")]
[Authorize(Policy = "AUTH_PERMISSIONS_VIEW")]
[ProducesResponseType(typeof(PermissionDto), 200)]
[ProducesResponseType(typeof(Error), 404)]
public Task<ActionResult<PermissionDto>> GetPermissionById(Guid id, CancellationToken cancellationToken)
Parameters
idGuidcancellationTokenCancellationToken
Returns
- Task<ActionResult<PermissionDto>>
GetPermissions(PaginatorRequestDto, CancellationToken)
Get all permissions paginated
[HttpGet]
[Authorize(Policy = "AUTH_PERMISSIONS_VIEW")]
[ProducesResponseType(typeof(PaginatorResponseDto<PermissionDto>), 200)]
[ProducesResponseType(typeof(Error), 400)]
public Task<ActionResult<PaginatorResponseDto<PermissionDto>>> GetPermissions(PaginatorRequestDto paginatorRequest, CancellationToken cancellationToken)
Parameters
paginatorRequestPaginatorRequestDtocancellationTokenCancellationToken
Returns
- Task<ActionResult<PaginatorResponseDto<PermissionDto>>>
GetRolesByPermissionSlug(string, CancellationToken)
Get all roles that have a specific permission assigned, looked up by permission code (slug)
[HttpGet("by-slug/{slug}/roles")]
[Authorize(Policy = "AUTH_PERMISSIONS_VIEW")]
[ProducesResponseType(typeof(List<RoleDto>), 200)]
[ProducesResponseType(typeof(Error), 400)]
public Task<ActionResult<List<RoleDto>>> GetRolesByPermissionSlug(string slug, CancellationToken cancellationToken)
Parameters
slugstringcancellationTokenCancellationToken
Returns
- Task<ActionResult<List<RoleDto>>>
SeedPermissions(SeedPermissionsCommand, CancellationToken)
Seed permissions in bulk: creates submodules if needed, inserts permissions that don't exist, and assigns all new permissions to every active Role and TenantRole. Idempotent — already-existing permissions are skipped.
[HttpPost("seed")]
[Authorize(Policy = "AUTH_PERMISSIONS_CREATE")]
[ProducesResponseType(typeof(Result<SeedPermissionsResult>), 200)]
[ProducesResponseType(typeof(Result), 400)]
[ProducesResponseType(typeof(Result), 422)]
public Task<ActionResult> SeedPermissions(SeedPermissionsCommand command, CancellationToken cancellationToken)
Parameters
commandSeedPermissionsCommandcancellationTokenCancellationToken
Returns
- Task<ActionResult>
UpdatePermission(Guid, UpdatePermissionDto, CancellationToken)
Update an existing permission
[HttpPut("{id:guid}")]
[Authorize(Policy = "AUTH_PERMISSIONS_UPDATE")]
[ProducesResponseType(typeof(Result), 200)]
[ProducesResponseType(typeof(Result), 404)]
[ProducesResponseType(typeof(Result), 400)]
public Task<ActionResult> UpdatePermission(Guid id, UpdatePermissionDto request, CancellationToken cancellationToken)
Parameters
idGuidrequestUpdatePermissionDtocancellationTokenCancellationToken
Returns
- Task<ActionResult>