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(strlen($aClean['sUserPassword']) < 5) { retry("new", "Password must be at least 5 characters"); return; } if($aClean['sUserPassword'] != $aClean['sUserPassword2']) { retry("new", "Passwords don't match"); return; } if(empty($aClean['sUserRealname'])) { retry("new", "You don't have a Real name?"); return; } $oUser = new User(); $iResult = $oUser->create($aClean['sUserEmail'], $aClean['sUserPassword'], $aClean['sUserRealname'], $aClean['sWineRelease'] ); if($iResult == SUCCESS) { /* if we can log the user in, log them in automatically */ $oUser->login($aClean['sUserEmail'], $aClean['sUserPassword']); addmsg("Account created! (".$aClean['sUserEmail'].")", "green"); 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 appdb.winehq.org and bugs.winehq.org ' .'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) { addmsg("You are successfully logged in as '$oUser->sRealname'.", "green"); util_redirect_and_exit(apidb_fullurl("index.php")); } else { retry("login","Login failed ".$shNote); } } ?>