From 4ca716ec47863f3eef6c851de7a4f37650f8ea6e Mon Sep 17 00:00:00 2001 From: Frederic Guillot <fred@kanboard.net> Date: Sat, 26 Mar 2016 17:25:54 -0400 Subject: Move avatar actions to controller AvatarFile --- app/Controller/AvatarFile.php | 39 +++++++++++++++++++++++++++++++++- app/Controller/User.php | 37 -------------------------------- app/Model/File.php | 1 - app/Template/avatar_file/show.php | 20 +++++++++++++++++ app/Template/user/avatar.php | 20 ----------------- app/Template/user/sidebar.php | 4 ++-- app/User/Avatar/AvatarFileProvider.php | 2 +- 7 files changed, 61 insertions(+), 62 deletions(-) create mode 100644 app/Template/avatar_file/show.php delete mode 100644 app/Template/user/avatar.php diff --git a/app/Controller/AvatarFile.php b/app/Controller/AvatarFile.php index f8298e16..a47cca66 100644 --- a/app/Controller/AvatarFile.php +++ b/app/Controller/AvatarFile.php @@ -14,9 +14,46 @@ use Kanboard\Core\Thumbnail; class AvatarFile extends Base { /** - * Show Avatar image and send aggressive caching headers + * Display avatar page */ public function show() + { + $user = $this->getUser(); + + $this->response->html($this->helper->layout->user('avatar_file/show', array( + 'user' => $user, + ))); + } + + /** + * Upload Avatar + */ + public function upload() + { + $user = $this->getUser(); + + if (! $this->avatarFile->uploadFile($user['id'], $this->request->getFileInfo('avatar'))) { + $this->flash->failure(t('Unable to upload the file.')); + } + + $this->response->redirect($this->helper->url->to('AvatarFile', 'show', array('user_id' => $user['id']))); + } + + /** + * Remove Avatar image + */ + public function remove() + { + $this->checkCSRFParam(); + $user = $this->getUser(); + $this->avatarFile->remove($user['id']); + $this->response->redirect($this->helper->url->to('AvatarFile', 'show', array('user_id' => $user['id']))); + } + + /** + * Show Avatar image (public) + */ + public function image() { $user_id = $this->request->getIntegerParam('user_id'); $size = $this->request->getStringParam('size', 48); diff --git a/app/Controller/User.php b/app/Controller/User.php index 8c02ef7f..f7d7d2e0 100644 --- a/app/Controller/User.php +++ b/app/Controller/User.php @@ -405,41 +405,4 @@ class User extends Base 'user' => $user, ))); } - - /** - * Display avatar page - */ - public function avatar() - { - $user = $this->getUser(); - - $this->response->html($this->helper->layout->user('user/avatar', array( - 'user' => $user, - ))); - } - - /** - * Upload Avatar - */ - public function uploadAvatar() - { - $user = $this->getUser(); - - if (! $this->avatarFile->uploadFile($user['id'], $this->request->getFileInfo('avatar'))) { - $this->flash->failure(t('Unable to upload the file.')); - } - - $this->response->redirect($this->helper->url->to('user', 'avatar', array('user_id' => $user['id']))); - } - - /** - * Remove Avatar image - */ - public function removeAvatar() - { - $this->checkCSRFParam(); - $user = $this->getUser(); - $this->avatarFile->remove($user['id']); - $this->response->redirect($this->helper->url->to('user', 'avatar', array('user_id' => $user['id']))); - } } diff --git a/app/Model/File.php b/app/Model/File.php index 5e77060c..e383235c 100644 --- a/app/Model/File.php +++ b/app/Model/File.php @@ -5,7 +5,6 @@ namespace Kanboard\Model; use Exception; use Kanboard\Core\Thumbnail; use Kanboard\Event\FileEvent; -use Kanboard\Core\Tool; use Kanboard\Core\ObjectStorage\ObjectStorageException; /** diff --git a/app/Template/avatar_file/show.php b/app/Template/avatar_file/show.php new file mode 100644 index 00000000..266a2ccb --- /dev/null +++ b/app/Template/avatar_file/show.php @@ -0,0 +1,20 @@ +<div class="page-header"> + <h2><?= t('Avatar') ?></h2> +</div> + +<?= $this->avatar->render($user['id'], $user['username'], $user['name'], $user['email'], $user['avatar_path'], '') ?> + +<form method="post" enctype="multipart/form-data" action="<?= $this->url->href('AvatarFile', 'upload', array('user_id' => $user['id'])) ?>"> + <?= $this->form->csrf() ?> + <?= $this->form->label(t('Upload my avatar image'), 'avatar') ?> + <?= $this->form->file('avatar') ?> + + <div class="form-actions"> + <?php if (! empty($user['avatar_path'])): ?> + <?= $this->url->link(t('Remove my image'), 'AvatarFile', 'remove', array('user_id' => $user['id']), true, 'btn btn-red') ?> + <?php endif ?> + <button type="submit" class="btn btn-blue"><?= t('Save') ?></button> + <?= t('or') ?> + <?= $this->url->link(t('cancel'), 'user', 'show', array('user_id' => $user['id'])) ?> + </div> +</form> diff --git a/app/Template/user/avatar.php b/app/Template/user/avatar.php deleted file mode 100644 index c285f44d..00000000 --- a/app/Template/user/avatar.php +++ /dev/null @@ -1,20 +0,0 @@ -<div class="page-header"> - <h2><?= t('Avatar') ?></h2> -</div> - -<?= $this->avatar->render($user['id'], $user['username'], $user['name'], $user['email'], $user['avatar_path'], '') ?> - -<form method="post" enctype="multipart/form-data" action="<?= $this->url->href('user', 'uploadAvatar', array('user_id' => $user['id'])) ?>"> - <?= $this->form->csrf() ?> - <?= $this->form->label(t('Upload my avatar image'), 'avatar') ?> - <?= $this->form->file('avatar') ?> - - <div class="form-actions"> - <?php if (! empty($user['avatar_path'])): ?> - <?= $this->url->link(t('Remove my image'), 'User', 'removeAvatar', array('user_id' => $user['id']), true, 'btn btn-red') ?> - <?php endif ?> - <button type="submit" class="btn btn-blue"><?= t('Save') ?></button> - <?= t('or') ?> - <?= $this->url->link(t('cancel'), 'user', 'show', array('user_id' => $user['id'])) ?> - </div> -</form> diff --git a/app/Template/user/sidebar.php b/app/Template/user/sidebar.php index ecadc60d..5ea2e355 100644 --- a/app/Template/user/sidebar.php +++ b/app/Template/user/sidebar.php @@ -37,8 +37,8 @@ <li <?= $this->app->checkMenuSelection('user', 'edit') ?>> <?= $this->url->link(t('Edit profile'), 'user', 'edit', array('user_id' => $user['id'])) ?> </li> - <li <?= $this->app->checkMenuSelection('user', 'avatar') ?>> - <?= $this->url->link(t('Avatar'), 'user', 'avatar', array('user_id' => $user['id'])) ?> + <li <?= $this->app->checkMenuSelection('AvatarFile') ?>> + <?= $this->url->link(t('Avatar'), 'AvatarFile', 'show', array('user_id' => $user['id'])) ?> </li> <?php endif ?> diff --git a/app/User/Avatar/AvatarFileProvider.php b/app/User/Avatar/AvatarFileProvider.php index 87a42c07..eea565f0 100644 --- a/app/User/Avatar/AvatarFileProvider.php +++ b/app/User/Avatar/AvatarFileProvider.php @@ -23,7 +23,7 @@ class AvatarFileProvider extends Base implements AvatarProviderInterface */ public function render(array $user, $size) { - $url = $this->helper->url->href('AvatarFile', 'show', array('user_id' => $user['id'], 'size' => $size)); + $url = $this->helper->url->href('AvatarFile', 'image', array('user_id' => $user['id'], 'size' => $size)); $title = $this->helper->text->e($user['name'] ?: $user['username']); return '<img src="' . $url . '" alt="' . $title . '" title="' . $title . '">'; } -- cgit v1.2.3