public Response <object> ChangePasswordFromProfile(string password) { var userId = int.Parse(NetworkHelper._contextAccessor.HttpContext.User.FindFirst(ClaimTypes.NameIdentifier).Value); var user = _repository.GetUserById(userId); var userBefore = CloneObject.Clone(user); //if (user.IdUserAuthorizationType != (int)UserAuthorizationTypeIds.SystemAccount) //{ // _saveLog.LogInformation("User with Active Directory cannot change password from this system!"); // return new Response<object>(PublicResultStatusCodes.NotAllowedOperation); //} var hashHelper = new HashHelper(password); user.Password = hashHelper.Hash; user.SaltedPassword = hashHelper.Salt; user.LatestPasswordChangeDate = DateTime.Now; var serials = ConvertToBinaryHelper <User> .SerializeAndConvert(userBefore, user); _generalUpdateService.UpdateAddLogDataChange(user, serials.Item1, serials.Item2); return(new Response <object>(PublicResultStatusCodes.Done)); }
public Response <object> ChangePasswordForFirstTime(UserChangePasswordForFirstTimeModel _) { var user = _repository.GetUserByUsername(_contextAccessor.HttpContext.User.Identity.Name); var userBefore = CloneObject.Clone(user); //if (user.IdUserAuthorizationType != (int)UserAuthorizationTypeIds.SystemAccount) //{ // _saveLog.LogInformation("User with Active Directory cannot change password from this system!"); // return new Response<object>(PublicResultStatusCodes.NotAllowedOperation); //} var checkPassword = PasswordHelper.ValidatePassword(_.NewPassword); if (checkPassword) { var hashHelper = new HashHelper(_.NewPassword); user.Password = hashHelper.Hash; user.SaltedPassword = hashHelper.Salt; user.LatestPasswordChangeDate = DateTime.Now; user.ChangePasswordNeeded = false; var serials = ConvertToBinaryHelper <User> .SerializeAndConvert(userBefore, user); _generalUpdateService.UpdateAddLogDataChange(user, serials.Item1, serials.Item2); return(new Response <object>(PublicResultStatusCodes.Done)); } _saveLog.LogInformation("Password must have at least six characters, one upperCase and one number!"); return(new Response <object>(PublicResultStatusCodes.ModelIsNotValid)); }
public Response <object> ChangePassword(UserChangePasswordModel _) { var user = _repository.GetUserByUsername(_contextAccessor.HttpContext.User.Identity.Name); var userBefore = CloneObject.Clone(user); //if (user.IdUserAuthorizationType != (int)UserAuthorizationTypeIds.SystemAccount) //{ // _saveLog.LogInformation("User with Active Directory cannot change password from this system!"); // return new Response<object>(PublicResultStatusCodes.NotAllowedOperation); //} var checkPassword = HashHelper.Verify(user.SaltedPassword, user.Password, _.OldPassword); if (checkPassword) { var hashHelper = new HashHelper(_.NewPassword); user.Password = hashHelper.Hash; user.SaltedPassword = hashHelper.Salt; user.LatestPasswordChangeDate = DateTime.Now; var serials = ConvertToBinaryHelper <User> .SerializeAndConvert(userBefore, user); _generalUpdateService.UpdateAddLogDataChange(user, serials.Item1, serials.Item2); return(new Response <object>(PublicResultStatusCodes.Done)); } _saveLog.LogInformation("Password do not match with data in Database!"); return(new Response <object>(PublicResultStatusCodes.WrongOldPassword)); }
public Response <object> ChangePasswordFromResetPasswordLink(ResetPasswordModel _) { var user = _repository.GetUserById(_.Id); var userBefore = CloneObject.Clone(user); //EntryUpdateUserHelper.FillUpdateData(ref user); if (user != null) { var hash = HashHelper.GetSha256FromString(user.Account + " " + user.ID + "$aa$" + user.EntryDate); if (!hash.Equals(_.Hash)) { return(new Response <object>(PublicResultStatusCodes.ModelIsNotValid)); } var hashHelper = new HashHelper(_.Password); user.Password = hashHelper.Hash; user.SaltedPassword = hashHelper.Salt; user.LatestPasswordChangeDate = DateTime.Now; user.ResetPasswordToken = Guid.NewGuid(); var serials = ConvertToBinaryHelper <User> .SerializeAndConvert(userBefore, user); _generalUpdateService.UpdateAddLogDataChange(user, serials.Item1, serials.Item2); return(new Response <object>(PublicResultStatusCodes.Done)); } return(new Response <object>(PublicResultStatusCodes.ModelIsNotValid)); }
public Response <UserModel> Update(int id, EditUserModel _) { var entryUser = _repository.GetUserByUsername(_contextAccessor.HttpContext.User?.Identity?.Name); var user = _repository.GetUserById(id); if (user == null) { _saveLog.LogInformation("Failed to Update User because user with Id=\"" + id + "\" does not exist"); return(new Response <UserModel>(PublicResultStatusCodes.ModelIsNotValid)); } var beforeUser = CloneObject.Clone(user); if (!string.IsNullOrWhiteSpace(_.Password)) { var hashHelper = new HashHelper(_.Password); user.Password = hashHelper.Hash; user.SaltedPassword = hashHelper.Salt; user.LatestPasswordChangeDate = DateTime.Now; } user.Account = _.Account; user.First = _.First; user.Last = _.Last; user.IsActive = _.IsActive; user.ExpireDate = _.ExprieDate; user.IDRole = _.IdRole; user.EmailAddress = _.EmailAddress; user.IDUserAuthorizationType = _.IdUserAuthorizationType; //user.WithUserAuthorization = _.WithUserAuthorization; // user.SerialNumber = _.SerialNumber; //user.IdEmployee = _.IdEmployee; EntryUpdateUserHelper.FillUpdateData(ref user); var serials = ConvertToBinaryHelper <User> .SerializeAndConvert(beforeUser, user); _generalUpdateService.UpdateAddLogDataChange(user, serials.Item1, serials.Item2); return(new Response <UserModel>(PublicResultStatusCodes.Done)); }
public Response <object> ChangePassword(AdminChangePasswordModel _) { var user = _repository.GetUserById(_.IdUser); var userBefore = CloneObject.Clone(user); //if (user.IdUserAuthorizationType != (int)UserAuthorizationTypeIds.SystemAccount) //{ // _saveLog.LogInformation("User with Active Directory cannot change password from this system!"); // return new Response<object>(PublicResultStatusCodes.NotAllowedOperation); //} var hashHelper = new HashHelper(_.NewPassword); user.Password = hashHelper.Hash; user.SaltedPassword = hashHelper.Salt; user.LatestPasswordChangeDate = DateTime.Now; var serials = ConvertToBinaryHelper <User> .SerializeAndConvert(userBefore, user); _generalUpdateService.UpdateAddLogDataChange(user, serials.Item1, serials.Item2); return(new Response <object>(PublicResultStatusCodes.Done)); }
public async Task <Response <UserModel> > Create(CreateUserModel _) { try { var newUser = _repository.GetUserByUsername(_.Account); if (newUser != null) { _saveLog.LogInformation("Account already exist! Account :" + _.Account); return(new Response <UserModel>(PublicResultStatusCodes.AccountAlreadyExists)); } //if (_.IdUserAuthorizationType == (int)UserAuthorizationTypeIds.SystemAccount && !PasswordHelper.ValidatePassword(_.Password)) //{ // _saveLog.LogInformation("Trying creating account but password break pattern. Account:" + _.Account); // return new Response<UserModel>(PublicResultStatusCodes.ModelIsNotValid); //} var user = _mapper.Map <User>(_); HashNewUserPassword(ref user, _contextAccessor.HttpContext.User.Identity.Name); //if (user.IdActiveDirectoryDomain.HasValue && !DoesADUserExist(user.Account, user.IdActiveDirectoryDomain.Value)) //{ // _saveLog.LogInformation("Account Do not exist in Active Directory with Id = \"" + _.IdActiveDirectoryDomain + "\" and with Account = \"" + _.Account + "\""); // return new Response<UserModel>(PublicResultStatusCodes.ActiveDirectoryAccountNotExists); //} //if (!user.IdActiveDirectoryDomain.HasValue) user.ChangePasswordNeeded = true; var serials = ConvertToBinaryHelper <User> .SerializeAndConvert(null, user); _generalUpdateService.InsertAddLogDataChange(user, serials.Item1, serials.Item2); //var list = new List<UserAuthorization>(); var idEntry = int.Parse(_contextAccessor.HttpContext.User.FindFirst(ClaimTypes.NameIdentifier).Value); var entryUser = _contextAccessor.HttpContext.User?.Identity?.Name; //if (_.UserAuthorization != null) // foreach (var item in _.UserAuthorization) // { // list.Add(new UserAuthorization() // { // IdModule = item.IdModule, // IdRoleAuthorizationType = item.IdRoleAuthorizationType, // IdUser = user.Id, // EntryDate = DateTime.Now, // IdEntryUser = idEntry, // EntryUser = entryUser // }); // } //_repository.AddRangeRoleAuthorization(list); //if (!string.IsNullOrWhiteSpace(user.SerialNumber)) //{ //var deviceUser = new DeviceUsers() //{ // IdUser = user.Id, // IdDevice = _deviceRepository.GetDevices().FirstOrDefault().Id //}; //_deviceRepository.AddDeviceUser(deviceUser); //} var body = "I/E nderuar, <br/>" + "Nje llogari eshte krijuar me email-in tend. <br/>" + "Ju mund te kyceni permes ktyre te dhenave:<br/>" + "<b>Account:</b> " + _.Account + " <br/>" + "<b>Password:</b> " + _.Password + " <br/>" + "Klikoni ne kete {[vegez]} per te vazhduar."; var info = new EmailInfo { Subject = $"Llogari e krijuar", Body = body, ToEmails = new List <string> { _.EmailAddress } }; await _emailSender.SendEmailAsync(info); return(new Response <UserModel>(PublicResultStatusCodes.Done, _mapper.Map <UserModel>(user))); } catch (Exception) { return(new Response <UserModel>(PublicResultStatusCodes.QueryHasError)); } }