cb reports
This commit is contained in:
@@ -33,17 +33,44 @@ namespace BeWo.Service.ServiceImplementations
|
||||
{
|
||||
public long ChangePassword(string pUserName, long pUserVersion, string pOldPassword, string pNewPassword)
|
||||
{
|
||||
try
|
||||
bool allowChange = false;
|
||||
|
||||
if (LoggedInUserOperationContextExt.Current != null)
|
||||
{
|
||||
var user = LoggedInUserOperationContextExt.Current.User;
|
||||
|
||||
if (user.CheckForRight(UserRightType.UserView_AllowChangePassword))
|
||||
{
|
||||
allowChange = true;
|
||||
}
|
||||
else if (!String.IsNullOrEmpty(pOldPassword) && pUserName == user.LoginName && user.CheckForRight(UserRightType.AllowChangeOwnPassword))
|
||||
{
|
||||
allowChange = true;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
if (allowChange)
|
||||
{
|
||||
ApplicationUser lOriginal = DAOFactory.UserDAO.FindUserByLoginName(pUserName);
|
||||
MapperFactory.UserDC_User.ConcurrencyCheck(pUserVersion, lOriginal);
|
||||
|
||||
var oldHash = lOriginal.BCryptPassword;
|
||||
if (String.IsNullOrWhiteSpace(oldHash))
|
||||
String oldPwd = pOldPassword;
|
||||
|
||||
if (String.IsNullOrEmpty(oldPwd))
|
||||
{
|
||||
oldHash = lOriginal.HashedPassword;
|
||||
var oldHash = lOriginal.BCryptPassword;
|
||||
if (String.IsNullOrWhiteSpace(oldHash))
|
||||
{
|
||||
oldHash = lOriginal.HashedPassword;
|
||||
}
|
||||
|
||||
oldPwd = oldHash;
|
||||
}
|
||||
if (DAOFactory.UserDAO.CheckPassword(lOriginal, oldHash))
|
||||
|
||||
|
||||
if (DAOFactory.UserDAO.CheckPassword(lOriginal, oldPwd))
|
||||
{
|
||||
lOriginal.ChangePassword(pNewPassword);
|
||||
var settings = AppSettings.CreateSettings();
|
||||
@@ -56,6 +83,10 @@ namespace BeWo.Service.ServiceImplementations
|
||||
lOriginal.Zeitstempel = null;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new FaultException<BeWoFault>(new BeWoFault("Das angegebene Passwort ist falsch!", BeWoFaultType.CustomWithoutDetails));
|
||||
}
|
||||
|
||||
//speichere passwort in verlauf
|
||||
var passwortvelauf = new PasswortVerlauf
|
||||
@@ -64,8 +95,8 @@ namespace BeWo.Service.ServiceImplementations
|
||||
Passwort = lOriginal.HashedPassword,
|
||||
Salt = lOriginal.Salt,
|
||||
ErstellDatum = DateTime.Now
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
DAOFactory.GenericDAO.Insert(passwortvelauf);
|
||||
|
||||
DAOFactory.GenericDAO.Update(lOriginal);
|
||||
@@ -74,10 +105,8 @@ namespace BeWo.Service.ServiceImplementations
|
||||
|
||||
return lOriginal.Version.Value;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
throw Utils.CreateBeWoFaultException(e);
|
||||
}
|
||||
|
||||
throw new FaultException<BeWoFault>(new BeWoFault("Sie besitzen nicht die erforderlichen Rechte um das Passwort zu ändern!", BeWoFaultType.CustomWithoutDetails));
|
||||
}
|
||||
|
||||
public void CreateNewUser(string pUserName, string pPassword, string pEmail)
|
||||
|
||||
Reference in New Issue
Block a user