[Pkg-owncloud-commits] [owncloud] 07/59: Add public interfaces for User, UserManager and UserSession

David Prévot taffit at moszumanska.debian.org
Fri Jul 18 16:19:24 UTC 2014


This is an automated email from the git hooks/post-receive script.

taffit pushed a commit to branch master
in repository owncloud.

commit 169b328d415bde9c7459d336b3b5265c2a7fdd03
Author: Robin Appelman <icewind at owncloud.com>
Date:   Wed Jul 9 15:32:33 2014 +0200

    Add public interfaces for User, UserManager and UserSession
---
 lib/private/user/manager.php |   3 +-
 lib/private/user/session.php |   3 +-
 lib/private/user/user.php    |   3 +-
 lib/public/iuser.php         | 105 +++++++++++++++++++++++++++++++++++++++++++
 lib/public/iusermanager.php  | 105 +++++++++++++++++++++++++++++++++++++++++++
 lib/public/iusersession.php  |  13 ++++++
 6 files changed, 229 insertions(+), 3 deletions(-)

diff --git a/lib/private/user/manager.php b/lib/private/user/manager.php
index f2964fe..d4d9116 100644
--- a/lib/private/user/manager.php
+++ b/lib/private/user/manager.php
@@ -10,6 +10,7 @@
 namespace OC\User;
 
 use OC\Hooks\PublicEmitter;
+use OCP\IUserManager;
 
 /**
  * Class Manager
@@ -24,7 +25,7 @@ use OC\Hooks\PublicEmitter;
  *
  * @package OC\User
  */
