diff --git a/components/options.php b/components/options.php index ebbfb8c7eb4debd9ac65bc7173960c5446471c9c..2462dd48d8522426389cbe3741058c9aa8c3cec5 100644 --- a/components/options.php +++ b/components/options.php @@ -2,6 +2,7 @@ // e-mail, password validation functions require_once("../lib/validation.php"); +include_once("../lib/date.php"); // Some Constants @@ -13,6 +14,8 @@ $sucsdbname = 'sucs'; // This was stored in config, I just don't have it here in // Helper Functions // Could these be moved to some kind of library? +// Set next payment date +$paydate = "Sept. ".(academicYear(time())+1); // function to change a user's password function changePassword ($oldpass, $newpass1, $newpass2) { @@ -166,6 +169,37 @@ function updateHackergotchi($fileDetails) { return FALSE; } +function updateRenew() { + global $sucsDB, $session, $error; + global $paydate; + + if (!isset($_REQUEST['userid']) || !isset($_REQUEST['supass'])) { + trigger_error("Invalid renewal info", E_USER_ERROR); + return FALSE; + } + $userid = (int)$_REQUEST['userid']; + $pass = $_REQUEST['supass']; + $member = $sucsDB->GetRow("select * from members left join member_type on members.type=member_type.id where username='".$session->username."'"); + + $signup = $sucsDB->GetRow("select * from signup where id=?", array($userid)); + if (!is_array($signup) || count($signup) < 1) { + trigger_error("Invalid renewal info", E_USER_ERROR); + return FALSE; + } + if ($signup['password'] != $pass) { + trigger_error("Invalid renewal info", E_USER_ERROR); + return FALSE; + } + if ($signup['activated'] != NULL) { + trigger_error("Signup slip already used", E_USER_ERROR); + return FALSE; + } + + $sucsDB->Execute("update members set paid=?, lastupdate=DEFAULT, lastedit=uid where uid=?", array($paydate, $member['uid'])); + $sucsDB->Execute("update signup set activated=NOW(), username=? where id=?", array($member['username'], $signup['id'])); + return TRUE; +} + // Template Setup $smarty->assign('session', $session); @@ -209,6 +243,11 @@ if ($session->loggedin === TRUE) { message_flash('Hackergotchi Cleared'); } break; + case 'renew' : + if (updateRenew()) { + message_flash('Account renewed'); + } + break; } } @@ -220,8 +259,9 @@ if ($session->loggedin === TRUE) { if (is_file($base."htdocs/pictures/people/".$session->username.".png")) $smarty->assign('hackergotchi', TRUE); - $member = $sucsDB->GetRow("select * from members where username='".$session->username."'"); + $member = $sucsDB->GetRow("select * from members left join member_type on members.type=member_type.id where username='".$session->username."'"); $smarty->assign('member', $member); + $smarty->assign('paydate', $paydate); if(($currentGuestNetMAC = $sucsDB->GetOne('SELECT * FROM guestnet WHERE uid=?', array((int)$member['uid']))) !== FALSE) { $smarty->assign('currentGuestNetMAC', $currentGuestNetMAC);