* @version $Id: user.php 8066 2011-11-06 05:09:33Z beckmi $
*/
include dirname(__FILE__) . DIRECTORY_SEPARATOR . 'mainfile.php';
$xoopsPreload =& XoopsPreload::getInstance();
$xoopsPreload->triggerEvent('core.user.start');
xoops_loadLanguage('user');
$op = 'main';
if (isset($_POST['op'])) {
$op = trim($_POST['op']);
} elseif (isset($_GET['op'])) {
$op = trim($_GET['op']);
}
if ($op == 'login') {
include_once $GLOBALS['xoops']->path('include/checklogin.php');
exit();
}
if ($op == 'main') {
if (!$xoopsUser) {
$xoopsOption['template_main'] = 'system_userform.html';
include $GLOBALS['xoops']->path('header.php');
$xoopsTpl->assign('xoops_pagetitle', _LOGIN);
$xoTheme->addMeta('meta', 'keywords', _USERNAME . ", " . _US_PASSWORD . ", " . _US_LOSTPASSWORD);
$xoTheme->addMeta('meta', 'description', _US_LOSTPASSWORD . " " . _US_NOPROBLEM);
$xoopsTpl->assign('lang_login', _LOGIN);
$xoopsTpl->assign('lang_username', _USERNAME);
if (isset($_GET['xoops_redirect'])) {
$xoopsTpl->assign('redirect_page', htmlspecialchars(trim($_GET['xoops_redirect']), ENT_QUOTES));
}
if ($xoopsConfig['usercookie']) {
$xoopsTpl->assign('lang_rememberme', _US_REMEMBERME);
}
$xoopsTpl->assign('lang_password', _PASSWORD);
$xoopsTpl->assign('lang_notregister', _US_NOTREGISTERED);
$xoopsTpl->assign('lang_lostpassword', _US_LOSTPASSWORD);
$xoopsTpl->assign('lang_noproblem', _US_NOPROBLEM);
$xoopsTpl->assign('lang_youremail', _US_YOUREMAIL);
$xoopsTpl->assign('lang_sendpassword', _US_SENDPASSWORD);
$xoopsTpl->assign('mailpasswd_token', $GLOBALS['xoopsSecurity']->createToken());
include $GLOBALS['xoops']->path('footer.php');
exit();
}
if (!empty($_GET['xoops_redirect'])) {
$redirect = trim($_GET['xoops_redirect']);
$isExternal = false;
if ($pos = strpos($redirect, '://')) {
$xoopsLocation = substr(XOOPS_URL, strpos(XOOPS_URL, '://') + 3);
if (strcasecmp(substr($redirect, $pos + 3, strlen($xoopsLocation)), $xoopsLocation)) {
$isExternal = true;
}
}
if (! $isExternal) {
header('Location: ' . $redirect);
exit();
}
}
header('Location: ' . XOOPS_URL . '/userinfo.php?uid=' . $xoopsUser->getVar('uid'));
exit();
}
if ($op == 'logout') {
$message = '';
// Regenerate a new session id and destroy old session
$GLOBALS["sess_handler"]->regenerate_id(true);
$_SESSION = array();
setcookie($xoopsConfig['usercookie'], 0, - 1, '/', XOOPS_COOKIE_DOMAIN, 0);
setcookie($xoopsConfig['usercookie'], 0, - 1, '/');
// clear entry from online users table
if (is_object($xoopsUser)) {
$online_handler =& xoops_gethandler('online');
$online_handler->destroy($xoopsUser->getVar('uid'));
}
$message = _US_LOGGEDOUT . '
' . _US_THANKYOUFORVISIT;
redirect_header('index.php', 1, $message);
exit();
}
if ($op == 'actv') {
$GLOBALS['xoopsLogger']->addDeprecated("Deprecated code. The activation is now handled by register.php");
$id = intval($_GET['id']);
$actkey = trim($_GET['actkey']);
redirect_header("register.php?id={$id}&actkey={$actkey}", 1, '');
exit();
if (empty($id)) {
redirect_header('index.php', 1, '');
exit();
}
$member_handler =& xoops_gethandler('member');
$thisuser =& $member_handler->getUser($id);
if (!is_object($thisuser)) {
exit();
}
if ($thisuser->getVar('actkey') != $actkey) {
redirect_header('index.php', 5, _US_ACTKEYNOT);
} else {
if ($thisuser->getVar('level') > 0) {
redirect_header('user.php', 5, _US_ACONTACT, false);
} else {
if (false != $member_handler->activateUser($thisuser)) {
$config_handler =& xoops_gethandler('config');
$xoopsConfigUser = $config_handler->getConfigsByCat(XOOPS_CONF_USER);
if ($xoopsConfigUser['activation_type'] == 2) {
$myts =& MyTextSanitizer::getInstance();
$xoopsMailer =& xoops_getMailer();
$xoopsMailer->useMail();
$xoopsMailer->setTemplate('activated.tpl');
$xoopsMailer->assign('SITENAME', $xoopsConfig['sitename']);
$xoopsMailer->assign('ADMINMAIL', $xoopsConfig['adminmail']);
$xoopsMailer->assign('SITEURL', XOOPS_URL . "/");
$xoopsMailer->setToUsers($thisuser);
$xoopsMailer->setFromEmail($xoopsConfig['adminmail']);
$xoopsMailer->setFromName($xoopsConfig['sitename']);
$xoopsMailer->setSubject(sprintf(_US_YOURACCOUNT, $xoopsConfig['sitename']));
include $GLOBALS['xoops']->path('header.php');
if (!$xoopsMailer->send()) {
printf(_US_ACTVMAILNG, $thisuser->getVar('uname'));
} else {
printf(_US_ACTVMAILOK, $thisuser->getVar('uname'));
}
include $GLOBALS['xoops']->path('footer.php');
} else {
redirect_header('user.php', 5, _US_ACTLOGIN, false);
}
} else {
//TODO remove hardcoded string
redirect_header('index.php', 5, 'Activation failed!');
}
}
}
exit();
}
if ($op == 'delete') {
$config_handler =& xoops_gethandler('config');
$xoopsConfigUser = $config_handler->getConfigsByCat(XOOPS_CONF_USER);
if (!$xoopsUser || $xoopsConfigUser['self_delete'] != 1) {
redirect_header('index.php', 5, _US_NOPERMISS);
exit();
} else {
$groups = $xoopsUser->getGroups();
if (in_array(XOOPS_GROUP_ADMIN, $groups)) {
// users in the webmasters group may not be deleted
redirect_header('user.php', 5, _US_ADMINNO);
exit();
}
$ok = !isset($_POST['ok']) ? 0 : intval($_POST['ok']);
if ($ok != 1) {
include $GLOBALS['xoops']->path('header.php');
xoops_confirm(
array('op' => 'delete', 'ok' => 1),
'user.php',
_US_SURETODEL . '
' . _US_REMOVEINFO);
include $GLOBALS['xoops']->path('footer.php');
} else {
$del_uid = $xoopsUser->getVar("uid");
$member_handler =& xoops_gethandler('member');
if (false != $member_handler->deleteUser($xoopsUser)) {
$online_handler =& xoops_gethandler('online');
$online_handler->destroy($del_uid);
xoops_notification_deletebyuser($del_uid);
redirect_header('index.php', 5, _US_BEENDELED);
}
redirect_header('index.php', 5, _US_NOPERMISS);
}
exit();
}
}
?>