[Mapbender-commits] r5937 - in branches/3_dev: conf core/lib
http/frames http/plugins
svn_mapbender at osgeo.org
svn_mapbender at osgeo.org
Sun Apr 11 10:30:22 EDT 2010
Author: mh
Date: 2010-04-11 10:30:21 -0400 (Sun, 11 Apr 2010)
New Revision: 5937
Added:
branches/3_dev/http/plugins/mb_loginForm.js
branches/3_dev/http/plugins/mb_logout.js
Modified:
branches/3_dev/conf/mapbender.conf-dist
branches/3_dev/core/lib/class_Mapbender.php
branches/3_dev/core/lib/class_Session.php
branches/3_dev/http/frames/index.php
branches/3_dev/http/plugins/mb_login.js
branches/3_dev/http/plugins/mb_login_server.php
Log:
login via index.php
Modified: branches/3_dev/conf/mapbender.conf-dist
===================================================================
--- branches/3_dev/conf/mapbender.conf-dist 2010-04-11 14:29:09 UTC (rev 5936)
+++ branches/3_dev/conf/mapbender.conf-dist 2010-04-11 14:30:21 UTC (rev 5937)
@@ -49,7 +49,7 @@
# URL to login
# --------------------------------------------
-define("LOGIN", "http://localhost/mapbender/frames/login.php");
+define("LOGIN", "http://localhost/mapbender/frames/index.php");
define("MAXLOGIN", 3);
$login = LOGIN;
Modified: branches/3_dev/core/lib/class_Mapbender.php
===================================================================
--- branches/3_dev/core/lib/class_Mapbender.php 2010-04-11 14:29:09 UTC (rev 5936)
+++ branches/3_dev/core/lib/class_Mapbender.php 2010-04-11 14:30:21 UTC (rev 5937)
@@ -51,6 +51,8 @@
),
"locale" => Mapbender::session()->get("mb_locale"),
"languageId" => Mapbender::session()->get("mb_lang"),
+ "publicUser" => PUBLIC_USER,
+ "login" => LOGIN,
"log" => array(
"js" => LOG_JS,
"level" => LOG_LEVEL,
Modified: branches/3_dev/core/lib/class_Session.php
===================================================================
--- branches/3_dev/core/lib/class_Session.php 2010-04-11 14:29:09 UTC (rev 5936)
+++ branches/3_dev/core/lib/class_Session.php 2010-04-11 14:30:21 UTC (rev 5937)
@@ -126,6 +126,7 @@
}
if (session_id() !== "") {
session_destroy();
+ $_SESSION = array();
}
}
}
Modified: branches/3_dev/http/frames/index.php
===================================================================
--- branches/3_dev/http/frames/index.php 2010-04-11 14:29:09 UTC (rev 5936)
+++ branches/3_dev/http/frames/index.php 2010-04-11 14:30:21 UTC (rev 5937)
@@ -18,52 +18,62 @@
if (Mapbender::session()->get("mb_user_gui")) {
// open current application
$gui_id = Mapbender::session()->get("mb_user_gui");
+ $firephp->log("No credentials, user and application already set.");
}
+ $user = new User(Mapbender::session()->get("mb_user_id"));
}
else {
+ $firephp->log("No credentials, user not set.");
// open default login application as public user
Mapbender::session()->kill();
- session_start();
}
}
else {
+ $firephp->log("Credentials set.");
Mapbender::session()->kill();
- session_start();
$user = User::byName($name);
if (!is_null($user) && !$user->loginCountExceeded()) {
- $user = User::getByNameAndPassword($name, $password);
- if (!is_null($user)) {
- $userLoginFailed = User::byName($name);
+ $firephp->log("User found.");
+ $user = User::getByNameAndPassword($name, $password);
+ if (is_null($user)) {
+ $firephp->log("Could not log in.");
+ $userLoginFailed = User::byName($name);
if (!is_null($userLoginFailed)) {
+ $firephp->log("Increment login count.");
$userLoginFailed->incrementLoginCount();
}
}
else {
- // session conf
- include(dirname(__FILE__)."/../../conf/session.conf");
-
- if (Mapbender::session()->get("mb_user_id")) {
- if ($user->loginCount <= MAXLOGIN) {
- $user->resetLoginCount();
- }
- if ($_GET["mb_user_myGui"] && in_array($_GET["mb_user_myGui"], $user->getApplicationsByPermission())) {
- // open application as user
- $gui_id = $_GET["mb_user_myGui"];
- }
- }
- else {
- $user->incrementLoginCount();
- }
+ $firephp->log("Logged in.");
+ Mapbender::session()->set("mb_user_id", $user->id);
+ if ($user->loginCount <= MAXLOGIN) {
+ $firephp->log("Reset login count.");
+ $user->resetLoginCount();
+ }
+ if ($_GET["mb_user_myGui"] && in_array($_GET["mb_user_myGui"], $user->getApplicationsByPermission())) {
+ $firephp->log("Application " . $_GET["mb_user_myGui"] . " requested.");
+ // open application as user
+ $gui_id = $_GET["mb_user_myGui"];
+ }
}
}
}
+
+session_start();
if (!isset($user) || is_null($user)) {
+
$user = User::byName(PUBLIC_USER);
Mapbender::session()->set("mb_user_id", $user->id);
+ $firephp->log("Using public user: " . $user->id);
+ $password = "";
}
+$name = $user->name;
if (!isset($gui_id) || $gui_id === "") {
$gui_id = DEFAULT_APPLICATION;
+ $firephp->log("Using default application: " . $gui_id);
}
+$firephp->log($user);
+include dirname(__FILE__)."/../../conf/session.conf";
Mapbender::session()->set("mb_user_gui", $gui_id);
Mapbender::session()->set("mb_user_guis", $user->getApplicationsByPermission());
Modified: branches/3_dev/http/plugins/mb_login.js
===================================================================
--- branches/3_dev/http/plugins/mb_login.js 2010-04-11 14:29:09 UTC (rev 5936)
+++ branches/3_dev/http/plugins/mb_login.js 2010-04-11 14:30:21 UTC (rev 5937)
@@ -1,44 +1,36 @@
-(function ($) {
- $.fn.login = function () {
- return this.each(function () {
- //alert(this.id);
- if ($(this).is('div')) {
- $(this).load("./plugins/mb_login_html.php");
- }
- else {
- var $loginDiv = $("<div title='Login'/>").hide().load("./plugins/mb_login_html.php");
- $(this).append($loginDiv).bind("click", function () {
- $loginDiv.dialog({
- buttons: {
- "Login": function () {
- var name = $("form", $loginDiv).get(0).name.value;
- var password = $("form", $loginDiv).get(0).password.value;
- var req = new Mapbender.Ajax.Request({
- url: "./plugins/mb_login_server.php",
- method: "login",
- parameters: {
- name: name,
- password: password
- },
- callback: function (obj, result, message) {
- if (!result) {
- alert(message);
- return;
- }
- alert(message);
- }
- });
- req.send();
- return false;
- }
- },
- modal: true,
- resizable: false,
- draggable: false,
- width: 400
- });
- });
- }
- });
+var $login = $(this);
+
+var req = new Mapbender.Ajax.Request({
+ url: "../plugins/mb_login_server.php",
+ method: "userInformation",
+ parameters: {
+ },
+ callback: function (obj, result, message) {
+ var html = "";
+ if (!result || obj.name === Mapbender.publicUser) {
+ $login.mapbender(function () {
+ this.loggedOut();
+ });
+ }
+ else {
+ $login.mapbender(function () {
+ this.loggedIn(obj.name);
+ });
+ }
+ }
+});
+req.send();
+
+var LoginApi = function () {
+ this.loggedIn = function (name) {
+ html = "Logged in as " + name + ". <a href='#'>logout</a>";
+ $login.html(html);
+ var $a = $("a", $login).logout();
};
-})(jQuery);
\ No newline at end of file
+ this.loggedOut = function () {
+ html = "<a href='#'>login</a>";
+ $login.html(html);
+ $("a", $login).login();
+ };
+};
+$login.mapbender(new LoginApi());
Added: branches/3_dev/http/plugins/mb_loginForm.js
===================================================================
--- branches/3_dev/http/plugins/mb_loginForm.js (rev 0)
+++ branches/3_dev/http/plugins/mb_loginForm.js 2010-04-11 14:30:21 UTC (rev 5937)
@@ -0,0 +1,46 @@
+(function ($) {
+ $.fn.login = function () {
+ return this.each(function () {
+ //alert(this.id);
+ if ($(this).is('div')) {
+ $(this).load("../plugins/mb_login_html.php");
+ }
+ else {
+ var $loginDiv = $("<div title='Login'/>").hide().load("../plugins/mb_login_html.php");
+ $(this).append($loginDiv).bind("click", function () {
+ $loginDiv.dialog({
+ buttons: {
+ "Login": function () {
+ var name = $("form", $loginDiv).get(0).name.value;
+ var password = $("form", $loginDiv).get(0).password.value;
+ var req = new Mapbender.Ajax.Request({
+ url: "../plugins/mb_login_server.php",
+ method: "login",
+ parameters: {
+ name: name,
+ password: password
+ },
+ callback: function (obj, result, message) {
+ if (!result) {
+ $("#mb_login").loggedOut();
+ return;
+ }
+ $loginDiv.dialog("destroy");
+ window.location.href = Mapbender.login + "?name=" + name + "&password=" + password;
+
+ }
+ });
+ req.send();
+ return false;
+ }
+ },
+ modal: true,
+ resizable: false,
+ draggable: false,
+ width: 400
+ });
+ });
+ }
+ });
+ };
+})(jQuery);
\ No newline at end of file
Modified: branches/3_dev/http/plugins/mb_login_server.php
===================================================================
--- branches/3_dev/http/plugins/mb_login_server.php 2010-04-11 14:29:09 UTC (rev 5936)
+++ branches/3_dev/http/plugins/mb_login_server.php 2010-04-11 14:30:21 UTC (rev 5937)
@@ -35,15 +35,6 @@
return null;
}
-function setSession() {
- session_start();
- session_write_close();
-}
-
-function killSession() {
- Mapbender::session()->kill();
-}
-
$ajaxResponse = new AjaxResponse($_POST, false);
switch ($ajaxResponse->getMethod()) {
@@ -65,24 +56,10 @@
$ajaxResponse->setMessage(_mb("Permission denied. Login failed %d times. Your account has been deactivated. Please contact your administrator!", MAXLOGIN));
break;
}
-
- $row = auth_user($name, $password);
-
- // if given user data is found in database, set session data (db_fetch_array returns false if no row is found)
- if($row){
- setSession();
- include dirname(__FILE__)."/../../conf/session.conf";
- }
-
- if (Mapbender::session()->get("mb_user_id")) {
- if ($row["mb_user_login_count"] <= MAXLOGIN) {
- $user->resetLoginCount();
- $applicationArray = $user->getApplicationsByPermission();
-
- Mapbender::session()->set("mb_user_guis", $applicationArray);
-// Mapbender::session()->set("mb_login", $login);
- }
- $ajaxResponse->setSuccess(true);
+ $user = User::getByNameAndPassword($name, $password);
+ if (!is_null($user)){
+ Mapbender::session()->kill();
+ $ajaxResponse->setSuccess(true);
$ajaxResponse->setMessage(_mb("Login success."));
break;
}
@@ -90,10 +67,27 @@
$ajaxResponse->setSuccess(false);
$ajaxResponse->setMessage(_mb("Login failed."));
break;
+ case "userInformation" :
+ if (Mapbender::session()->get("mb_user_id")) {
+ $resultObj = array(
+ "name" => Mapbender::session()->get("mb_user_name")
+ );
+ $ajaxResponse->setSuccess(true);
+ $ajaxResponse->setResult($resultObj);
+ break;
+ }
+ $ajaxResponse->setSuccess(false);
+ break;
+ case "logout" :
+ Mapbender::session()->kill();
+ $ajaxResponse->setSuccess(true);
+ break;
default:
$ajaxResponse->setSuccess(false);
$ajaxResponse->setMessage(_mb("An unknown error occured."));
break;
}
+$firephp->log($_SESSION);
+$firephp->log(session_id());
$ajaxResponse->send();
?>
\ No newline at end of file
Added: branches/3_dev/http/plugins/mb_logout.js
===================================================================
--- branches/3_dev/http/plugins/mb_logout.js (rev 0)
+++ branches/3_dev/http/plugins/mb_logout.js 2010-04-11 14:30:21 UTC (rev 5937)
@@ -0,0 +1,22 @@
+(function ($) {
+ $.fn.logout = function () {
+ return this.each(function () {
+ $(this).bind("click", function () {
+ var req = new Mapbender.Ajax.Request({
+ url: "../plugins/mb_login_server.php",
+ method: "logout",
+ parameters: {
+ },
+ callback: function (obj, result, message) {
+ if (!result) {
+ return;
+ }
+ window.location.href = Mapbender.login;
+ }
+ });
+ req.send();
+ return false;
+ });
+ });
+ };
+})(jQuery);
\ No newline at end of file
More information about the Mapbender_commits
mailing list