<?php
// use Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken;
// $Id: index.php,v 2.8 2011/06/13 13:40:57 zkonyves Exp $
$targets = array('api.php', 'figments.php', 'download.php', 'internal/attachments_list.php', 'guest_login.php');
foreach ($targets as $target) {
$url = "/$target";
if (
(isset($_SERVER['REQUEST_URI']) && substr($_SERVER['REQUEST_URI'], 0, strlen($url)) === $url)
|| (isset($_SERVER['REDIRECT_URL']) && $_SERVER['REDIRECT_URL'] === $url)
) {
include $target;
exit;
}
}
// $user = $kernel->getContainer()->get('session');
require_once "../includes/prepend.php";
require "../includes/prepend_session_loader.php";
require_once "classes/class.user.php";
require_once "classes/class.report_usage_activity.php";
// $user = $kernel->getContainer()->get('security');
// echo "<pre>";var_dump($_SESSION['_sf2_attributes']["_security_main"]);exit;
// echo "<pre>";var_dump($kernel->getContainer()->get("security.csrf.token_manager")->getToken("_csrf_token"));exit;
$report = new ReportUsageActivity();
//AcM//include_once( "classes/xmlrpc.authenticate.php" );
$vars = array_merge($_GET, $_POST, $vars);
// $_REQUEST
$varsVariables = [
'username'
];
foreach ($varsVariables as $value) {
if (!isset($vars[$value])) {
$vars[$value] = null;
}
}
//AcM//$auth =& new xmlrpcAuthenticate( $Config->xmlrpc['authenticate']['server'], $Config->xmlrpc['server'], "taskmeister", false );
$User = new User_Class($db);
if (!isset($vars['action'])) {
$vars['action'] = '';
}
// sign out the user to avoid circulaar redirections
// if (isset($_SESSION['last_login_try']) && (time() - $_SESSION['last_login_try'] < 2)) {
// $_SESSION['page_retry_count']++;
// } else {
// $_SESSION['page_retry_count'] = 0;
// }
// if ($_SESSION['page_retry_count'] > 4) {
// $_SESSION['page_retry_count'] = 0;
// unset($_SESSION['S']);
// unset($_SESSION['user_id']);
// unset($_SESSION['username']);
// session_destroy();
// setcookie($Config->cookie_name, "", time() - 3600, $Config->cookie_path, $Config->cookie_domain, 0);
// // redirect("/main.php?mode=logout".($_SESSION['TMUser']->username ? ("&username=" . $_SESSION['TMUser']->username) : ""));
// // App can only have one entry point
// // Patch all redirects to URLs other than index.php
// // to require the appropriate PHP file instead.
// $_GET["mode"] = "logout";
// $_GET["username"] = !empty($_SESSION['TMUser']->username) ? $_SESSION['TMUser']->username : "";
// require "main.php";
// exit;
// }
$_SESSION['last_login_try'] = time();
if (!isset($_COOKIE[$Config->cookie_name])) {
$_COOKIE[$Config->cookie_name] = null;
}
if ($vars['action'] != "logged_out") {
if (isset($_SESSION['user_id'])) {
// redirect("/main.php" . (isset($vars['mode']) ? "?mode=" . $vars['mode'] : ""));
$_GET["mode"] = !empty($vars['mode']) ? $vars['mode'] : "";
require "main.php";
exit;
} elseif (strlen($_COOKIE[$Config->cookie_name])) {
$_SESSION['TMUser'] = new TaskMeisterUser();
if ($_SESSION['TMUser']->loginByAuthKey($_COOKIE['authKey'])) {
if (strpos($_SERVER['PHP_SELF'], "index.php") !== false && $vars['username'] ?? null != $_SESSION['TMUser']->userInfo['username'] && (strlen($_SESSION['TMUser']->userInfo['username']) && 0)) {
header("Location: index.php?mode=logout");
exit();
}
if (!$_SESSION['TMUser']->hasToolAccess($_SESSION['TMUser']->user_id, $_SESSION['TMUser']->tool_id) || strlen($_SESSION['TMUser']->login_error) > 5) {
$vars['username'] = $vars['username'] ? $vars['username'] : $_SESSION['TMUser']->userInfo['username'];
$vars['error'] = strlen($_SESSION['TMUser']->login_error) > 5 ? $_SESSION['TMUser']->login_error : "Invalid username/password";
unset($_SESSION['TMUser']);
unset($_SESSION['S']);
unset($_SESSION['user_id']);
} else {
$_SESSION['user_id'] = $_SESSION['TMUser']->user_id;
$_SESSION['username'] = $_SESSION['TMUser']->username;
$_SESSION['all_company_ids'] = array($_SESSION['TMUser']->primary_company_id);
if ($_SESSION['TMUser']->hasPermission("sub_companies.manage")) {
$_SESSION['all_company_ids'] = ($_SESSION['all_company_ids'] + $_SESSION['TMUser']->child_company_ids);
}
}
} else {
unset($_SESSION['TMUser']);
if (!isset($Config->web_prefix)) {
$Config->web_prefix = null;
}
setcookie($Config->cookie_name, "", time() - 3600, $Config->cookie_path, $Config->cookie_domain, 0);
if ($_SERVER['PHP_SELF'] != $Config->web_prefix . "index.php") {
header("Location: " . $Config->web_prefix . "index.php");
exit();
}
}
if ($_SESSION['TMUser']->logged_in && $_SESSION['user_id']) {
$user_prefs = $User->getUserPrefs($_SESSION['user_id']);
$view_mode = $user_prefs['view_mode'] == "list" || $user_prefs['view_mode'] == "calendar" ? $user_prefs['view_mode'] : "calendar";
if ($_SERVER['SERVER_ADDR'] == $_SERVER['REMOTE_ADDR']) {
// redirect($Config->web_prefix."main.php?mode=pref");
$_GET["mode"] = "pref";
require "main.php";
exit;
} else {
$_GET["mode"] = $view_mode;
require "main.php";
exit;
// redirect((isset($_SESSION['request_location']) ? $_SESSION['request_location'] : $Config->web_prefix."main.php?mode=" . $view_mode));
}
}
}
} else {
$url = "/index.php";
if (isset($vars) && isset($vars['username']) && !empty($vars['username'])) {
$url .= "?username={$vars['username']}";
}
redirect($url);
}
if ($vars['action'] == "login") {
$_SESSION['TMUser'] = new TaskMeisterUser();
if ($_SESSION['TMUser']->login($vars['username'], $vars['password'])) {
if (
!$_SESSION['TMUser']->hasToolAccess(
$_SESSION['TMUser']->user_id,
$_SESSION['TMUser']->tool_id
) ||
strlen($_SESSION['TMUser']->login_error) > 5
) {
$vars['error'] = strlen($_SESSION['TMUser']->login_error) > 5 ? $_SESSION['TMUser']->login_error : "Invalid username/password";
unset($_SESSION['TMUser']);
unset($_SESSION['S']);
unset($_SESSION['user_id']);
} else {
$_SESSION['user_id'] = $_SESSION['TMUser']->user_id;
$_SESSION['username'] = $_SESSION['TMUser']->getUsernameByID($_SESSION['TMUser']->user_id);
// get UserPrefs
$user_prefs = $User->getUserPrefs($_SESSION['user_id']);
$view_mode = $user_prefs['view_mode'] == "list" || $user_prefs['view_mode'] == "calendar" ? $user_prefs['view_mode'] : "calendar";
//$view_mode = "first_view";
$report->login();
if (!isset($_SERVER['SERVER_ADDR'])) {
$_SERVER['SERVER_ADDR'] = null;
}
if (!isset($_SERVER['REMOTE_ADDR'])) {
$_SERVER['REMOTE_ADDR'] = null;
}
if ($_SERVER['SERVER_ADDR'] == $_SERVER['REMOTE_ADDR']) {
// redirect($Config->web_prefix."main.php?mode=pref&a=login");
$_GET["mode"] = "pref";
$_GET["a"] = "login";
require "main.php";
exit;
} else {
// redirect((isset($_SESSION['request_location']) ? $_SESSION['request_location'] : $Config->web_prefix."main.php?mode=" . $view_mode.'&a=login'));
$_GET["mode"] = $view_mode;
$_GET["a"] = "login";
require "main.php";
exit;
}
}
} else {
$vars['error'] = strlen($_SESSION['TMUser']->login_error) > 5 ? $_SESSION['TMUser']->login_error : "Invalid username/password";
}
} elseif ($vars['action'] == "guest_login" || isset($vars['guest_username'])) {
$guest_enabled = false;
$_SESSION['TMUser'] = new TaskMeisterUser();
$user_data = $_SESSION['TMUser']->getUserDataByUsername($vars['guest_username']);
if (count($user_data)) {
if ($_SESSION['TMUser']->hasToolAccess($user_data['user_id'], 1)) {
$User = new User_Class($db);
$user_prefs = $User->getUserPrefs($user_data['user_id']);
if ($user_prefs['guest_enabled']) {
$guest_enabled = true;
}
}
}
//$res = $db->query("SELECT * FROM user_prefs WHERE username = '" . $vars['guest_username'] . "' AND guest_enabled = 1");
//if( $db->num_rows($res) == 1 ) {
if ($guest_enabled) {
//$data = $db->fetch_array($res);
$data = $user_prefs;
$guest_login = false;
if (strlen($data['guest_password'])) {
if ($vars['guest_password'] == $data['guest_password']) {
$guest_login = true;
} elseif ($vars['use_password']) {
$vars['guest_error'] = "Invalid Guest Username/Password";
}
} else {
$guest_login = true;
}
if ($guest_login) {
// log the user in
$user_id = $data['user_id'];
// create a session class instance.
$_SESSION['S'] = new Session_Class($user_id, $db);
$_SESSION['S']->comp_id = $_SESSION['TMUser']->getPrimaryCompanyId($user_data['user_id']);
$_SESSION['TMUser']->primary_company_id = $_SESSION['S']->comp_id;
$_SESSION['S']->set_selection_to_all();
$_SESSION['S']->set_tmpl_selection_to_all();
$_SESSION['S']->group_id = $_SESSION['TMUser']->getGroupIDByGroup_name('guest');
$_SESSION['S']->is_guest = true;
$_SESSION['S']->all_companies = array($_SESSION['S']->comp_id);
$_SESSION['user_id'] = $user_id;
}
} else {
$vars['guest_error'] = "The username you entered does not belong to a valid Task Meister account<br />".
"or the user does not have their guest account enabled.";
}
if (isset($_SESSION['user_id'])) {
// redirect("/main.php?mode=calendar&a=login");
$_GET["mode"] = "calendar";
$_GET["a"] = "login";
require "main.php";
exit;
}
}
if (!isset($vars['error'])) {
$vars['error'] = null;
}
if (!isset($vars['guest_error'])) {
$vars['guest_error'] = null;
}
if (!isset($vars['username'])) {
$vars['username'] = null;
}
if (!isset($vars['guest_username'])) {
$vars['guest_username'] = null;
}
$tpl->assign("page_title", "Task Manager: Login" . ($vars['error'] != "" || $vars['guest_error'] != "" ? " Error" : ""));
$tpl->assign("accessmeister_url", $Config->accessmeister_url);
$tpl->assign("error", $vars['error']);
$tpl->assign("guest_error", $vars['guest_error']);
$tpl->assign("username", $vars['username']);
$tpl->assign("guest_username", $vars['guest_username']);
$tpl->assign('company_header_image', "images/header.gif");
$tpl->assign("help_page", '<a href="http://helpmeister.bizware.com/display.php/taskmeister?108" target="helpmeister" title="Help with this page">' . ($vars['view'] == "normal" ? '<img src="/images/help.gif" width="20" height="20" alt="Help with this page" border="0" />' : "Help") . '</a>');
$tpl->assign("login_button", ($vars['view'] == "normal" ? '<input type="image" alt="submit" src="/images/buttons'.$company_style.'/login_off.gif" onfocus="submit_flip(this, \'/images/buttons'.$company_style.'/login_on.gif\');" onmouseover="submit_flip(this, \'/images/buttons'.$company_style.'/login_on.gif\');" onblur="submit_flip(this, \'/images/buttons'.$company_style.'/login_off.gif\');" border="0" tabindex="3">' : '<a href="javascript:document.login.submit();" tabindex="3">[ Login ]</a>'));
$tpl->assign("guest_login_button", ($vars['view'] == "normal" ? '<input type="image" alt="submit" src="/images/buttons'.$company_style.'/login_off.gif" onfocus="submit_flip(this, \'/images/buttons'.$company_style.'/login_on.gif\');" onmouseover="submit_flip(this, \'/images/buttons'.$company_style.'/login_on.gif\');" onblur="submit_flip(this, \'/images/buttons'.$company_style.'/login_off.gif\');" border="0" tabindex="6">' : '<a href="javascript:document.guest_login.submit();" tabindex="6">[ Login ]</a>'));
$tpl->display("login.tpl");