diff options
-rw-r--r-- | core/avatar/controller.php | 16 | ||||
-rw-r--r-- | lib/avatar.php | 41 | ||||
-rw-r--r-- | settings/personal.php | 1 | ||||
-rw-r--r-- | settings/templates/personal.php | 2 | ||||
-rw-r--r-- | settings/templates/users.php | 4 | ||||
-rw-r--r-- | settings/users.php | 1 | ||||
-rw-r--r-- | tests/lib/avatar.php | 12 |
7 files changed, 41 insertions, 36 deletions
diff --git a/core/avatar/controller.php b/core/avatar/controller.php index bc0eb6eff3b..c7624b90b65 100644 --- a/core/avatar/controller.php +++ b/core/avatar/controller.php @@ -23,8 +23,8 @@ class Controller { $size = 64; } - $avatar = new \OC_Avatar(); - $image = $avatar->get($user, $size); + $avatar = new \OC_Avatar($user); + $image = $avatar->get($size); \OC_Response::disableCaching(); \OC_Response::setLastModifiedHeader(time()); @@ -63,8 +63,8 @@ class Controller { } try { - $avatar = new \OC_Avatar(); - $avatar->set($user, $newAvatar); + $avatar = new \OC_Avatar($user); + $avatar->set($newAvatar); \OC_JSON::success(); } catch (\OC\NotSquareException $e) { $image = new \OC_Image($newAvatar); @@ -96,8 +96,8 @@ class Controller { $user = \OC_User::getUser(); try { - $avatar = new \OC_Avatar(); - $avatar->remove($user); + $avatar = new \OC_Avatar($user); + $avatar->remove(); \OC_JSON::success(); } catch (\Exception $e) { \OC_JSON::error(array("data" => array("message" => $e->getMessage()) )); @@ -145,8 +145,8 @@ class Controller { $image = new \OC_Image($tmpavatar); $image->crop($crop['x'], $crop['y'], $crop['w'], $crop['h']); try { - $avatar = new \OC_Avatar(); - $avatar->set($user, $image->data()); + $avatar = new \OC_Avatar($user); + $avatar->set($$image->data()); // Clean up \OC_Cache::remove('tmpavatar'); \OC_JSON::success(); diff --git a/lib/avatar.php b/lib/avatar.php index e58a596e13d..c07ef537d50 100644 --- a/lib/avatar.php +++ b/lib/avatar.php @@ -11,46 +11,51 @@ */ class OC_Avatar { + + private $view; + + /** + * @brief constructor + * @param $user string user to do avatar-management with + */ + public function __construct ($user) { + $this->view = new \OC\Files\View('/'.$user); + } + /** * @brief get the users avatar - * @param $user string which user to get the avatar for * @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 */ - public function get ($user, $size = 64) { - $view = new \OC\Files\View('/'.$user); - - if ($view->file_exists('avatar.jpg')) { + public function get ($size = 64) { + if ($thus->view->file_exists('avatar.jpg')) { $ext = 'jpg'; - } elseif ($view->file_exists('avatar.png')) { + } elseif ($this->view->file_exists('avatar.png')) { $ext = 'png'; } else { return false; } $avatar = new OC_Image(); - $avatar->loadFromData($view->file_get_contents('avatar.'.$ext)); + $avatar->loadFromData($this->view->file_get_contents('avatar.'.$ext)); $avatar->resize($size); return $avatar; } /** * @brief sets the users avatar - * @param $user string user to set the avatar for * @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 */ - public function set ($user, $data) { + public function set ($data) { if (\OC_App::isEnabled('files_encryption')) { $l = \OC_L10N::get('lib'); throw new \Exception($l->t("Custom profile pictures don't work with encryption yet")); } - $view = new \OC\Files\View('/'.$user); - $img = new OC_Image($data); $type = substr($img->mimeType(), -3); if ($type === 'peg') { $type = 'jpg'; } @@ -68,19 +73,17 @@ class OC_Avatar { throw new \OC\NotSquareException(); } - $view->unlink('avatar.jpg'); - $view->unlink('avatar.png'); - $view->file_put_contents('avatar.'.$type, $data); + $this->view->unlink('avatar.jpg'); + $this->view->unlink('avatar.png'); + $this->view->file_put_contents('avatar.'.$type, $data); } /** * @brief remove the users avatar - * @param $user string user to delete the avatar from * @return void */ - public function remove ($user) { - $view = new \OC\Files\View('/'.$user); - $view->unlink('avatar.jpg'); - $view->unlink('avatar.png'); + public function remove () { + $this->view->unlink('avatar.jpg'); + $this->view->unlink('avatar.png'); } } diff --git a/settings/personal.php b/settings/personal.php index 88e8802663d..670e18e20ef 100644 --- a/settings/personal.php +++ b/settings/personal.php @@ -89,6 +89,7 @@ $tmpl->assign('passwordChangeSupported', OC_User::canUserChangePassword(OC_User: $tmpl->assign('displayNameChangeSupported', OC_User::canUserChangeDisplayName(OC_User::getUser())); $tmpl->assign('displayName', OC_User::getDisplayName()); $tmpl->assign('enableDecryptAll' , $enableDecryptAll); +$tmpl->assign('enableAvatars', \OC_Config::getValue('enable_avatars', true)); $forms=OC_App::getForms('personal'); $tmpl->assign('forms', array()); diff --git a/settings/templates/personal.php b/settings/templates/personal.php index 9215115503a..d2ca8154f16 100644 --- a/settings/templates/personal.php +++ b/settings/templates/personal.php @@ -80,7 +80,7 @@ if($_['passwordChangeSupported']) { } ?> -<?php if (\OC_Config::getValue('enable_avatars', true) === true): ?> +<?php if ($_['enableAvatars']): ?> <form id="avatar" method="post" action="<?php p(\OC_Helper::linkToRoute('core_avatar_post')); ?>"> <fieldset class="personalblock"> <legend><strong><?php p($l->t('Profile picture')); ?></strong></legend> diff --git a/settings/templates/users.php b/settings/templates/users.php index 445e5ce2fd5..747d052a7bd 100644 --- a/settings/templates/users.php +++ b/settings/templates/users.php @@ -81,7 +81,7 @@ $_['subadmingroups'] = array_flip($items); <table class="hascontrols" data-groups="<?php p(json_encode($allGroups));?>"> <thead> <tr> - <?php if (\OC_Config::getValue('enable_avatars', true) === true): ?> + <?php if ($_['enableAvatars']): ?> <th id='headerAvatar'></th> <?php endif; ?> <th id='headerName'><?php p($l->t('Username'))?></th> @@ -99,7 +99,7 @@ $_['subadmingroups'] = array_flip($items); <?php foreach($_["users"] as $user): ?> <tr data-uid="<?php p($user["name"]) ?>" data-displayName="<?php p($user["displayName"]) ?>"> - <?php if (\OC_Config::getValue('enable_avatars', true) === true): ?> + <?php if ($_['enableAvatars']): ?> <td class="avatar"><div class="avatardiv"></div></td> <?php endif; ?> <td class="name"><?php p($user["name"]); ?></td> diff --git a/settings/users.php b/settings/users.php index 213d1eecfda..2f1c63a0b59 100644 --- a/settings/users.php +++ b/settings/users.php @@ -81,4 +81,5 @@ $tmpl->assign( 'quota_preset', $quotaPreset); $tmpl->assign( 'default_quota', $defaultQuota); $tmpl->assign( 'defaultQuotaIsUserDefined', $defaultQuotaIsUserDefined); $tmpl->assign( 'recoveryAdminEnabled', $recoveryAdminEnabled); +$tmpl->assign('enableAvatars', \OC_Config::getValue('enable_avatars', true)); $tmpl->printPage(); diff --git a/tests/lib/avatar.php b/tests/lib/avatar.php index 027e88d726d..1c5195f8eb1 100644 --- a/tests/lib/avatar.php +++ b/tests/lib/avatar.php @@ -11,16 +11,16 @@ class Test_Avatar extends PHPUnit_Framework_TestCase { public function testAvatar() { $this->markTestSkipped("Setting custom avatars with encryption doesn't work yet"); - $avatar = new \OC_Avatar(); + $avatar = new \OC_Avatar(\OC_User::getUser()); - $this->assertEquals(false, $avatar->get(\OC_User::getUser())); + $this->assertEquals(false, $avatar->get()); $expected = new OC_Image(\OC::$SERVERROOT.'/tests/data/testavatar.png'); - $avatar->set(\OC_User::getUser(), $expected->data()); + $avatar->set($expected->data()); $expected->resize(64); - $this->assertEquals($expected->data(), $avatar->get(\OC_User::getUser())->data()); + $this->assertEquals($expected->data(), $avatar->get()->data()); - $avatar->remove(\OC_User::getUser()); - $this->assertEquals(false, $avatar->get(\OC_User::getUser())); + $avatar->remove(); + $this->assertEquals(false, $avatar->get()); } } |