Explorar o código

Added a logoff button

git-svn-id: http://svn.code.sf.net/p/itop/code/trunk@124 a333f486-631f-4898-b8df-5754b55c2be0
romainq %!s(int64=15) %!d(string=hai) anos
pai
achega
d07e323e30
Modificáronse 2 ficheiros con 31 adicións e 18 borrados
  1. 5 1
      application/itopwebpage.class.inc.php
  2. 26 17
      application/loginwebpage.class.inc.php

+ 5 - 1
application/itopwebpage.class.inc.php

@@ -274,7 +274,11 @@ EOF
 			$sOnClick = " onclick=\"this.value='';this.onclick=null;\"";
 		}
 		$sUserName = UserRights::GetUser();
-		echo "<div id=\"OrganizationSelection\" style=\"position:absolute; top:18px; right:16px; width:400px;\">Logged as '$sUserName'&nbsp;&nbsp;&nbsp;";
+		echo "<div id=\"OrganizationSelection\" style=\"position:absolute; top:18px; right:16px; width:400px;\">Logged in as '$sUserName'&nbsp;&nbsp;&nbsp;";
+		echo "<form action=\"../pages/UI.php\" method=\"post\" style=\"display:inline\">\n";
+		echo "<input type=\"Submit\" value=\"Log off\">\n";
+		echo "<input type=\"hidden\" name=\"operation\" value=\"logoff\">\n";
+		echo "</form>\n";
 		echo "<form action=\"../pages/UI.php\" style=\"display:inline\"><div style=\"padding:1px; background-color:#fff;display:inline;\"><img src=\"../images/magnifier.gif\"/><input style=\"border:0\" type=\"text\" size=\"15\" title=\"Global Search\" name=\"text\" value=\"$sText\"$sOnClick></input></div><input type=\"Submit\" value=\"Search\">
 			  <input type=\"hidden\" name=\"operation\" value=\"full_text\"></form>\n";
 		echo "</div>\n";

+ 26 - 17
application/loginwebpage.class.inc.php

@@ -62,11 +62,30 @@ h1 {
 		$this->add("</form>\n");
 		$this->add("</div>\n");
 	}
+
+	static protected function ResetSession()
+	{
+		// Unset all of the session variables.
+		$_SESSION = array();
+		// If it's desired to kill the session, also delete the session cookie.
+		// Note: This will destroy the session, and not just the session data!
+		if (isset($_COOKIE[session_name()]))
+		{
+			setcookie(session_name(), '', time()-3600, '/');
+		}		
+		// Finally, destroy the session.
+		session_destroy();
+	}
 	
 	static function DoLogin()
 	{
 		$operation = utils::ReadParam('operation', '');
 		session_start();
+
+		if ($operation == 'logoff')
+		{
+			self::ResetSession();
+		}
 		
 		if (!isset($_SESSION['auth_user']) || !isset($_SESSION['auth_pwd']))
 		{
@@ -78,9 +97,9 @@ h1 {
 			else
 			{
 				$oPage = new login_web_page();
-			    $oPage->DisplayLoginForm();
-			    $oPage->output();
-			    exit;
+				$oPage->DisplayLoginForm();
+				$oPage->output();
+				exit;
 			}
 		}
 		else
@@ -90,21 +109,11 @@ h1 {
 		}
 		if (!UserRights::Login($sAuthUser, $sAuthPwd))
 		{
-			// Unset all of the session variables.
-			$_SESSION = array();
-			// If it's desired to kill the session, also delete the session cookie.
-			// Note: This will destroy the session, and not just the session data!
-			if (isset($_COOKIE[session_name()]))
-			{
-				setcookie(session_name(), '', time()-3600, '/');
-			}		
-			// Finally, destroy the session.
-			session_destroy();
-
+			self::ResetSession();
 			$oPage = new login_web_page();
-		    $oPage->DisplayLoginForm( true /* failed attempt */);
-		    $oPage->output();
-		    exit;
+			$oPage->DisplayLoginForm( true /* failed attempt */);
+			$oPage->output();
+			exit;
 		}
 		else
 		{