Ejemplo n.º 1
0
 public static ActorClaim ToModel(this ActorClaimRequest actorClaimContract)
 {
     return(new ActorClaim
     {
         ActorId = actorClaimContract.ActorId.Value,
         ClaimId = actorClaimContract.ClaimId.Value,
         EntityId = actorClaimContract.EntityId.Value
     });
 }
Ejemplo n.º 2
0
        public async Task <IActionResult> Create([FromBody] ActorClaimRequest newClaim)
        {
            var newClaimInfo = _claimCoreController.Get(newClaim.ClaimId.Value);

            if (newClaimInfo.ClaimScope == ClaimScope.Global)
            {
                newClaim.EntityId = Platform.AllId;
            }
            if ((await _authorizationService.AuthorizeAsync(User, newClaim.EntityId, HttpContext.ScopeItems(newClaimInfo.ClaimScope))).Succeeded)
            {
                var claimScope    = _claimCoreController.Get(newClaim.ClaimId.Value).ClaimScope;
                var creatorClaims = _actorClaimCoreController.GetActorClaimsForEntity(int.Parse(User.Identity.Name), newClaim.EntityId.Value, claimScope);
                if (creatorClaims.Select(cc => cc.Id).Contains(newClaim.ClaimId.Value))
                {
                    var claim = newClaim.ToModel();
                    _actorClaimCoreController.Create(claim);
                    var claimContract = claim.ToContract();
                    return(new ObjectResult(claimContract));
                }
            }
            return(Forbid());
        }