Merge pull request #6693 from owncloud/fixing-apache-login

Fixing apache login
This commit is contained in:
Thomas Müller 2014-01-09 03:32:17 -08:00
commit e0dbc1b67e
3 changed files with 11 additions and 9 deletions

View File

@ -544,12 +544,12 @@ class OC {
OC_User::useBackend(new OC_User_Database()); OC_User::useBackend(new OC_User_Database());
OC_Group::useBackend(new OC_Group_Database()); OC_Group::useBackend(new OC_Group_Database());
if (isset($_SERVER['PHP_AUTH_USER']) && self::$session->exists('user_id') if (isset($_SERVER['PHP_AUTH_USER']) && self::$session->exists('loginname')
&& $_SERVER['PHP_AUTH_USER'] !== self::$session->get('loginname')) { && $_SERVER['PHP_AUTH_USER'] !== self::$session->get('loginname')) {
$sessionUser = self::$session->get('loginname'); $sessionUser = self::$session->get('loginname');
$serverUser = $_SERVER['PHP_AUTH_USER']; $serverUser = $_SERVER['PHP_AUTH_USER'];
OC_Log::write('core', OC_Log::write('core',
"Session user-id ($sessionUser) doesn't match SERVER[PHP_AUTH_USER] ($serverUser).", "Session loginname ($sessionUser) doesn't match SERVER[PHP_AUTH_USER] ($serverUser).",
OC_Log::WARN); OC_Log::WARN);
OC_User::logout(); OC_User::logout();
} }

View File

@ -246,6 +246,8 @@ class OC_User {
session_regenerate_id(true); session_regenerate_id(true);
self::setUserId($uid); self::setUserId($uid);
self::setDisplayName($uid); self::setDisplayName($uid);
self::getUserSession()->setLoginName($uid);
OC_Hook::emit( "OC_User", "post_login", array( "uid" => $uid, 'password'=>'' )); OC_Hook::emit( "OC_User", "post_login", array( "uid" => $uid, 'password'=>'' ));
return true; return true;
} }

View File

@ -115,13 +115,13 @@ class Session implements Emitter, \OCP\IUserSession {
/** /**
* set the login name * set the login name
* *
* @param string login name for the logged in user * @param string $loginName for the logged in user
*/ */
public function setLoginname($loginname) { public function setLoginName($loginName) {
if (is_null($loginname)) { if (is_null($loginName)) {
$this->session->remove('loginname'); $this->session->remove('loginname');
} else { } else {
$this->session->set('loginname', $loginname); $this->session->set('loginname', $loginName);
} }
} }
@ -130,7 +130,7 @@ class Session implements Emitter, \OCP\IUserSession {
* *
* @return string * @return string
*/ */
public function getLoginname() { public function getLoginName() {
if ($this->activeUser) { if ($this->activeUser) {
return $this->session->get('loginname'); return $this->session->get('loginname');
} else { } else {
@ -158,7 +158,7 @@ class Session implements Emitter, \OCP\IUserSession {
if (!is_null($user)) { if (!is_null($user)) {
if ($user->isEnabled()) { if ($user->isEnabled()) {
$this->setUser($user); $this->setUser($user);
$this->setLoginname($uid); $this->setLoginName($uid);
$this->manager->emit('\OC\User', 'postLogin', array($user, $password)); $this->manager->emit('\OC\User', 'postLogin', array($user, $password));
return true; return true;
} else { } else {
@ -176,7 +176,7 @@ class Session implements Emitter, \OCP\IUserSession {
public function logout() { public function logout() {
$this->manager->emit('\OC\User', 'logout'); $this->manager->emit('\OC\User', 'logout');
$this->setUser(null); $this->setUser(null);
$this->setLoginname(null); $this->setLoginName(null);
$this->unsetMagicInCookie(); $this->unsetMagicInCookie();
} }