summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--BitInstaller.php31
-rw-r--r--install_inc.php16
-rw-r--r--templates/install_login.tpl26
3 files changed, 66 insertions, 7 deletions
diff --git a/BitInstaller.php b/BitInstaller.php
index 560123d..20f478a 100644
--- a/BitInstaller.php
+++ b/BitInstaller.php
@@ -47,6 +47,37 @@ class BitInstaller extends BitSystem {
}
/**
+ * Minimal login just for install in case users tables have been modified
+ *
+ * @access public
+ * @return void
+ */
+ function login( $pLogin, $pPassword, $pChallenge=NULL, $pResponse=NULL ) {
+ global $gBitUser;
+
+ $isvalid = false;
+
+ $loginCol = strpos( $pLogin, '@' ) ? 'email' : 'login';
+
+ if( $gBitUser->validate( $pLogin, $pPassword, $pChallenge, $pResponse ) ) {
+ $userInfo = $gBitUser->getUserInfo( array( $loginCol => $pLogin ) );
+
+ if( $userInfo['user_id'] != ANONYMOUS_USER_ID ) {
+ // User is valid and not due to change pass..
+ $gBitUser->mUserId = $userInfo['user_id'];
+ $gBitUser->mInfo = $userInfo;
+ $gBitUser->loadPermissions( TRUE );
+
+ $sessionId = session_id();
+ $gBitUser->sendSessionCookie( $sessionId );
+ $gBitUser->updateSession( $sessionId );
+ }
+ }
+
+ return $gBitUser->isAdmin();
+ }
+
+ /**
* loadUpgradeFiles This will load all files in the dir <pckage>/admin/upgrades/<version>.php with a version greater than the one installed
*
* @param array $pPackage
diff --git a/install_inc.php b/install_inc.php
index bf56f55..74acd9f 100644
--- a/install_inc.php
+++ b/install_inc.php
@@ -149,13 +149,17 @@ if( empty( $_REQUEST['baseurl'] )) {
$bit_root_url = BIT_ROOT_URL;
}
-$errors = '';
+global $gBitUser;
+if( !empty( $_REQUEST['login'] ) ) {
+ $gBitInstaller->login( $_REQUEST['user'], $_REQUEST['pass'] );
+} elseif( !empty( $_COOKIE[$gBitUser->getSiteCookieName()] ) && ( $gBitUser->mUserId = $gBitUser->getUserIdFromCookieHash( $_COOKIE[$gBitUser->getSiteCookieName()] ))) {
+ $userInfo = $gBitUser->getUserInfo( array( 'user_id' => $gBitUser->mUserId ) );
-// do some session stuff
-// check_session_save_path();
-if( !isset( $_SESSION )) {
-// session_start();
-// vd( "session start" );
+ if( $userInfo['user_id'] != ANONYMOUS_USER_ID ) {
+ // User is valid and not due to change pass..
+ $gBitUser->mInfo = $userInfo;
+ $gBitUser->loadPermissions( TRUE );
+ }
}
// if we came from anywhere appart from some installer page, nuke all settings in the _SESSION and set first_install FALSE
diff --git a/templates/install_login.tpl b/templates/install_login.tpl
index 6fc76b8..13c344b 100644
--- a/templates/install_login.tpl
+++ b/templates/install_login.tpl
@@ -2,7 +2,31 @@
<h1>{$title|default:"You must be logged in as an administrator to run the installer."}</h1>
-{include file="bitpackage:users/login_inc.tpl"}
+{form name="login" legend="Please sign in to continue" secure=$gBitSystem->isFeatureActive("site_https_login_required")}
+ <div class="row">
+ {formfeedback error="$error"}
+ {formlabel label="Username or Email" for="user"}
+ {forminput}
+ <input type="text" name="user" id="user" size="25" />
+ {formhelp note=""}
+ {/forminput}
+ </div>
+
+ <div class="row">
+ {formlabel label="Password" for="pass"}
+ {forminput}
+ <input type="password" name="pass" id="pass" size="25" />
+ {/forminput}
+ </div>
+
+ <div class="row submit">
+ <input type="submit" name="login" value="{tr}Log in to {$gBitSystem->getConfig('site_title')|default:"this site"}{/tr}" />
+ {if $gBitSystem->isFeatureActive('site_https_login_required') || $smarty.server.HTTPS=='on'}
+ {biticon iname="emblem-readonly" ipackage="icons" iexplain="Secure Login"}
+ {/if}
+ </div>
+{/form}
+
<div class="center">
<a href="http://www.bitweaver.org/">