-class Manager extends PublicEmitter {
+class Manager extends PublicEmitter implements IUserManager {
 	/**
 	 * @var \OC_User_Interface[] $backends
 	 */
diff --git a/lib/private/user/session.php b/lib/private/user/session.php
index 5f0dee6..8c9b3e2 100644
--- a/lib/private/user/session.php
+++ b/lib/private/user/session.php
@@ -10,6 +10,7 @@
 namespace OC\User;
 
 use OC\Hooks\Emitter;
+use OCP\IUserSession;
 
 /**
  * Class Session
@@ -29,7 +30,7 @@ use OC\Hooks\Emitter;
  *
  * @package OC\User
  */
-class Session implements Emitter, \OCP\IUserSession {
+class Session implements IUserSession, Emitter {
 	/**
 	 * @var \OC\User\Manager $manager
 	 */
diff --git a/lib/private/user/user.php b/lib/private/user/user.php
index 8aba718..f9c2cb4 100644
--- a/lib/private/user/user.php
+++ b/lib/private/user/user.php
@@ -10,8 +10,9 @@
 namespace OC\User;
 
 use OC\Hooks\Emitter;
+use OCP\IUser;
 
-class User {
+class User implements IUser {
 	/**
 	 * @var string $uid
 	 */
diff --git a/lib/public/iuser.php b/lib/public/iuser.php
new file mode 100644
index 0000000..dc4acc7
--- /dev/null
+++ b/lib/public/iuser.php
@@ -0,0 +1,105 @@
+<?php
+
+/**
+ * Copyright (c) 2014 Robin Appelman <icewind at owncloud.com>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OCP;
+
+interface IUser {
+	/**
+	 * get the user id
+	 *
+	 * @return string
+	 */
+	public function getUID();
+
+	/**
+	 * get the displayname for the user, if no specific displayname is set it will fallback to the user id
+	 *
+	 * @return string
+	 */
+	public function getDisplayName();
+
+	/**
+	 * set the displayname for the user
+	 *
+	 * @param string $displayName
+	 * @return bool
+	 */
+	public function setDisplayName($displayName);
+
+	/**
+	 * returns the timestamp of the user's last login or 0 if the user did never
+	 * login
+	 *
+	 * @return int
+	 */
+	public function getLastLogin();
+
+	/**
+	 * updates the timestamp of the most recent login of this user
+	 */
+	public function updateLastLoginTimestamp();
+
+	/**
+	 * Delete the user
+	 *
+	 * @return bool
+	 */
+	public function delete();
+
+	/**
+	 * Set the password of the user
+	 *
+	 * @param string $password
+	 * @param string $recoveryPassword for the encryption app to reset encryption keys
+	 * @return bool
+	 */
+	public function setPassword($password, $recoveryPassword);
+
+	/**
+	 * get the users home folder to mount
+	 *
+	 * @return string
+	 */
+	public function getHome();
+
+	/**
+	 * check if the backend allows the user to change his avatar on Personal page
+	 *
+	 * @return bool
+	 */
+	public function canChangeAvatar();
+
+	/**
+	 * check if the backend supports changing passwords
+	 *
+	 * @return bool
+	 */
+	public function canChangePassword();
+
+	/**
+	 * check if the backend supports changing display names
+	 *
+	 * @return bool
+	 */
+	public function canChangeDisplayName();
+
+	/**
+	 * check if the user is enabled
+	 *
+	 * @return bool
+	 */
+	public function isEnabled();
+
+	/**
+	 * set the enabled status for the user
+	 *
+	 * @param bool $enabled
+	 */
+	public function setEnabled($enabled);
+}
diff --git a/lib/public/iusermanager.php b/lib/public/iusermanager.php
new file mode 100644
index 0000000..fc0729b
--- /dev/null
+++ b/lib/public/iusermanager.php
@@ -0,0 +1,105 @@
+<?php
+
+/**
+ * Copyright (c) 2014 Robin Appelman <icewind at owncloud.com>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OCP;
+
+
+/**
+ * Class Manager
+ *
+ * Hooks available in scope \OC\User:
+ * - preSetPassword(\OC\User\User $user, string $password, string $recoverPassword)
+ * - postSetPassword(\OC\User\User $user, string $password, string $recoverPassword)
+ * - preDelete(\OC\User\User $user)
+ * - postDelete(\OC\User\User $user)
+ * - preCreateUser(string $uid, string $password)
+ * - postCreateUser(\OC\User\User $user, string $password)
+ *
+ * @package OC\User
+ */
+interface IUserManager {
+		/**
+	 * register a user backend
+	 *
+	 * @param \OCP\UserInterface $backend
+	 */
+	public function registerBackend($backend);
+
+	/**
+	 * remove a user backend
+	 *
+	 * @param \OCP\UserInterface $backend
+	 */
+	public function removeBackend($backend);
+
+	/**
+	 * remove all user backends
+	 */
+	public function clearBackends() ;
+
+	/**
+	 * get a user by user id
+	 *
+	 * @param string $uid
+	 * @return \OCP\IUser
+	 */
+	public function get($uid);
+
+	/**
+	 * check if a user exists
+	 *
+	 * @param string $uid
+	 * @return bool
+	 */
+	public function userExists($uid);
+
+	/**
+	 * Check if the password is valid for the user
+	 *
+	 * @param string $loginname
+	 * @param string $password
+	 * @return mixed the User object on success, false otherwise
+	 */
+	public function checkPassword($loginname, $password);
+
+	/**
+	 * search by user id
+	 *
+	 * @param string $pattern
+	 * @param int $limit
+	 * @param int $offset
+	 * @return \OCP\IUser[]
+	 */
+	public function search($pattern, $limit = null, $offset = null);
+
+	/**
+	 * search by displayName
+	 *
+	 * @param string $pattern
+	 * @param int $limit
+	 * @param int $offset
+	 * @return \OCP\IUser[]
+	 */
+	public function searchDisplayName($pattern, $limit = null, $offset = null);
+
+	/**
+	 * @param string $uid
+	 * @param string $password
+	 * @throws \Exception
+	 * @return bool|\OCP\IUser the created user of false
+	 */
+	public function createUser($uid, $password);
+
+	/**
+	 * returns how many users per backend exist (if supported by backend)
+	 *
+	 * @return array an array of backend class as key and count number as value
+	 */
+	public function countUsers();
+}
diff --git a/lib/public/iusersession.php b/lib/public/iusersession.php
index adc706c..e9d417c 100644
--- a/lib/public/iusersession.php
+++ b/lib/public/iusersession.php
@@ -49,4 +49,17 @@ interface IUserSession {
 	 */
 	public function logout();
 
+	/**
+	 * set the currently active user
+	 *
+	 * @param \OCP\User|null $user
+	 */
+	public function setUser($user);
+
+	/**
+	 * get the current active user
+	 *
+	 * @return \OCP\User
+	 */
+	public function getUser();
 }

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-owncloud/owncloud.git



More information about the Pkg-owncloud-commits mailing list