Esempio n. 1
0
        public async Task <AppUserDTOOut> UpdateRole(string id, AppUserDTOIn appUserDTOIn)
        {
            logger.Info($"Accessing db over auth repo, find user by id {id}, user service, update role");
            AppUser user = await db.AuthRepository.FindUserById(id);

            if (user == null)
            {
                logger.Info("Throwing an user not found exception, no user found update role, user service");
                throw new UserNotFoundException($"User with ID {id} does not exists.");
            }

            logger.Info("Sending user to find new role name by ID, user service, update role");
            IdentityRole roleById = await db.AuthRepository.FindRoleById(appUserDTOIn.RoleId);

            user.Roles.Clear();
            var result = await db.AuthRepository.UpdateRole(user.Id, roleById.Name);

            if (!result.Succeeded)
            {
                logger.Info("Role update failed, result not succeeded, user service");
                return(null);
            }

            AppUserDTOOut appUserDTO = new AppUserDTOOut()
            {
                Id        = user.Id,
                FirstName = user.FirstName,
                LastName  = user.LastName,
                UserName  = user.UserName,
                RoleId    = roleById.Id
            };

            return(appUserDTO);
        }
Esempio n. 2
0
        public async Task <IHttpActionResult> PutRole(string id, AppUserDTOIn userModel)
        {
            string userId = ((ClaimsPrincipal)RequestContext.Principal).FindFirst(x => x.Type == "UserId").Value;

            if (!id.Equals(userModel.Id))
            {
                logger.Info("Id does not match, put role, account controller");
                return(BadRequest("Id not match"));
            }

            logger.Info($"Aadmin {userId} sent {userModel.UserName} to user service, put role");
            var updatedRole = await service.UpdateRole(id, userModel);

            if (updatedRole == null)
            {
                logger.Info($"User role {userModel.UserName} has not been updated. Update failed, put role.");
                return(NotFound());
            }

            return(Ok(updatedRole));
        }