diff --git a/presentation/lookAndFeel/knowledgeTree/administration/usermanagement/editUserUI.inc b/presentation/lookAndFeel/knowledgeTree/administration/usermanagement/editUserUI.inc index a3387b0..e28fee9 100644 --- a/presentation/lookAndFeel/knowledgeTree/administration/usermanagement/editUserUI.inc +++ b/presentation/lookAndFeel/knowledgeTree/administration/usermanagement/editUserUI.inc @@ -74,7 +74,12 @@ function getUserDetailsPage($iUserID) { $sToRender .= "\n"; $sToRender .= "\n"; $sToRender .= "graphicsUrl/widgets/update.gif\" value=\"Update\" border=\"0\"/>\n"; - $sToRender .= getCancelButton(User::get($iUserID)) . ""; + //$sToRender .= getCancelButton(User::get($iUserID)) . ""; + $sToRender .= getCancelButton(User::get($iUserID)); + if (strcmp($default->authenticationClass,"DBAuthenticator") == 0) { + //only update password if we are using the db + $sToRender .= "rootUrl/control.php?action=userPasswordManagement&fUserID=$iUserID\">Update password\n"; + } $sToRender .= "\n"; return $sToRender; diff --git a/presentation/lookAndFeel/knowledgeTree/administration/usermanagement/passwordManagementBL.php b/presentation/lookAndFeel/knowledgeTree/administration/usermanagement/passwordManagementBL.php new file mode 100644 index 0000000..b196a11 --- /dev/null +++ b/presentation/lookAndFeel/knowledgeTree/administration/usermanagement/passwordManagementBL.php @@ -0,0 +1,90 @@ +fileSystemRoot/lib/security/Permission.inc"); + require_once("$default->fileSystemRoot/lib/users/User.inc"); + require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc"); + require_once("$default->fileSystemRoot/lib/visualpatterns/PatternCustom.inc"); + require_once("$default->fileSystemRoot/presentation/Html.inc"); + require_once("passwordManagementUI.inc"); + + $oPatternCustom = & new PatternCustom(); + + if (strcmp($default->authenticationClass,"DBAuthenticator") == 0) { + //only update passwords if we are in db authentication mode + if (isset($fUserID)){ + if (Permission::userIsSystemAdministrator()) { + $oUser = User::get($fUserID); + //only the administrator is allowed to change passwords here + if (isset($fForUpdate)) { + //execute the update and return to the edit page?? + if (strlen($fNewPassword) > 0 && strlen($fNewPasswordConfirm) > 0) { + //if passwords have been entered + if (strcmp($fNewPassword, $fNewPasswordConfirm) == 0) { + //if the password and its confirmation are the same + $oUser->setPassword($fNewPassword); + if ($oUser->update()) { + //successful update + $oPatternCustom->setHtml(getPasswordUpdateSuccessPage()); + } else { + //update failed + $oPatternCustom->setHtml(getPage($oUser->getName())); + $main->setErrorMessage("An error occured while attempting to update the user's password"); + $main->setFormAction($_SERVER["PHP_SELF"] . "?fForUpdate=1&fUserID=$fUserID"); + } + } else { + $oPatternCustom->setHtml(getPage($oUser->getName())); + $main->setErrorMessage("The password and its confirmation do not match. Please try again."); + $main->setFormAction($_SERVER["PHP_SELF"] . "?fForUpdate=1&fUserID=$fUserID"); + } + } else { + $oPatternCustom->setHtml(getPage($oUser->getName())); + $main->setErrorMessage("Blank passwords are not valid. Please try again."); + $main->setFormAction($_SERVER["PHP_SELF"] . "?fForUpdate=1&fUserID=$fUserID"); + } + } else { + //show the page + $oPatternCustom->setHtml(getPage($oUser->getName())); + $main->setFormAction($_SERVER["PHP_SELF"] . "?fForUpdate=1&fUserID=$fUserID"); + } + } else { + $main->setErrorMessage("Only an administrator can update a user password from here"); + } + } + } else { + $oPatternCustom->setHtml(getPage($oUser->getName())); + $main->setErrorMessage("Passwords can only be update in Knowledgew Tree when authentication is against the MySQL database, not against an LDAP server"); + $main->setFormAction($_SERVER["PHP_SELF"]); + } + //render the page + $main->setCentralPayload($oPatternCustom); + $main->render(); +} +?> diff --git a/presentation/lookAndFeel/knowledgeTree/administration/usermanagement/passwordManagementUI.inc b/presentation/lookAndFeel/knowledgeTree/administration/usermanagement/passwordManagementUI.inc new file mode 100644 index 0000000..cd39f9a --- /dev/null +++ b/presentation/lookAndFeel/knowledgeTree/administration/usermanagement/passwordManagementUI.inc @@ -0,0 +1,76 @@ +\n"; + $sToRender .= "\n"; + $sToRender .= "\n"; + $sToRender .= "\n"; + $sToRender .= "\n"; + $sToRender .= "\n"; + $sToRender .= "\n"; + $sToRender .= "\n"; + $sToRender .= "\n"; + $sToRender .= "\n"; + $sToRender .= "\n"; + $sToRender .= "\n"; + $sToRender .= "\n"; + $sToRender .= "\n"; + $sToRender .= "\n"; + $sToRender .= "\n"; + $sToRender .= "\n"; + $sToRender .= "\n"; + $sToRender .= "
User name: $sUserName
New password:
Confirm password:
"; + $sToRender .= "graphicsUrl/widgets/update.gif\" value=\"Update\" border=\"0\"/>"; + $sToRender .= "rootUrl/control.php?action=userManagement\">graphicsUrl/widgets/cancel.gif\" value=\"cancel\" border=\"0\"/>\n"; + $sToRender .= "
\n"; + + return $sToRender; + +} + +function getPasswordUpdateSuccessPage() { + global $default; + + $sToRender .= renderHeading("Update user password"); + $sToRender .= "
\n"; + $sToRender .= "\n"; + $sToRender .= "\n"; + $sToRender .= "\n"; + $sToRender .= "\n"; + $sToRender .= "\n"; + $sToRender .= "\n"; + $sToRender .= "\n"; + $sToRender .= "
The user's password was successfully updated
rootUrl/control.php?action=userManagement\">graphicsUrl/widgets/back.gif\" border = \"0\" />
\n"; + + + return $sToRender; +} + +?> \ No newline at end of file