133 lines
4.8 KiB
C#
133 lines
4.8 KiB
C#
using System;
|
|
using System.Windows;
|
|
using System.Windows.Input;
|
|
using System.Windows.Media;
|
|
using BeWo.PasswortSecurity;
|
|
using BeWo.ServiceProxy;
|
|
using BeWo.ViewModel;
|
|
|
|
using BS.Shared.Extensions;
|
|
|
|
namespace BeWo.View
|
|
{
|
|
public partial class PasswortAenderungsView
|
|
{
|
|
public UserVM ViewModel { get; set; }
|
|
public int abr = 0;
|
|
|
|
public PasswortAenderungsView()
|
|
{
|
|
InitializeComponent();
|
|
CommandBindings.Add(new CommandBinding(ApplicationCommands.Close, (s, e) =>
|
|
{
|
|
abr = 1;
|
|
|
|
Close();
|
|
}));
|
|
VMFactory.CreateUserVMAsync(BeWoApp.LoggedOnUser.UserOid.Value, vm => ViewModel = vm);
|
|
}
|
|
|
|
private void RootGroupBox_OnMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
|
|
{
|
|
try
|
|
{
|
|
DragMove();
|
|
}
|
|
catch (Exception) { }
|
|
}
|
|
|
|
private void AendernClick(object sender, RoutedEventArgs e)
|
|
{
|
|
textblock_editFailures.Foreground = new SolidColorBrush(Colors.Red);
|
|
//if (ViewModel.CheckOldPassword(AltesPwBox.Password))
|
|
//{
|
|
// textblock_editFailures.Text = "Das alte Passwort ist nicht korrekt!";
|
|
// MessageBox.Show("Das alte Passwort ist nicht korrekt!", "Ändern des Passworts fehlgeschlagen", MessageBoxButton.OK, MessageBoxImage.Information);
|
|
// return;
|
|
//}
|
|
if (string.IsNullOrEmpty(NeuesPwBox.Password))
|
|
{
|
|
textblock_editFailures.Text = "Bitte geben Sie ein neues Passwort ein!";
|
|
MessageBox.Show("Bitte geben Sie ein neues Passwort ein!", "Ändern des Passworts fehlgeschlagen", MessageBoxButton.OK, MessageBoxImage.Information);
|
|
return;
|
|
}
|
|
|
|
if (NeuesPwBox.Password != NeuesPwBox2.Password)
|
|
{
|
|
textblock_editFailures.Text = "Die Passwörter stimmen nicht überein!";
|
|
MessageBox.Show("Die Passwörter stimmen nicht überein!", "Ändern des Passworts fehlgeschlagen", MessageBoxButton.OK, MessageBoxImage.Information);
|
|
return;
|
|
}
|
|
|
|
var lOld = AltesPwBox.Password;
|
|
var lNew = NeuesPwBox.Password;
|
|
|
|
ServiceFacade.DoUserServiceAsync(s => s.CheckPassword(BeWoApp.LoggedOnUser.UserOid.Value, lOld, lNew),
|
|
result => CheckPasswordResult(result, lOld, lNew), true);
|
|
|
|
}
|
|
|
|
private void CheckPasswordResult(String result, String oldPassword, String newPassword)
|
|
{
|
|
if (String.IsNullOrEmpty(result))
|
|
{
|
|
ServiceFacade.DoUserServiceAsync(
|
|
s1 =>
|
|
{
|
|
var erg = s1.ChangePassword(ViewModel.DataContract.LoginName, ViewModel.DataContract.UserVersion.Value, oldPassword, newPassword);
|
|
return erg;
|
|
},
|
|
obj =>
|
|
{
|
|
if (ViewModel.DataContract.UserOid == BeWoApp.LoggedOnUser.UserOid)
|
|
{
|
|
BeWoApp.UserPassword = newPassword;
|
|
//ServiceFacade.DoUserServiceAsync(s => s.LoadUser(BeWoApp.LoggedOnUser.UserOid.Value), obj2 =>
|
|
//{
|
|
// BeWoApp.LoggedOnUser = obj2;
|
|
// BeWoApp.LoggedOnUser.ResetPasswordInfos.ForEach(f => f.HasToChangePW = false);
|
|
// ServiceFacade.DoUserServiceAsync(s3 => s3.UpdateUser(BeWoApp.LoggedOnUser), true);
|
|
//}, true);
|
|
}
|
|
|
|
this.Dispatch(Close);
|
|
},
|
|
true);
|
|
}
|
|
else
|
|
{
|
|
this.Dispatch(delegate {
|
|
textblock_editFailures.Text = result;
|
|
MessageBox.Show(result, "Ändern des Passworts fehlgeschlagen", MessageBoxButton.OK, MessageBoxImage.Information);
|
|
});
|
|
}
|
|
}
|
|
|
|
private void AltesPWgeaendert(object sender, RoutedEventArgs e)
|
|
{
|
|
textblock_editFailures.Text = string.Empty;
|
|
}
|
|
|
|
|
|
private readonly PasswortSicherheit _PasswortSicherheit = new PasswortSicherheit();
|
|
|
|
private void NeuesPwBox_OnPasswordChanged(object sender, RoutedEventArgs e)
|
|
{
|
|
passwortprüfer = _PasswortSicherheit.ErmittleUndZeigePasswortStaerke(NeuesPwBox.Password, passwortprüfer);
|
|
|
|
|
|
var fehlermeldung = string.Empty;
|
|
|
|
//textblock_editFailures.Foreground = new SolidColorBrush(Color.FromRgb(255, 72, 0));
|
|
|
|
//if (!(NeuesPwBox.Password.Any(x => sonderzeichen.Contains(x)) && NeuesPwBox.Password.Any(x => zahlen.Contains(x)) && NeuesPwBox.Password.Any(x => grossBuchstaben.Contains(x)) && NeuesPwBox.Password.Any(x => kleinBuchstaben.Contains(x))))
|
|
// fehlermeldung = "Das Passwort sollte Sonderzeichen, Zahlen, Groß- und Kleinbuchstaben enthalten";
|
|
|
|
//if (NeuesPwBox.Password.Length < 8)
|
|
// fehlermeldung = "Das Passwort sollte mindestens 8 Zeichen lang sein";
|
|
|
|
textblock_editFailures.Text = fehlermeldung;
|
|
}
|
|
}
|
|
}
|