예제 #1
0
        public async Task <IActionResult> UpdateRole(RoleUpdateRequest request)
        {
            //Recupero l'elemento dal business layer
            var entity = AuthorizationLayer.GetRole(request.RoleId);

            //modifica solo se admin o se utente richiedente è lo stesso che ha creato
            if (entity == null)
            {
                return(NotFound());
            }

            //Aggiornamento dell'entità
            entity.Name        = request.Name;
            entity.Description = request.Description;

            //Salvataggio
            var validations = await AuthorizationLayer.UpdateRole(entity, PlatformUtils.GetIdentityUserId(User));

            if (validations.Count > 0)
            {
                return(BadRequest(validations));
            }


            var permissions = AuthorizationLayer.FetchPermissionsOnRole(entity.Id);

            //Confermo
            return(Ok(ContractUtils.GenerateContract(entity, permissions)));
        }