Add UserSession to server container
This commit is contained in:
parent
69c28400b4
commit
ac73ce1b2a
|
@ -62,6 +62,13 @@ interface IServerContainer {
|
|||
*/
|
||||
function getRootFolder();
|
||||
|
||||
/**
|
||||
* Returns the user session
|
||||
*
|
||||
* @return \OCP\IUserSession
|
||||
*/
|
||||
function getUserSession();
|
||||
|
||||
/**
|
||||
* Returns an ICache instance
|
||||
*
|
||||
|
|
|
@ -0,0 +1,30 @@
|
|||
<?php
|
||||
/**
|
||||
* Copyright (c) 2013 Bart Visscher <bartv@thisnet.nl>
|
||||
* This file is licensed under the Affero General Public License version 3 or
|
||||
* later.
|
||||
* See the COPYING-README file.
|
||||
*
|
||||
*/
|
||||
|
||||
namespace OCP;
|
||||
|
||||
/**
|
||||
* User session
|
||||
*/
|
||||
interface IUserSession {
|
||||
/**
|
||||
* Do a user login
|
||||
* @param string $user the username
|
||||
* @param string $password the password
|
||||
* @return bool true if successful
|
||||
*/
|
||||
public function login($user, $password);
|
||||
|
||||
/**
|
||||
* @brief Logs the user out including all the session data
|
||||
* Logout, destroys session
|
||||
*/
|
||||
public function logout();
|
||||
|
||||
}
|
|
@ -56,6 +56,47 @@ class Server extends SimpleContainer implements IServerContainer {
|
|||
$view = new View();
|
||||
return new Root($manager, $view, $user);
|
||||
});
|
||||
$this->registerService('UserManager', function($c) {
|
||||
return new \OC\User\Manager();
|
||||
});
|
||||
$this->registerService('UserSession', function($c) {
|
||||
$manager = $c->query('UserManager');
|
||||
$userSession = new \OC\User\Session($manager, \OC::$session);
|
||||
$userSession->listen('\OC\User', 'preCreateUser', function ($uid, $password) {
|
||||
\OC_Hook::emit('OC_User', 'pre_createUser', array('run' => true, 'uid' => $uid, 'password' => $password));
|
||||
});
|
||||
$userSession->listen('\OC\User', 'postCreateUser', function ($user, $password) {
|
||||
/** @var $user \OC\User\User */
|
||||
\OC_Hook::emit('OC_User', 'post_createUser', array('uid' => $user->getUID(), 'password' => $password));
|
||||
});
|
||||
$userSession->listen('\OC\User', 'preDelete', function ($user) {
|
||||
/** @var $user \OC\User\User */
|
||||
\OC_Hook::emit('OC_User', 'pre_deleteUser', array('run' => true, 'uid' => $user->getUID()));
|
||||
});
|
||||
$userSession->listen('\OC\User', 'postDelete', function ($user) {
|
||||
/** @var $user \OC\User\User */
|
||||
\OC_Hook::emit('OC_User', 'post_deleteUser', array('uid' => $user->getUID()));
|
||||
});
|
||||
$userSession->listen('\OC\User', 'preSetPassword', function ($user, $password, $recoveryPassword) {
|
||||
/** @var $user \OC\User\User */
|
||||
\OC_Hook::emit('OC_User', 'pre_setPassword', array('run' => true, 'uid' => $user->getUID(), 'password' => $password, 'recoveryPassword' => $recoveryPassword));
|
||||
});
|
||||
$userSession->listen('\OC\User', 'postSetPassword', function ($user, $password, $recoveryPassword) {
|
||||
/** @var $user \OC\User\User */
|
||||
\OC_Hook::emit('OC_User', 'post_setPassword', array('run' => true, 'uid' => $user->getUID(), 'password' => $password, 'recoveryPassword' => $recoveryPassword));
|
||||
});
|
||||
$userSession->listen('\OC\User', 'preLogin', function ($uid, $password) {
|
||||
\OC_Hook::emit('OC_User', 'pre_login', array('run' => true, 'uid' => $uid, 'password' => $password));
|
||||
});
|
||||
$userSession->listen('\OC\User', 'postLogin', function ($user, $password) {
|
||||
/** @var $user \OC\User\User */
|
||||
\OC_Hook::emit('OC_User', 'post_login', array('run' => true, 'uid' => $user->getUID(), 'password' => $password));
|
||||
});
|
||||
$userSession->listen('\OC\User', 'logout', function () {
|
||||
\OC_Hook::emit('OC_User', 'logout', array());
|
||||
});
|
||||
return $userSession;
|
||||
});
|
||||
$this->registerService('UserCache', function($c) {
|
||||
return new UserCache();
|
||||
});
|
||||
|
@ -97,6 +138,20 @@ class Server extends SimpleContainer implements IServerContainer {
|
|||
return $this->query('RootFolder');
|
||||
}
|
||||
|
||||
/**
|
||||
* @return \OC\User\Manager
|
||||
*/
|
||||
function getUserManager() {
|
||||
return $this->query('UserManager');
|
||||
}
|
||||
|
||||
/**
|
||||
* @return \OC\User\Session
|
||||
*/
|
||||
function getUserSession() {
|
||||
return $this->query('UserSession');
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns an ICache instance
|
||||
*
|
||||
|
|
43
lib/user.php
43
lib/user.php
|
@ -37,54 +37,15 @@
|
|||
* logout()
|
||||
*/
|
||||
class OC_User {
|
||||
public static $userSession = null;
|
||||
|
||||
public static function getUserSession() {
|
||||
if (!self::$userSession) {
|
||||
$manager = new \OC\User\Manager();
|
||||
self::$userSession = new \OC\User\Session($manager, \OC::$session);
|
||||
self::$userSession->listen('\OC\User', 'preCreateUser', function ($uid, $password) {
|
||||
\OC_Hook::emit('OC_User', 'pre_createUser', array('run' => true, 'uid' => $uid, 'password' => $password));
|
||||
});
|
||||
self::$userSession->listen('\OC\User', 'postCreateUser', function ($user, $password) {
|
||||
/** @var $user \OC\User\User */
|
||||
\OC_Hook::emit('OC_User', 'post_createUser', array('uid' => $user->getUID(), 'password' => $password));
|
||||
});
|
||||
self::$userSession->listen('\OC\User', 'preDelete', function ($user) {
|
||||
/** @var $user \OC\User\User */
|
||||
\OC_Hook::emit('OC_User', 'pre_deleteUser', array('run' => true, 'uid' => $user->getUID()));
|
||||
});
|
||||
self::$userSession->listen('\OC\User', 'postDelete', function ($user) {
|
||||
/** @var $user \OC\User\User */
|
||||
\OC_Hook::emit('OC_User', 'post_deleteUser', array('uid' => $user->getUID()));
|
||||
});
|
||||
self::$userSession->listen('\OC\User', 'preSetPassword', function ($user, $password, $recoveryPassword) {
|
||||
/** @var $user \OC\User\User */
|
||||
OC_Hook::emit('OC_User', 'pre_setPassword', array('run' => true, 'uid' => $user->getUID(), 'password' => $password, 'recoveryPassword' => $recoveryPassword));
|
||||
});
|
||||
self::$userSession->listen('\OC\User', 'postSetPassword', function ($user, $password, $recoveryPassword) {
|
||||
/** @var $user \OC\User\User */
|
||||
OC_Hook::emit('OC_User', 'post_setPassword', array('run' => true, 'uid' => $user->getUID(), 'password' => $password, 'recoveryPassword' => $recoveryPassword));
|
||||
});
|
||||
self::$userSession->listen('\OC\User', 'preLogin', function ($uid, $password) {
|
||||
\OC_Hook::emit('OC_User', 'pre_login', array('run' => true, 'uid' => $uid, 'password' => $password));
|
||||
});
|
||||
self::$userSession->listen('\OC\User', 'postLogin', function ($user, $password) {
|
||||
/** @var $user \OC\User\User */
|
||||
\OC_Hook::emit('OC_User', 'post_login', array('run' => true, 'uid' => $user->getUID(), 'password' => $password));
|
||||
});
|
||||
self::$userSession->listen('\OC\User', 'logout', function () {
|
||||
\OC_Hook::emit('OC_User', 'logout', array());
|
||||
});
|
||||
}
|
||||
return self::$userSession;
|
||||
return OC::$server->getUserSession();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return \OC\User\Manager
|
||||
*/
|
||||
public static function getManager() {
|
||||
return self::getUserSession()->getManager();
|
||||
return OC::$server->getUserManager();
|
||||
}
|
||||
|
||||
private static $_backends = array();
|
||||
|
|
Loading…
Reference in New Issue