visit.php 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. <?php
  2. class entry extends control
  3. {
  4. /**
  5. * Visit entry.
  6. *
  7. * @param int $entryID
  8. * @param string $referer
  9. * @access public
  10. * @return void
  11. */
  12. public function visit($entryID = '', $referer = '')
  13. {
  14. if(RUN_MODE != 'xuanxuan') die();
  15. $referer = !empty($_GET['referer']) ? $this->get->referer : $referer;
  16. $server = $this->loadModel('im')->getServer('zentao');
  17. if(empty($referer)) $referer = $server . str_replace('/x.php', '/index.php', $this->createLink('my', 'index', '', 'html'));
  18. $output = new stdclass();
  19. $output->module = $this->moduleName;
  20. $output->method = $this->methodName;
  21. $output->result = 'success';
  22. $output->users = array();
  23. $query = '';
  24. $query = $this->config->sessionVar . '=' . session_id();
  25. $location = $referer;
  26. $pathinfo = parse_url($location);
  27. if(!empty($pathinfo['query']))
  28. {
  29. $location = substr($location, 0, strpos($location, '?'));
  30. $location = rtrim($location, '?') . "?{$query}&{$pathinfo['query']}";
  31. }
  32. else
  33. {
  34. $location = rtrim($location, '?') . "?$query";
  35. }
  36. $output->data = $location;
  37. if($this->session->userID)
  38. {
  39. $output->users = array($this->session->userID);
  40. $this->loadModel('user');
  41. $user = $this->dao->select('*')->from(TABLE_USER)->where('id')->eq($this->session->userID)->fetch();
  42. $this->user->cleanLocked($user->account);
  43. $user->lastTime = $user->last;
  44. $user->admin = strpos($this->app->company->admins, ",{$user->account},") !== false;
  45. $user->modifyPassword = ($user->visits == 0 and !empty($this->config->safe->modifyPasswordFirstLogin));
  46. if($user->modifyPassword) $user->modifyPasswordReason = 'modifyPasswordFirstLogin';
  47. if(!$user->modifyPassword and !empty($this->config->safe->changeWeak))
  48. {
  49. $user->modifyPassword = $this->loadModel('admin')->checkWeak($user);
  50. if($user->modifyPassword) $user->modifyPasswordReason = 'weak';
  51. }
  52. $user->rights = $this->user->authorize($user->account);
  53. $user->groups = $this->user->getGroups($user->account);
  54. $user->view = $this->user->grantUserView($user->account, $user->rights['acls']);
  55. $last = helper::now();
  56. $user->last = $last;
  57. $user->lastTime = $last;
  58. $user->ip = helper::getRemoteIp();
  59. $xxInstalled = str_replace('.', '__dot__', $user->account) . 'installed';
  60. $this->loadModel('setting');
  61. if(!isset($this->config->xxclient->$xxInstalled)) $this->setting->setItem("system.common.xxclient.{$xxInstalled}", '1');
  62. if(!isset($this->config->xxserver->installed)) $this->setting->setItem("system.common.xxserver.installed", '1');
  63. if(!isset($this->config->xxserver->noticed)) $this->setting->setItem("system.common.xxserver.noticed", '1');
  64. $this->session->set('user', $user);
  65. $this->app->user = $this->session->user;
  66. }
  67. $this->loadModel('im')->sendOutput($output, 'entry/visitResponse');
  68. }
  69. }