diff options
-rw-r--r-- | lib/avatarmanager.php | 55 | ||||
-rw-r--r-- | lib/private/avatar.php | 2 | ||||
-rw-r--r-- | lib/private/server.php | 23 | ||||
-rw-r--r-- | lib/public/iavatarmanager.php | 38 | ||||
-rw-r--r-- | lib/public/iservercontainer.php | 6 |
5 files changed, 122 insertions, 2 deletions
diff --git a/lib/avatarmanager.php b/lib/avatarmanager.php new file mode 100644 index 00000000000..51481e412de --- /dev/null +++ b/lib/avatarmanager.php @@ -0,0 +1,55 @@ +<?php +/** + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +namespace OC; + +use OCP\IAvatar; + +/* + * This class implements methods to access Avatar functionality + */ +class AvatarManager implements IAvatarManager { + + private $avatar; + + /** + * @brief constructor + * @param $user string user to do avatar-management with + */ + function __construct($user) { + $this->avatar = new \OC\Avatar($user); + } + + /** + * @brief get the users avatar + * @param $size integer size in px of the avatar, defaults to 64 + * @return boolean|\OC_Image containing the avatar or false if there's no image + */ + function get($size = 64) { + $this->avatar->get($size); + } + + /** + * @brief sets the users avatar + * @param $data mixed imagedata or path to set a new avatar + * @throws Exception if the provided file is not a jpg or png image + * @throws Exception if the provided image is not valid + * @throws \OC\NotSquareException if the image is not square + * @return void + */ + function set($data) { + $this->avatar->set($data); + } + + /** + * @brief remove the users avatar + * @return void + */ + function remove() { + $this->avatar->remove(); + } +} diff --git a/lib/private/avatar.php b/lib/private/avatar.php index 720740569df..e9b02a7d34c 100644 --- a/lib/private/avatar.php +++ b/lib/private/avatar.php @@ -24,7 +24,7 @@ class OC_Avatar { /** * @brief get the users avatar - * @param $size integer size in px of the avatar, defaults to 64 + * @param $size integer size in px of the avatar, avatars are square, defaults to 64 * @return boolean|\OC_Image containing the avatar or false if there's no image */ public function get ($size = 64) { diff --git a/lib/private/server.php b/lib/private/server.php index 65899f3007e..65542d19ab5 100644 --- a/lib/private/server.php +++ b/lib/private/server.php @@ -56,7 +56,7 @@ class Server extends SimpleContainer implements IServerContainer { }); $this->registerService('TagManager', function($c) { $user = \OC_User::getUser(); - return new TagManager($user); + return new Tags($user); }); $this->registerService('RootFolder', function($c) { // TODO: get user and user manager from container as well @@ -131,6 +131,9 @@ class Server extends SimpleContainer implements IServerContainer { $this->registerService('ActivityManager', function($c) { return new ActivityManager(); }); + $this->registerService('AvatarManager', function($c) { + return new AvatarManager(); //TODO AvatarManager needs $user + }); } /** @@ -161,6 +164,15 @@ class Server extends SimpleContainer implements IServerContainer { } /** + * Returns the avatar manager, used for avatar functionality + * + * @return \OCP\IAvatar + */ + function getAvatarManager() { + return $this->query('AvatarManager'); + } + + /** * Returns the tag manager which can get and set tags for different object types * * @see \OCP\ITagManager::load() @@ -171,6 +183,15 @@ class Server extends SimpleContainer implements IServerContainer { } /** + * Returns the avatar manager, used for avatar functionality + * + * @return \OCP\IAvatar + */ + function getAvatarManager() { + return $this->query('AvatarManager'); + } + + /** * Returns the root folder of ownCloud's data directory * * @return \OCP\Files\Folder diff --git a/lib/public/iavatarmanager.php b/lib/public/iavatarmanager.php new file mode 100644 index 00000000000..818dbb124af --- /dev/null +++ b/lib/public/iavatarmanager.php @@ -0,0 +1,38 @@ +<?php +/** + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +namespace OCP; + +/** + * This class provides avatar functionality + */ + +interface IAvatarManager { + + /** + * @brief get the users avatar + * @param $size integer size in px of the avatar, avatars are square, defaults to 64 + * @return boolean|\OC_Image containing the avatar or false if there's no image + */ + function get($size = 64); + + /** + * @brief sets the users avatar + * @param $data mixed imagedata or path to set a new avatar + * @throws Exception if the provided file is not a jpg or png image + * @throws Exception if the provided image is not valid + * @throws \OCP\NotSquareException if the image is not square + * @return void + */ + function set($data); + + /** + * @brief remove the users avatar + * @return void + */ + function remove(); +} diff --git a/lib/public/iservercontainer.php b/lib/public/iservercontainer.php index 14822817a47..6556b52c3b0 100644 --- a/lib/public/iservercontainer.php +++ b/lib/public/iservercontainer.php @@ -154,4 +154,10 @@ interface IServerContainer { */ function getDatabaseConnection(); + /** + * @brief Returns an avatar manager, used for avatar functionality + * @return \OCP\IAvatar + */ + function getAvatarManager(); + } |