public TUser CreateUserAndActivationRequest(TCreateUserForm form, Uri activateUserUrl) { var login = form.Login.Trim(); if (!EmailValidator.Validate(login)) { throw new IncorrectEmailException(); } var password = form.Password; if (!passwordValidator.Validate(password)) { throw new WeakPasswordException(); } var existingUser = userStorage.FindUserByLogin(login); if (existingUser != null) { throw new LoginAlreadyExistsException(login); } var userId = Guid.NewGuid(); var user = userProcessor.MakeUser(form, userId); SetUserPassword(user, password); userStorage.CreateUser(user); SendUserActivationRequest(user, activateUserUrl); return(userStorage.FindUser(userId)); }
public void SignUserIn(HttpResponseMessage response, Guid userId, bool rememberMe) { var user = userStorage.FindUser(userId); if (user == null) { throw new Exception($"Cannot find user {userId}"); } var authenticationToken = new AuthenticationToken(user.UserId); var encryptedBase64EncodedToken = authenticationTokenCryptography.EncryptTokenToBase64(authenticationToken); webApiAuthenticationCookieManager.SetTokenCookie(response, encryptedBase64EncodedToken, rememberMe); }
public void SignUserIn(HttpContextBase httpContext, Guid userId, bool rememberMe) { var user = userStorage.FindUser(userId); if (user == null) { throw new Exception(string.Format("Cannot find user {0}", userId)); } var authenticationToken = new AuthenticationToken(user.UserId); var encryptedBase64EncodedToken = authenticationTokenCryptography.EncryptTokenToBase64(authenticationToken); authenticationCookieManager.SetTokenCookie(httpContext, encryptedBase64EncodedToken, rememberMe); }
public ActionResult <User> GetbyId(int id) { User tmp = userStorage.FindUser(id); if (!userStorage.ContainsUser(id)) { return(NotFound()); } else { return(tmp); } }
public TUser ChangePassword(Guid changePasswordRequestId, string password) { var changePasswordRequest = changePasswordRequestDataStorage.FindChangePasswordRequest(changePasswordRequestId); if (changePasswordRequest == null) { throw new ChangePasswordRequestNotFoundException(changePasswordRequestId); } if (changePasswordRequest.IsUsed) { throw new ChangePasswordRequestAlreadyCompleteException(changePasswordRequestId); } if (changePasswordRequest.Expired) { throw new ChangePasswordRequestExpriredException(changePasswordRequestId); } if (!passwordValidator.Validate(password)) { throw new WeakPasswordException(); } var user = userStorage.FindUser(changePasswordRequest.UserId); if (user == null) { throw new UserNotFoundException(changePasswordRequest.UserId); } changePasswordRequest.PasswordChangeDateTime = DateTimeOffset.UtcNow; changePasswordRequestDataStorage.UpdateChangePasswordRequest(changePasswordRequest); SetUserPassword(user, password); if (!user.IsActive) { user.DateTimeActivated = DateTimeOffset.UtcNow; } userStorage.UpdateUser(user); return(userStorage.FindUser(user.UserId)); }
public TOrganizationUser AcceptExistingUserInvitation(Guid userInvitationId) { var userInvitation = GetUserInvitation(userInvitationId); var utcNow = DateTimeOffset.UtcNow; var user = userInvitation.InvitedUserId.HasValue ? userStorage.FindUser(userInvitation.InvitedUserId.Value) : userStorage.FindUserByLogin(userInvitation.Email); if (user == null) { throw new Exception("Invited user not found"); } var organizationUserId = Guid.NewGuid(); var existingOrganizationUser = organizationUserStorage .FindOrganizationUsersByUser(user.UserId) .FirstOrDefault(u => u.OrganizationId == organizationUserId && u.DateTimeDeleted == null); if (existingOrganizationUser != null) { throw new ClientSideErrorMessageException("Извините, это приглашение уже принято", $"User {user.UserId} already added to Organization {organizationUserId} (Invitation {userInvitationId})"); } var organizationUser = new TOrganizationUser { OrganizationUserId = organizationUserId, OrganizationId = userInvitation.OrganizationId, UserId = user.UserId, DateTimeCreated = utcNow }; userInvitation.Status = UserInvitationStatus.Accepted; userInvitation.DateTimeProcessed = utcNow; userInvitationStorage.UpdateUserInvitation(userInvitation); organizationUserStorage.CreateOrganizationUser(organizationUser); return(organizationUserStorage.FindOrganizationUser(organizationUserId)); }