Ejemplo n.º 1
0
        public async Task <IActionResult> DeleteUser(string id)
        {
            string currentUserId = _userManager.GetUserId(User);

            if (currentUserId == id)
            {
                return(StatusCode((int)HttpStatusCode.BadRequest, _localizer["YouCanNotDeleteYourself"].Value));
            }

            GoNorthUser user = await _userDbAccess.GetUserById(id);

            IdentityResult result = await _userManager.DeleteAsync(user);

            if (result.Succeeded)
            {
                _logger.LogInformation("User was deleted.");

                await _timelineService.AddTimelineEntry(TimelineEvent.UserDeleted, user.Email);

                return(Ok(id));
            }
            else
            {
                return(ReturnErrorResultFromIdentityResult(result));
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Removes the unused roles for the users
        /// </summary>
        /// <param name="userDbAccess">Usser Db Access</param>
        /// <returns>Task</returns>
        private async Task RemoveUnusedRolesForUsers(IUserDbAccess userDbAccess)
        {
            List <string>       existingRoles = RoleNames.GetAllRoleNames();
            IList <GoNorthUser> users         = await userDbAccess.GetUsers(0, int.MaxValue);

            foreach (GoNorthUser curUser in users)
            {
                IEnumerable <string> deletedRoles = curUser.Roles.Except(existingRoles);
                if (deletedRoles != null && deletedRoles.Any())
                {
                    GoNorthUser user = await userDbAccess.GetUserById(curUser.Id);

                    user.Roles = curUser.Roles.Except(deletedRoles).ToList();
                    await userDbAccess.UpdateUser(user);
                }
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Finds a user by his id
        /// </summary>
        /// <param name="userId">User Id</param>
        /// <param name="cancellationToken">Cancellation token</param>
        /// <returns>User</returns>
        public async Task <GoNorthUser> FindByIdAsync(string userId, CancellationToken cancellationToken)
        {
            GoNorthUser user = await _UserDbAccess.GetUserById(userId);

            return(user);
        }