logout(); util_redirect_and_exit(apidb_fullurl("index.php")); } // not valid command, display error page util_show_error_page_and_exit("Internal Error","This module was called with incorrect parameters"); } /** * retry */ function retry($sCmd, $sMsg) { addmsg($sMsg, "red"); do_account($sCmd); } /** * create new account */ function cmd_do_new() { global $aClean; if(!ereg("^.+@.+\\..+$", $aClean['sUserEmail'])) { $aClean['sUserEmail'] = ""; retry("new", "Invalid email address"); return; } if(empty($aClean['sUserRealname'])) { retry("new", "You don't have a Real name?"); return; } $oUser = new User(); $sPassword = substr(base_convert(rand(0, PHP_INT_MAX),10, 36), 0, 9); $iResult = $oUser->create($aClean['sUserEmail'], $sPassword, $aClean['sUserRealname'], $aClean['sDXGLRelease'] ); if($iResult == SUCCESS) { mail_appdb($oUser->sEmail, "New account", "Your password is ".$sPassword); util_redirect_and_exit(apidb_fullurl()); } else if($iResult == USER_CREATE_EXISTS) { addmsg("An account with this e-mail exists already.", "red"); retry("new", "Failed to create account"); } else if($iResult = USER_CREATE_FAILED) { addmsg("Error while creating a new user.", "red"); retry("new", "Failed to create account"); } else { addmsg("Unknown failure while creating new user. Please report this problem to appdb admins.", "red"); retry("new", "Failed to create account"); } } /** * email lost password */ function cmd_send_passwd() { global $aClean; /* if the user didn't enter any email address we should */ /* ask them to */ if($aClean['sUserEmail'] == "") { addmsg("Please enter your email address in the 'E-mail' field and re-request a new password", "green"); util_redirect_and_exit(apidb_fullurl("account.php?sCmd=login")); } $shNote = '(Note: accounts for www.williamfeely.info/appdb and other services ' .'are separated, so You might need to create second account for appdb.)'; $iUserId = User::exists($aClean['sUserEmail']); $sPasswd = User::generate_passwd(); $oUser = new User($iUserId); if ($iUserId) { if ($oUser->update_password($sPasswd)) { $sSubject = "Application DB Lost Password"; $sMsg = "We have received a request that you lost your password.\r\n"; $sMsg .= "We will create a new password for you. You can then change\r\n"; $sMsg .= "your password at the Preferences screen.\r\n"; $sMsg .= "Your new password is: ".$sPasswd."\r\n"; if (mail_appdb($oUser->sEmail, $sSubject ,$sMsg)) { addmsg("Your new password has been emailed to you.", "green"); } else { addmsg("Your password has changed, but we could not email it to you. Contact Support (".APPDB_OWNER_EMAIL.") !", "red"); } } else { addmsg("Internal Error, we could not update your password.", "red"); } } else { addmsg("Sorry, that user (".$aClean['sUserEmail'].") does not exist.

" .$shNote, "red"); } util_redirect_and_exit(apidb_fullurl("account.php?sCmd=login")); } /** * on login handler */ function cmd_do_login() { global $aClean; $oUser = new User(); $iResult = $oUser->login($aClean['sUserEmail'], $aClean['sUserPassword']); if($iResult == SUCCESS) { $sReturnUrl = urldecode($aClean['sReturnTo']); if(!$sReturnUrl) $sReturnUrl = apidb_fullurl("index.php"); addmsg("You are successfully logged in as '$oUser->sRealname'.", "green"); util_redirect_and_exit($sReturnUrl); } else { retry("login","Login failed ".$shNote); } } ?>