Table of Contents

Class DashboardConfigurationsController

Namespace
KadicErp.WebApi.Controllers.Dashboard
Assembly
KadicErp.WebApi.dll
[ApiController]
[Authorize]
[Route("api/v1/dashboard/configurations")]
public sealed class DashboardConfigurationsController : ControllerBase
Inheritance
object
ControllerBase
DashboardConfigurationsController

Constructors

DashboardConfigurationsController(IMediator, ITenantIdContext, ICurrentUser)

public DashboardConfigurationsController(IMediator mediator, ITenantIdContext tenantContext, ICurrentUser currentUser)

Parameters

mediator IMediator
tenantContext ITenantIdContext
currentUser ICurrentUser

Methods

DeleteConfiguration(Guid)

[HttpDelete("{roleId:guid}")]
[Authorize(Policy = "ADMIN_REPORTING_DASHBOARD_CONFIG_MANAGE")]
public Task<IActionResult> DeleteConfiguration(Guid roleId)

Parameters

roleId Guid

Returns

Task<IActionResult>

GetByRoleId(Guid)

[HttpGet("{roleId:guid}")]
[Authorize(Policy = "ADMIN_REPORTING_DASHBOARD_CONFIG_VIEW")]
public Task<IActionResult> GetByRoleId(Guid roleId)

Parameters

roleId Guid

Returns

Task<IActionResult>

GetMine()

Self-service variant of GetByRoleId(Guid): resolves the caller's own tenant role from the JWT server-side instead of taking a roleId from the request, so any authenticated user can load their own configured dashboard widgets without needing the admin-only DashboardConfigurations.View permission (which is meant to gate viewing/managing dashboard layouts for arbitrary roles, not "my own").

Unlike GetByRoleId, "no configuration yet" is 200 OK with a null body, not 404. For this endpoint that's the ordinary state for most non-admin users (nobody has customized their dashboard), not an error — a 404 here would just be permanent console/network noise on every login for the majority of users.

[HttpGet("mine")]
public Task<IActionResult> GetMine()

Returns

Task<IActionResult>

SaveConfiguration(SaveDashboardConfigurationCommand)

[HttpPost]
[Authorize(Policy = "ADMIN_REPORTING_DASHBOARD_CONFIG_MANAGE")]
public Task<IActionResult> SaveConfiguration(SaveDashboardConfigurationCommand command)

Parameters

command SaveDashboardConfigurationCommand

Returns

Task<IActionResult>

UpdateConfiguration(Guid, UpdateDashboardConfigurationCommand)

[HttpPut("{roleId:guid}")]
[Authorize(Policy = "ADMIN_REPORTING_DASHBOARD_CONFIG_MANAGE")]
public Task<IActionResult> UpdateConfiguration(Guid roleId, UpdateDashboardConfigurationCommand command)

Parameters

roleId Guid
command UpdateDashboardConfigurationCommand

Returns

Task<IActionResult>