. // action = 'initiate_transfer': // handle a user's request to initiate a foundership transfer // action = 'finalize_transfer': // handle a user's request to finalize a foundership transfer // action = 'decline': // handle the current founder's declining of the request require_once("../inc/boinc_db.inc"); require_once("../inc/util.inc"); require_once("../inc/team.inc"); require_once("../inc/email.inc"); require_once("../inc/pm.inc"); check_get_args(array()); $user = get_logged_in_user(); if (!$user->teamid) { error_page(tra("You must be a member of a team to access this page.")); } function send_founder_transfer_email($team, $user) { $founder = lookup_user_id($team->userid); // send founder a private message for good measure $subject = "Team founder transfer request"; $body = "Team member ".$user->name." has asked that you transfer foundership of $team->name. Please go [url=".URL_BASE."team_change_founder_form.php?teamid=$team->id]here[/url] to grant or decline the request. If you do not respond within 60 days, ".$user->name." will be allowed to become the team founder. "; pm_send($founder, $subject, $body, false); $subject = PROJECT." team founder transfer"; $body = "Team member ".$user->name." has asked that you transfer foundership of $team->name in ".PROJECT.". Please visit ".URL_BASE."team_change_founder_form.php?teamid=".$team->id." to grant or decline the request. If you do not respond within 60 days, ".$user->name." will be allowed to become the team founder. Please do not respond to this email. The mailbox is not monitored and the email was sent using an automated system."; return send_email($founder, $subject, $body); } function send_founder_transfer_decline_email($team, $user) { $body = "The founder of ".$team->name." has declined your request to become the founder in ".PROJECT.". You can repeat the request at least 90 days after the initial request. Please do not respond to this email. The mailbox is not monitored and the email was sent using an automated system."; return send_email($user, PROJECT." team founder transfer declined", $body); } $action = post_str("action"); switch ($action) { case "initiate_transfer": $team = BoincTeam::lookup_id($user->teamid); $now = time(); if (new_transfer_request_ok($team, $now)) { page_head(tra("Requesting foundership of %1", $team->name)); $success = send_founder_transfer_email($team, $user); // Go ahead with the transfer even if the email send fails. // Otherwise it would be impossible to rescue a team // whose founder email is invalid // $team->update("ping_user=$user->id, ping_time=$now"); echo "

".tra("The current founder has been notified of your request by email and private message.

If the founder does not respond within 60 days you will be allowed to become the founder.") ."

\n"; } else { error_page(tra("Foundership request not allowed now")); } break; case "finalize_transfer": $team = BoincTeam::lookup_id($user->teamid); $now = time(); if ($user->id == $team->ping_user && transfer_ok($team, $now)) { page_head(tra("Assumed foundership of %1", $team->name)); $team->update("userid=$user->id, ping_user=0, ping_time=0"); echo tra("Congratulations, you are now the founder of team %1. Go to %2Your Account page%3 to find the Team Admin options.", $team->name, "", ""); } else { error_page(tra("Foundership request not allowed now")); } break; case "decline": $teamid = post_int("teamid"); $team = lookup_team($teamid); require_founder_login($user, $team); page_head(tra("Decline founder change request")); if ($team->ping_user) { $ping_user = BoincUser::lookup_id($team->ping_user); $team->update("ping_user=0"); send_founder_transfer_decline_email($team, $ping_user); echo "

".tra("The foundership request from %1 has been declined.", user_links($ping_user)) ."

"; } else { echo "

".tra("There were no foundership requests.")."

"; } break; default: error_page(tra("undefined action %1", $action)); } echo "".tra("Return to team page").""; page_tail(); $cvs_version_tracker[]="\$Id$"; //Generated automatically - do not edit ?>