Template
chore: deploy initial code base
This commit is contained in:
+51
@@ -0,0 +1,51 @@
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Strata.ContinuousImprovement.Biz.OpportunityRoleAssignment;
|
||||
using Strata.ContinuousImprovement.Biz.StrategicOpportunities;
|
||||
using Strata.CoreLib.Claims.Extensions;
|
||||
using System.Collections.Generic;
|
||||
using System;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using System.Linq;
|
||||
|
||||
namespace Strata.ContinuousImprovement.Api.Controllers
|
||||
{
|
||||
[ApiController]
|
||||
[ApiVersion("1.0")]
|
||||
[Route("api/v{api-version:apiVersion}/[controller]")]
|
||||
public class StrategicOpportunitySecurityController : ControllerBase
|
||||
{
|
||||
private readonly IStrategicOpportunityService _strategicOpportunityService;
|
||||
private readonly IOpportunityRoleAssignmentService _opportunityRoleAssignmentService;
|
||||
|
||||
public StrategicOpportunitySecurityController(IStrategicOpportunityService strategicOpportunityService, IOpportunityRoleAssignmentService opportunityRoleAssignmentService)
|
||||
{
|
||||
_strategicOpportunityService = strategicOpportunityService;
|
||||
_opportunityRoleAssignmentService = opportunityRoleAssignmentService;
|
||||
}
|
||||
|
||||
[HttpGet("{lootId}")]
|
||||
public async Task<RoleAssignmentView> GetUserPermissions(long lootId, CancellationToken cancellationToken)
|
||||
=> await _opportunityRoleAssignmentService.GetUserRoleAssignmentsAsync(lootId, cancellationToken);
|
||||
|
||||
[HttpGet("{lootId}/[action]")]
|
||||
public async Task<IEnumerable<OpportunityRoleAssignmentView>> GetSimpleSecurities(long lootId, CancellationToken cancellationToken)
|
||||
=> await _opportunityRoleAssignmentService.GetRoleAssignmentsAsync(lootId, cancellationToken);
|
||||
|
||||
[HttpPut("{lootId}/[action]")]
|
||||
[ProducesResponseType(StatusCodes.Status200OK)]
|
||||
[ProducesResponseType(StatusCodes.Status400BadRequest)]
|
||||
public async Task<ActionResult<bool>> SetSimpleSecurities(long lootId, [FromBody] List<OpportunityRoleAssignmentView> permissionSettings, CancellationToken cancellationToken)
|
||||
{
|
||||
if (permissionSettings.Any(ps => ps.LootId != lootId)) { return BadRequest(); }
|
||||
|
||||
var roleAssignments = await _opportunityRoleAssignmentService.GetUserRoleAssignmentsAsync(lootId, cancellationToken);
|
||||
var isSecurable = roleAssignments.CanSecure;
|
||||
var userGuid = User?.GetUserGuid() ?? Guid.NewGuid();
|
||||
if (!User.IsSdtEmployee() && !isSecurable) return Ok(false);
|
||||
await _opportunityRoleAssignmentService.SaveRoleAssignmentsAsync(lootId, permissionSettings, cancellationToken);
|
||||
return Ok(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user