web/index.php line 84

Open in your IDE?
  1. <?php
  2. // use Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken;
  3. // $Id: index.php,v 2.8 2011/06/13 13:40:57 zkonyves Exp $
  4. $targets = array('api.php''figments.php''download.php''internal/attachments_list.php''guest_login.php');
  5. foreach ($targets as $target) {
  6.     $url "/$target";
  7.     if (
  8.         (isset($_SERVER['REQUEST_URI']) && substr($_SERVER['REQUEST_URI'], 0strlen($url)) === $url)
  9.         || (isset($_SERVER['REDIRECT_URL']) && $_SERVER['REDIRECT_URL'] === $url)
  10.     ) {
  11.         include $target;
  12.         exit;
  13.     }
  14. }
  15. // $user = $kernel->getContainer()->get('session');
  16. require_once "../includes/prepend.php";
  17. require "../includes/prepend_session_loader.php";
  18. require_once "classes/class.user.php";
  19. require_once  "classes/class.report_usage_activity.php";
  20. // $user = $kernel->getContainer()->get('security');
  21. // echo "<pre>";var_dump($_SESSION['_sf2_attributes']["_security_main"]);exit;
  22. // echo "<pre>";var_dump($kernel->getContainer()->get("security.csrf.token_manager")->getToken("_csrf_token"));exit;
  23. $report = new ReportUsageActivity();
  24. //AcM//include_once( "classes/xmlrpc.authenticate.php" );
  25. $vars    =    array_merge($_GET$_POST$vars);
  26. // $_REQUEST
  27. $varsVariables = [
  28.     'username'
  29. ];
  30. foreach ($varsVariables as $value) {
  31.     if (!isset($vars[$value])) {
  32.         $vars[$value] = null;
  33.     }
  34. }
  35. //AcM//$auth    =&  new xmlrpcAuthenticate( $Config->xmlrpc['authenticate']['server'], $Config->xmlrpc['server'], "taskmeister", false );
  36. $User    =    new User_Class($db);
  37. if (!isset($vars['action'])) {
  38.     $vars['action'] = '';
  39. }
  40. // sign out the user to avoid circulaar redirections
  41. // if (isset($_SESSION['last_login_try']) && (time() - $_SESSION['last_login_try'] < 2)) {
  42. //     $_SESSION['page_retry_count']++;
  43. // } else {
  44. //     $_SESSION['page_retry_count'] = 0;
  45. // }
  46. // if ($_SESSION['page_retry_count'] > 4) {
  47. //     $_SESSION['page_retry_count'] = 0;
  48. //     unset($_SESSION['S']);
  49. //     unset($_SESSION['user_id']);
  50. //     unset($_SESSION['username']);
  51. //     session_destroy();
  52. //     setcookie($Config->cookie_name, "", time() - 3600, $Config->cookie_path, $Config->cookie_domain, 0);
  53. //     // redirect("/main.php?mode=logout".($_SESSION['TMUser']->username ? ("&username=" . $_SESSION['TMUser']->username) : ""));
  54. //     // App can only have one entry point
  55. //     // Patch all redirects to URLs other than index.php
  56. //     // to require the appropriate PHP file instead.
  57. //     $_GET["mode"] = "logout";
  58. //     $_GET["username"] = !empty($_SESSION['TMUser']->username) ? $_SESSION['TMUser']->username : "";
  59. //     require "main.php";
  60. //     exit;
  61. // }
  62. $_SESSION['last_login_try'] = time();
  63. if (!isset($_COOKIE[$Config->cookie_name])) {
  64.     $_COOKIE[$Config->cookie_name] = null;
  65. }
  66. if ($vars['action'] != "logged_out") {
  67.     if (isset($_SESSION['user_id'])) {
  68.         // redirect("/main.php" . (isset($vars['mode']) ? "?mode=" . $vars['mode'] : ""));
  69.         $_GET["mode"] = !empty($vars['mode']) ? $vars['mode'] : "";
  70.         require "main.php";
  71.         exit;
  72.     } elseif (strlen($_COOKIE[$Config->cookie_name])) {
  73.         $_SESSION['TMUser'] = new TaskMeisterUser();
  74.         if ($_SESSION['TMUser']->loginByAuthKey($_COOKIE['authKey'])) {
  75.             if (strpos($_SERVER['PHP_SELF'], "index.php") !== false && $vars['username'] ?? null != $_SESSION['TMUser']->userInfo['username'] && (strlen($_SESSION['TMUser']->userInfo['username']) && 0)) {
  76.                 header("Location: index.php?mode=logout");
  77.                 exit();
  78.             }
  79.             if (!$_SESSION['TMUser']->hasToolAccess($_SESSION['TMUser']->user_id$_SESSION['TMUser']->tool_id) || strlen($_SESSION['TMUser']->login_error) > 5) {
  80.                 $vars['username'] = $vars['username'] ? $vars['username'] : $_SESSION['TMUser']->userInfo['username'];
  81.                 $vars['error'] = strlen($_SESSION['TMUser']->login_error) > $_SESSION['TMUser']->login_error "Invalid username/password";
  82.                 unset($_SESSION['TMUser']);
  83.                 unset($_SESSION['S']);
  84.                 unset($_SESSION['user_id']);
  85.             } else {
  86.                 $_SESSION['user_id'] = $_SESSION['TMUser']->user_id;
  87.                 $_SESSION['username'] = $_SESSION['TMUser']->username;
  88.                 $_SESSION['all_company_ids'] = array($_SESSION['TMUser']->primary_company_id);
  89.                 if ($_SESSION['TMUser']->hasPermission("sub_companies.manage")) {
  90.                     $_SESSION['all_company_ids'] = ($_SESSION['all_company_ids'] + $_SESSION['TMUser']->child_company_ids);
  91.                 }
  92.             }
  93.         } else {
  94.             unset($_SESSION['TMUser']);
  95.             if (!isset($Config->web_prefix)) {
  96.                 $Config->web_prefix null;
  97.             }
  98.             setcookie($Config->cookie_name""time() - 3600$Config->cookie_path$Config->cookie_domain0);
  99.             if ($_SERVER['PHP_SELF'] != $Config->web_prefix "index.php") {
  100.                 header("Location: " $Config->web_prefix "index.php");
  101.                 exit();
  102.             }
  103.         }
  104.         if ($_SESSION['TMUser']->logged_in && $_SESSION['user_id']) {
  105.             $user_prefs $User->getUserPrefs($_SESSION['user_id']);
  106.             $view_mode    =    $user_prefs['view_mode'] == "list" || $user_prefs['view_mode'] == "calendar" $user_prefs['view_mode'] : "calendar";
  107.             if ($_SERVER['SERVER_ADDR'] == $_SERVER['REMOTE_ADDR']) {
  108.                 // redirect($Config->web_prefix."main.php?mode=pref");
  109.                 $_GET["mode"] = "pref";
  110.                 require "main.php";
  111.                 exit;
  112.             } else {
  113.                 $_GET["mode"] = $view_mode;
  114.                 require "main.php";
  115.                 exit;
  116.                 // redirect((isset($_SESSION['request_location']) ? $_SESSION['request_location'] : $Config->web_prefix."main.php?mode=" . $view_mode));
  117.             }
  118.         }
  119.     }
  120. } else {
  121.     $url "/index.php";
  122.     if (isset($vars) && isset($vars['username']) && !empty($vars['username'])) {
  123.         $url .= "?username={$vars['username']}";
  124.     }
  125.     redirect($url);
  126. }
  127. if ($vars['action'] == "login") {
  128.     $_SESSION['TMUser'] = new TaskMeisterUser();
  129.     if ($_SESSION['TMUser']->login($vars['username'], $vars['password'])) {
  130.         if (
  131.             !$_SESSION['TMUser']->hasToolAccess(
  132.                 $_SESSION['TMUser']->user_id,
  133.                 $_SESSION['TMUser']->tool_id
  134.             ) ||
  135.             strlen($_SESSION['TMUser']->login_error) > 5
  136.         ) {
  137.             $vars['error'] = strlen($_SESSION['TMUser']->login_error) > $_SESSION['TMUser']->login_error "Invalid username/password";
  138.             unset($_SESSION['TMUser']);
  139.             unset($_SESSION['S']);
  140.             unset($_SESSION['user_id']);
  141.         } else {
  142.             $_SESSION['user_id']    = $_SESSION['TMUser']->user_id;
  143.             $_SESSION['username']   = $_SESSION['TMUser']->getUsernameByID($_SESSION['TMUser']->user_id);
  144.             // get UserPrefs
  145.             $user_prefs $User->getUserPrefs($_SESSION['user_id']);
  146.             $view_mode                =    $user_prefs['view_mode'] == "list" || $user_prefs['view_mode'] == "calendar" $user_prefs['view_mode'] : "calendar";
  147.             //$view_mode                = "first_view";
  148.             $report->login();
  149.             if (!isset($_SERVER['SERVER_ADDR'])) {
  150.                 $_SERVER['SERVER_ADDR'] = null;
  151.             }
  152.             if (!isset($_SERVER['REMOTE_ADDR'])) {
  153.                 $_SERVER['REMOTE_ADDR'] = null;
  154.             }
  155.             if ($_SERVER['SERVER_ADDR'] == $_SERVER['REMOTE_ADDR']) {
  156.                 // redirect($Config->web_prefix."main.php?mode=pref&a=login");
  157.                 $_GET["mode"] = "pref";
  158.                 $_GET["a"] = "login";
  159.                 require "main.php";
  160.                 exit;
  161.             } else {
  162.                 // redirect((isset($_SESSION['request_location']) ? $_SESSION['request_location'] : $Config->web_prefix."main.php?mode=" . $view_mode.'&a=login'));
  163.                 $_GET["mode"] = $view_mode;
  164.                 $_GET["a"] = "login";
  165.                 require "main.php";
  166.                 exit;
  167.             }
  168.         }
  169.     } else {
  170.         $vars['error'] = strlen($_SESSION['TMUser']->login_error) > $_SESSION['TMUser']->login_error "Invalid username/password";
  171.     }
  172. } elseif ($vars['action'] == "guest_login" || isset($vars['guest_username'])) {
  173.     $guest_enabled false;
  174.     $_SESSION['TMUser'] = new TaskMeisterUser();
  175.     $user_data $_SESSION['TMUser']->getUserDataByUsername($vars['guest_username']);
  176.     if (count($user_data)) {
  177.         if ($_SESSION['TMUser']->hasToolAccess($user_data['user_id'], 1)) {
  178.             $User = new User_Class($db);
  179.             $user_prefs $User->getUserPrefs($user_data['user_id']);
  180.             if ($user_prefs['guest_enabled']) {
  181.                 $guest_enabled true;
  182.             }
  183.         }
  184.     }
  185.     //$res = $db->query("SELECT * FROM user_prefs WHERE username = '" . $vars['guest_username'] . "' AND guest_enabled = 1");
  186.     //if( $db->num_rows($res) == 1 ) {
  187.     if ($guest_enabled) {
  188.         //$data = $db->fetch_array($res);
  189.         $data $user_prefs;
  190.         $guest_login false;
  191.         if (strlen($data['guest_password'])) {
  192.             if ($vars['guest_password'] == $data['guest_password']) {
  193.                 $guest_login true;
  194.             } elseif ($vars['use_password']) {
  195.                 $vars['guest_error'] = "Invalid Guest Username/Password";
  196.             }
  197.         } else {
  198.             $guest_login true;
  199.         }
  200.         if ($guest_login) {
  201.             // log the user in
  202.             $user_id $data['user_id'];
  203.             // create a session class instance.
  204.             $_SESSION['S'] = new Session_Class($user_id$db);
  205.             $_SESSION['S']->comp_id $_SESSION['TMUser']->getPrimaryCompanyId($user_data['user_id']);
  206.             $_SESSION['TMUser']->primary_company_id $_SESSION['S']->comp_id;
  207.             $_SESSION['S']->set_selection_to_all();
  208.             $_SESSION['S']->set_tmpl_selection_to_all();
  209.             $_SESSION['S']->group_id $_SESSION['TMUser']->getGroupIDByGroup_name('guest');
  210.             $_SESSION['S']->is_guest true;
  211.             $_SESSION['S']->all_companies = array($_SESSION['S']->comp_id);
  212.             $_SESSION['user_id'] = $user_id;
  213.         }
  214.     } else {
  215.         $vars['guest_error'] = "The username you entered does not belong to a valid Task Meister account<br />".
  216.         "or the user does not have their guest account enabled.";
  217.     }
  218.     if (isset($_SESSION['user_id'])) {
  219.         // redirect("/main.php?mode=calendar&a=login");
  220.         $_GET["mode"] = "calendar";
  221.         $_GET["a"] = "login";
  222.         require "main.php";
  223.         exit;
  224.     }
  225. }
  226. if (!isset($vars['error'])) {
  227.     $vars['error'] = null;
  228. }
  229. if (!isset($vars['guest_error'])) {
  230.     $vars['guest_error'] = null;
  231. }
  232. if (!isset($vars['username'])) {
  233.     $vars['username'] = null;
  234. }
  235. if (!isset($vars['guest_username'])) {
  236.     $vars['guest_username'] = null;
  237. }
  238. $tpl->assign("page_title""Task Manager: Login" . ($vars['error'] != "" || $vars['guest_error'] != "" " Error" ""));
  239. $tpl->assign("accessmeister_url"$Config->accessmeister_url);
  240. $tpl->assign("error"$vars['error']);
  241. $tpl->assign("guest_error"$vars['guest_error']);
  242. $tpl->assign("username"$vars['username']);
  243. $tpl->assign("guest_username"$vars['guest_username']);
  244. $tpl->assign('company_header_image'"images/header.gif");
  245. $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>');
  246. $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>'));
  247. $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>'));
  248. $tpl->display("login.tpl");