You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

90 lines
3.1 KiB

<?php
/**
* @package tikiwiki
*/
// (c) Copyright by authors of the Tiki Wiki CMS Groupware Project
//
// All Rights Reserved. See copyright.txt for details and a complete list of authors.
// Licensed under the GNU LESSER GENERAL PUBLIC LICENSE. See license.txt for details.
// $Id$
require_once('tiki-setup.php');
$access->check_feature('feature_invite');
function tiki_invited()
{
global $user;
$userlib = TikiLib::lib('user');
$tikilib = TikiLib::lib('tiki');
$smarty = TikiLib::lib('smarty');
$invite = (int)isset($_REQUEST['invite']) ? $_REQUEST['invite'] : 0;
$email = isset($_REQUEST['email']) ? $_REQUEST['email'] : null;
if (($invite <= 0) || empty($email)) {
die("invalid request");
}
$res = $tikilib->query(
"SELECT * FROM tiki_invited WHERE id_invite=? AND email=? AND used=?",
[$invite, $email, "no"]
);
$invited = $res->fetchRow();
if (! is_array($invited)) {
$error = tra("This invitation does not exist or is deprecated");
$smarty->assign('error', $error);
$smarty->assign('mid', 'tiki-invited.tpl');
$smarty->display("tiki.tpl");
return;
}
$smarty->assign("invite", $invite);
$smarty->assign("email", $email);
$res = $tikilib->query("SELECT * FROM tiki_invite WHERE id=?", [$invite]);
$inviterow = $res->fetchRow();
if (! is_array($inviterow)) {
die("(bug) This invitation does not exist or is deprecated");
}
if (isset($_POST['validate-existing-account'])) {
$groups = $tikilib->getOne(
"SELECT `tiki_invite`.`groups` FROM `tiki_invited` LEFT JOIN `tiki_invite` ON `tiki_invite`.`id` = `tiki_invited`.`id_invite` WHERE `tiki_invited`.`id` = ?",
[$invited['id']]
);
$groups = explode(',', $groups);
foreach ($groups as $group) {
$userlib->assign_user_to_group($user, trim($group));
}
$tikilib->query("UPDATE tiki_invited SET used=?, used_on_user=? WHERE id=?", ["logged", $user, $invited['id']]);
if (! empty($inviterow['wikipageafter'])) {
$_SERVER['SCRIPT_URI'] = empty($_SERVER['SCRIPT_URI']) ? 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] : $_SERVER['SCRIPT_URI'];
$redirect = str_replace('tiki-invited.php', 'tiki-index.php?page=', $_SERVER['SCRIPT_URI']) . urlencode($inviterow['wikipageafter']);
header('Location: ' . $redirect);
exit;
}
$error = tra("Congratulations! You are now part of this invitation group(s)");
$smarty->assign('error', $error);
$smarty->assign('mid', 'tiki-invited.tpl');
$smarty->display("tiki.tpl");
return;
} else {
$text = TikiLib::lib('parser')->parse_data($inviterow['wikicontent']);
$text = str_replace('{email}', $invited['email'], $text);
$text = str_replace('{firstname}', $invited['firstname'], $text);
$text = str_replace('{lastname}', $invited['lastname'], $text);
$smarty->assign('parsed', $text);
}
$smarty->assign('mid', 'tiki-invited.tpl');
$smarty->display("tiki.tpl");
}
tiki_invited();