public static io.Data.Return<bool> SetPassword(int userSessionKey, int entityContactKey, string newPassword, string oldPassword, bool compareOldPassword) { const string functionName = _className + ".SetPassword()"; var validPasswordResult = ValidPassword(newPassword); if (validPasswordResult.Failed) return new io.Data.Return<bool>(io.Constants.FAILURE, validPasswordResult.Message, "", io.Constants.NO); using (Databases.io_contacts.Tables.EntityContacts rows = new Databases.io_contacts.Tables.EntityContacts(entityContactKey)) { if (rows.QueryResult.Failed) return new io.Data.Return<bool>(io.Constants.FAILURE, "Unable to change password, contact Administrator.", rows.QueryResult.Message, false).LogResult(Constants.SystemInstallKey, Constants.SystemKey, Constants.AppKey, userSessionKey, (int)ErrorCodes.QueryContactFailed, functionName); if (rows.Count == 0) return new io.Data.Return<bool>(io.Constants.FAILURE, "Unable to change password, contact Administrator.", rows.QueryResult.Message, false).LogResult(Constants.SystemInstallKey, Constants.SystemKey, Constants.AppKey, userSessionKey, (int)ErrorCodes.QueryContactNoResult, functionName); if (compareOldPassword) { if (rows[0].Password != GenerateHash(oldPassword, rows[0].EntityContactKey.ToString())) return new io.Data.Return<bool>(io.Constants.FAILURE, "Invalid Password", "", false); } rows[0].Password = GenerateHash(newPassword, rows[0].EntityContactKey.ToString()); rows[0].PasswordExpired = false; var updateResult = rows[0].UpdateRow(); if (updateResult.Failed) return new io.Data.Return<bool>(io.Constants.FAILURE, "Error changing password contact the administrator.", "", false).LogResult(Constants.SystemInstallKey, Constants.SystemKey, Constants.AppKey, userSessionKey, (int)ErrorCodes.UpdatePasswordChangedFailed, functionName); return new io.Data.Return<bool>(io.Constants.SUCCESS, "Password changed successfully.", "", true).LogResult(Constants.SystemInstallKey, Constants.SystemKey, Constants.AppKey, userSessionKey, (int)ErrorCodes.PasswordChangedSuccess, functionName); } }
internal static io.Data.Return<DataContracts.ResetPasswordData> ResetPassword(DataContracts.ResetPasswordData passwordData) { const string functionName = _className + ".ResetPassword()"; if (!passwordData.IsValid()) return new io.Data.Return<DataContracts.ResetPasswordData>(io.Constants.FAILURE, "Check required fields", "", passwordData); Guid validGUID; if (!Guid.TryParse(passwordData.UID.Value.ToString(), out validGUID)) return new io.Data.Return<DataContracts.ResetPasswordData>(io.Constants.FAILURE, "Check required fields", "", passwordData); if (passwordData.NewPassword.Value != passwordData.RepeatPassword.Value) return new io.Data.Return<DataContracts.ResetPasswordData>(io.Constants.FAILURE, "New Password must match", "", passwordData); var where = "(UID = '" + validGUID.ToString() + "')"; int entityContactKey = 20; using (var rows = new Databases.io_contacts.Tables.EntityContacts(where, "")) { if (rows.QueryResult.Failed) return new io.Data.Return<DataContracts.ResetPasswordData>(io.Constants.FAILURE, "Unable to change password, contact Administrator.", rows.QueryResult.Message, passwordData).LogResult(Constants.SystemInstallKey, Constants.SystemKey, Constants.AppKey, 0, (int)ErrorCodes.QueryContactFailed, functionName); if (rows.Count == 0) return new io.Data.Return<DataContracts.ResetPasswordData>(io.Constants.FAILURE, "Unable to change password, contact Administrator.", rows.QueryResult.Message, passwordData).LogResult(Constants.SystemInstallKey, Constants.SystemKey, Constants.AppKey, 0, (int)ErrorCodes.QueryContactFailed, functionName); entityContactKey = rows[0].EntityContactKey; } var updatePassword = iocontacts.Modules.Administration.EntityContact.SetPassword(0, entityContactKey, passwordData.NewPassword.Value, passwordData.RepeatPassword.Value, false); if (updatePassword.Failed) return new io.Data.Return<DataContracts.ResetPasswordData>(io.Constants.FAILURE, updatePassword.Message, "", passwordData); return new io.Data.Return<DataContracts.ResetPasswordData>(io.Constants.SUCCESS, updatePassword.Message, "", passwordData); }