diff --git a/trunk/module/common/control.php b/trunk/module/common/control.php
index d91a9202ef..d6f326ce39 100644
--- a/trunk/module/common/control.php
+++ b/trunk/module/common/control.php
@@ -87,7 +87,8 @@ EOT;
}
else
{
- $this->locate($this->createLink('user', 'login'));
+ $referer = helper::safe64Encode($this->app->getURI(true));
+ $this->locate($this->createLink('user', 'login', "referer=$referer&from=zentao"));
}
}
diff --git a/trunk/module/user/control.php b/trunk/module/user/control.php
index 6e123c5a8f..b0367dd268 100644
--- a/trunk/module/user/control.php
+++ b/trunk/module/user/control.php
@@ -271,7 +271,7 @@ class user extends control
* @access public
* @return void
*/
- public function login($referer = '')
+ public function login($referer = '', $from = '')
{
$this->setReferer($referer);
@@ -308,12 +308,11 @@ class user extends control
/* 记录登录记录。*/
$this->loadModel('action')->create('user', $user->id, 'login');
- /* POST变量中设置了referer信息,且非user/login.html, 非user/deny.html,并且包含当前系统的域名。*/
- if(isset($_POST['referer']) and
- !empty($_POST['referer']) and
- strpos($_POST['referer'], $loginLink) === false and
- strpos($_POST['referer'], $denyLink) === false and
- strpos($_POST['referer'], $this->app->company->pms) !== false
+ /* POST变量中设置了referer信息,且非user/login.html, 非user/deny.html,并且来自zentao系统。*/
+ if($this->post->referer != false and
+ strpos($this->post->referer, $loginLink) === false and
+ strpos($this->post->referer, $denyLink) === false and
+ $from == 'zentao'
)
{
die(js::locate($_POST['referer'], 'parent'));
diff --git a/trunk/module/user/view/login.html.php b/trunk/module/user/view/login.html.php
index c279c5c02b..6e3f50069e 100644
--- a/trunk/module/user/view/login.html.php
+++ b/trunk/module/user/view/login.html.php
@@ -40,6 +40,8 @@ $themeRoot = $webRoot . "theme/";
' type='text/css' media='screen' />
' type='text/css' media='screen' />
+
+