| <?php |
|
|
| namespace Kanboard\Model; |
|
|
| use Exception; |
| use Kanboard\Core\Base; |
|
|
| |
| |
| |
| |
| |
| |
| class AvatarFileModel extends Base |
| { |
| |
| |
| |
| |
| |
| const PATH_PREFIX = 'avatars'; |
|
|
| |
| |
| |
| |
| |
| |
| |
| public function getFilename($user_id) |
| { |
| return $this->db->table(UserModel::TABLE)->eq('id', $user_id)->findOneColumn('avatar_path'); |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
| |
| public function create($user_id, $path) |
| { |
| $result = $this->db->table(UserModel::TABLE)->eq('id', $user_id)->update(array( |
| 'avatar_path' => $path, |
| )); |
|
|
| $this->userSession->refresh($user_id); |
|
|
| return $result; |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
| public function remove($user_id) |
| { |
| try { |
| $filename = $this->getFilename($user_id); |
|
|
| if (! empty($filename)) { |
| $this->objectStorage->remove($filename); |
| return $this->db->table(UserModel::TABLE)->eq('id', $user_id)->update(array('avatar_path' => '')); |
| } |
| } catch (Exception $e) { |
| $this->logger->error($e->getMessage()); |
| return false; |
| } |
|
|
| return true; |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
| |
| public function uploadImageFile($user_id, array $file) |
| { |
| try { |
| if ($file['error'] == UPLOAD_ERR_OK && $file['size'] > 0) { |
| $destinationFilename = $this->generatePath($user_id, $file['name']); |
| $this->objectStorage->moveUploadedFile($file['tmp_name'], $destinationFilename); |
| $this->create($user_id, $destinationFilename); |
| } else { |
| throw new Exception('File not uploaded: '.var_export($file['error'], true)); |
| } |
|
|
| } catch (Exception $e) { |
| $this->logger->error($e->getMessage()); |
| return false; |
| } |
|
|
| return true; |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
| |
| public function uploadImageContent($user_id, &$blob) |
| { |
| try { |
| $destinationFilename = $this->generatePath($user_id, 'imageContent'); |
| $this->objectStorage->put($destinationFilename, $blob); |
| $this->create($user_id, $destinationFilename); |
| } catch (Exception $e) { |
| $this->logger->error($e->getMessage()); |
| return false; |
| } |
|
|
| return true; |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
| |
| public function generatePath($user_id, $filename) |
| { |
| return implode(DIRECTORY_SEPARATOR, array(self::PATH_PREFIX, $user_id, hash('sha1', $filename.time()))); |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
| public function isAvatarImage($filename) |
| { |
| switch (get_file_extension($filename)) { |
| case 'jpeg': |
| case 'jpg': |
| case 'png': |
| case 'gif': |
| return true; |
| } |
|
|
| return false; |
| } |
| } |
|
|