]> source.dussan.org Git - nextcloud-server.git/commitdiff
Add public interfaces for User, UserManager and UserSession
authorRobin Appelman <icewind@owncloud.com>
Wed, 9 Jul 2014 13:32:33 +0000 (15:32 +0200)
committerRobin Appelman <icewind@owncloud.com>
Mon, 14 Jul 2014 13:10:51 +0000 (15:10 +0200)
lib/private/user/manager.php
lib/private/user/session.php
lib/private/user/user.php
lib/public/iuser.php [new file with mode: 0644]
lib/public/iusermanager.php [new file with mode: 0644]
lib/public/iusersession.php

index f2964fecca3a3b5cba87070f85b5bdf648c0b520..d4d91163003f33c527740983404808ef991b87a1 100644 (file)
@@ -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
         */
index 5f0dee607ae43dcd0c11898db7010cc081c006fa..8c9b3e264e3371f249393c70bc432972f16dfd82 100644 (file)
@@ -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
         */
index 8aba7188e24feaed711b1710d6765afa91c28206..f9c2cb4d130e98a63cf7a04ee14b8c2d01bb05c5 100644 (file)
@@ -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 (file)
index 0000000..dc4acc7
--- /dev/null
@@ -0,0 +1,105 @@
+<?php
+
+/**
+ * Copyright (c) 2014 Robin Appelman <icewind@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 (file)
index 0000000..fc0729b
--- /dev/null
@@ -0,0 +1,105 @@
+<?php
+
+/**
+ * Copyright (c) 2014 Robin Appelman <icewind@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();
+}
index adc706cc7c3cc206b5382f499ea10e112c79709c..e9d417c1ace4c684ee624caecc1a3c7f188f2a5a 100644 (file)
@@ -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();
 }