Esempio n. 1
0
/**
 * create a new member and let it become participant of the supplied ballot
 *
 * @param Period  $period
 * @param mixed   $ballot Ballot, true or null
 * @param integer $case
 * @param string  $i
 */
function add_participant(Period $period, $ballot, $case, $i) {
	global $date, $password;

	Login::$member = new Member;
	Login::$member->invite = Login::generate_token(24);
	Login::$member->eligible = true;
	Login::$member->verified = true;
	Login::$member->create();
	Login::$member->username = "******".$date."c".$case."p".(is_object($ballot)?$ballot->id:$ballot).$i;
	Login::$member->password = $password;
	$update_fields = array('username', 'password', 'eligible');

	// Enable this only in local development environment, because it may lead to a lot if notification mails!
	//Login::$member->mail = ERROR_MAIL;
	//$update_fields[] = "mail";

	Login::$member->update($update_fields, 'activated=now()');
	Login::$member->update_ngroups([1]);
	if ($ballot) {
		if (is_object($ballot)) $period->select_ballot($ballot); else $period->select_postal();
	}
}
Esempio n. 2
0
	/**
	 * called on log out and on pages, where being already logged in does not make sense
	 */
	public static function logout() {
		self::$member = false;
		self::$admin  = false;
		unset($_SESSION['member'], $_SESSION['admin']);
	}
Esempio n. 3
0
/**
 * create a member once
 *
 * @param string  $username
 */
function create_member($username) {
	global $password, $ngroup;

	// make usernames unique
	$username .= " ".$ngroup->id;

	static $members = array();
	if (isset($members[$username])) {
		Login::$member = $members[$username];
		return;
	}

	Login::$member = new Member;
	Login::$member->invite = Login::generate_token(24);
	Login::$member->eligible = true;
	Login::$member->verified = true;
	Login::$member->create();
	Login::$member->username = $username;
	Login::$member->password = $password;
	$update_fields = array('username', 'password', 'eligible');

	// Enable this only in local development environment, because it will lead to extremely many notification mails!
	//Login::$member->mail = ERROR_MAIL;
	//$update_fields[] = "mail";

	Login::$member->update($update_fields, 'activated=now()');
	DB::insert("member_ngroup", array('member'=>Login::$member->id, 'ngroup'=>$ngroup->id));

	// activate all notifications
	foreach ( Notification::$default_settings as $interest => $types ) {
		$fields_values = array('member'=>Login::$member->id, 'interest'=>$interest);
		foreach ( $types as $type => $value ) {
			$fields_values[$type] = true;
		}
		DB::insert_or_update("notify", $fields_values, array('member', 'interest'));
	}

	$members[$username] = Login::$member;

}
Esempio n. 4
0
if ($action) {
	switch ($action) {
	case "activate":
		action_required_parameters('username', 'password', 'password2', 'mail');

		$username  = trim($_POST['username']);
		$password  = trim($_POST['password']);
		$password2 = trim($_POST['password2']);
		$mail      = trim($_POST['mail']);

		if ( ! Login::check_username($username)             ) break;
		if ( ! Login::check_password($password, $password2) ) break;
		if ( ! Login::check_mail($mail)                     ) break;

		Login::$member = $member;

		Login::$member->username = $username;
		Login::$member->password = crypt($password);
		if ( ! Login::$member->update(['username', 'password'], 'activated=now()') ) break;
		success(_("Your account has been activated."));

		Login::$member->set_mail($mail);

		$_SESSION['member'] = Login::$member->id;

		redirect("settings.php");

	default:
		warning(_("Unknown action"));
		redirect();