summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkondou <kondou@ts.unde.re>2013-08-19 12:38:39 +0200
committerkondou <kondou@ts.unde.re>2013-08-25 21:06:02 +0200
commit5eb17aadb30546c48127dfdc13cd25b721e6fe66 (patch)
treeb92626ce630f06498f3e4c84ccb07c096d38443e
parent81cadd5ea37f1db30cdd085dc58a27ef8a9ee5c2 (diff)
downloadnextcloud-server-5eb17aadb30546c48127dfdc13cd25b721e6fe66.tar.gz
nextcloud-server-5eb17aadb30546c48127dfdc13cd25b721e6fe66.zip
Fix spacing, have remove() and return JSON for custom-default-avatars
-rw-r--r--avatar.php13
-rw-r--r--lib/avatar.php94
-rw-r--r--tests/lib/avatar.php14
3 files changed, 49 insertions, 72 deletions
diff --git a/avatar.php b/avatar.php
index 70444dafcb5..a54aad3b2a6 100644
--- a/avatar.php
+++ b/avatar.php
@@ -12,7 +12,7 @@ if ($_SERVER['REQUEST_METHOD'] === "GET") {
//SECURITY TODO does this fully eliminate directory traversals?
$user = stripslashes($_GET['user']);
} else {
- $user = false;
+ exit();
}
if (isset($_GET['size']) && ((int)$_GET['size'] > 0)) {
@@ -28,17 +28,16 @@ if ($_SERVER['REQUEST_METHOD'] === "GET") {
if ($image instanceof \OC_Image) {
$image->show();
- } else {
- $image = \OC_Avatar::getDefaultAvatar($user, $size);
- $image->show();
+ } elseif ($image === false) {
+ OC_JSON::success(array('user' => $user, 'size' => $size));
}
} elseif ($_SERVER['REQUEST_METHOD'] === "POST") {
$user = OC_User::getUser();
// Select an image from own files
if (isset($_POST['path'])) {
- //SECURITY TODO FIXME possible directory traversal here
- $path = $_POST['path'];
+ //SECURITY TODO does this fully eliminate directory traversals?
+ $path = stripslashes($_POST['path']);
$avatar = OC::$SERVERROOT.'/data/'.$user.'/files'.$path;
}
// Upload a new image
@@ -62,7 +61,7 @@ if ($_SERVER['REQUEST_METHOD'] === "GET") {
$user = OC_User::getUser();
try {
- \OC_Avatar::set($user, false);
+ \OC_Avatar::remove($user);
OC_JSON::success();
} catch (\Exception $e) {
OC_JSON::error(array("data" => array ("message" => $e->getMessage()) ));
diff --git a/lib/avatar.php b/lib/avatar.php
index fa8fece080c..86be0ea2635 100644
--- a/lib/avatar.php
+++ b/lib/avatar.php
@@ -12,35 +12,31 @@
class OC_Avatar {
/**
- * @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 \OC_Image containing the avatar
- */
- public static function get ($user, $size = 64) {
- if ($user === false) {
- return self::getDefaultAvatar($user, $size);
- }
-
- $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 mixed \OC_Image containing the avatar or false if there's no image
+ */
+ public static function get ($user, $size = 64) {
+ $view = new \OC\Files\View('/'.$user);
- if ($view->file_exists('avatar.jpg')) {
- $ext = 'jpg';
- } elseif ($view->file_exists('avatar.png')) {
- $ext = 'png';
- } else {
- return self::getDefaultAvatar($user, $size);
+ if ($view->file_exists('avatar.jpg')) {
+ $ext = 'jpg';
+ } elseif ($view->file_exists('avatar.png')) {
+ $ext = 'png';
+ } else {
+ return false;
}
- $avatar = new OC_Image($view->file_get_contents('avatar.'.$ext));
- $avatar->resize($size);
- return $avatar;
- }
+ $avatar = new OC_Image($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, or false to delete the current 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, or not a square
* @return true on success
@@ -48,43 +44,33 @@ class OC_Avatar {
public static function set ($user, $data) {
$view = new \OC\Files\View('/'.$user);
- if ($data === false) {
- $view->unlink('avatar.jpg');
- $view->unlink('avatar.png');
- return true;
- } else {
- $img = new OC_Image($data);
- $type = substr($img->mimeType(), -3);
- if ($type === 'peg') { $type = 'jpg'; }
- if ($type !== 'jpg' && $type !== 'png') {
- $l = \OC_L10N::get('lib');
- throw new \Exception($l->t("Unknown filetype"));
- }
-
- if (!( $img->valid() && ($img->height() === $img->width()) )) {
- $l = \OC_L10N::get('lib');
- throw new \Exception($l->t("Invalid image, or the provided image is not square"));
- }
+ $img = new OC_Image($data);
+ $type = substr($img->mimeType(), -3);
+ if ($type === 'peg') { $type = 'jpg'; }
+ if ($type !== 'jpg' && $type !== 'png') {
+ $l = \OC_L10N::get('lib');
+ throw new \Exception($l->t("Unknown filetype"));
+ }
- $view->unlink('avatar.jpg');
- $view->unlink('avatar.png');
- $view->file_put_contents('avatar.'.$type, $data);
- return true;
+ if (!( $img->valid() && ($img->height() === $img->width()) )) {
+ $l = \OC_L10N::get('lib');
+ throw new \Exception($l->t("Invalid image, or the provided image is not square"));
}
+
+ $view->unlink('avatar.jpg');
+ $view->unlink('avatar.png');
+ $view->file_put_contents('avatar.'.$type, $data);
+ return true;
}
/**
- * @brief gets the default avatar
- * @brief $user string which user to get the avatar for
- * @param $size integer size of the avatar in px, defaults to 64
- * @return \OC_Image containing the default avatar
- * @todo use custom default images, when they arive
+ * @brief remove the users avatar
+ * @param $user string user to delete the avatar from
+ * @return void
*/
- public static function getDefaultAvatar ($user, $size = 64) {
- // TODO
- /*$default = new OC_Image(OC::$SERVERROOT."/core/img/defaultavatar.png");
- $default->resize($size);
- return $default;*/
- return;
+ public static function remove ($user) {
+ $view = new \OC\Files\View('/'.$user);
+ $view->unlink('avatar.jpg');
+ $view->unlink('avatar.png');
}
}
diff --git a/tests/lib/avatar.php b/tests/lib/avatar.php
index 42b06f8bccb..adb6a5102b1 100644
--- a/tests/lib/avatar.php
+++ b/tests/lib/avatar.php
@@ -9,22 +9,14 @@
class Test_Avatar extends PHPUnit_Framework_TestCase {
public function testAvatar() {
- $expected = \OC_Avatar::getDefaultAvatar()->data();
- $this->assertEquals($expected, \OC_Avatar::get(\OC_User::getUser())->data());
+ $this->assertEquals(false, \OC_Avatar::get(\OC_User::getUser())->data());
$expected = new OC_Image(\OC::$SERVERROOT.'/tests/data/testavatar.png');
\OC_Avatar::set(\OC_User::getUser(), $expected->data());
$expected->resize(64);
$this->assertEquals($expected->data(), \OC_Avatar::get(\OC_User::getUser())->data());
- \OC_Avatar::set(\OC_User::getUser(), false);
- $expected = \OC_Avatar::getDefaultAvatar()->data();
- $this->assertEquals($expected, \OC_Avatar::get(\OC_User::getUser())->data());
+ \OC_Avatar::remove(\OC_User::getUser());
+ $this->assertEquals(false, \OC_Avatar::get(\OC_User::getUser())->data());
}
-
- /*public function testDefaultAvatar() {
- $img = new \OC_Image(OC::$SERVERROOT.'/core/img/defaultavatar.png');
- $img->resize(128);
- $this->assertEquals($img->data(), \OC_Avatar::getDefaultAvatar(\OC_User::getUser(), 128)->data());
- }*/
}