From 507325dd501c89972d5c820bcfefb3aab8b81e34 Mon Sep 17 00:00:00 2001 From: kondou Date: Fri, 20 Sep 2013 11:46:11 +0200 Subject: [PATCH] Add public API for \OC\Avatar --- lib/avatarmanager.php | 55 +++++++++++++++++++++++++++++++++ lib/private/avatar.php | 2 +- lib/private/server.php | 23 +++++++++++++- lib/public/iavatarmanager.php | 38 +++++++++++++++++++++++ lib/public/iservercontainer.php | 6 ++++ 5 files changed, 122 insertions(+), 2 deletions(-) create mode 100644 lib/avatarmanager.php create mode 100644 lib/public/iavatarmanager.php diff --git a/lib/avatarmanager.php b/lib/avatarmanager.php new file mode 100644 index 0000000000..51481e412d --- /dev/null +++ b/lib/avatarmanager.php @@ -0,0 +1,55 @@ +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 720740569d..e9b02a7d34 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 65899f3007..65542d19ab 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 + }); } /** @@ -160,6 +163,15 @@ class Server extends SimpleContainer implements IServerContainer { return $this->query('PreviewManager'); } + /** + * 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 * @@ -170,6 +182,15 @@ class Server extends SimpleContainer implements IServerContainer { return $this->query('TagManager'); } + /** + * 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 * diff --git a/lib/public/iavatarmanager.php b/lib/public/iavatarmanager.php new file mode 100644 index 0000000000..818dbb124a --- /dev/null +++ b/lib/public/iavatarmanager.php @@ -0,0 +1,38 @@ +