Rename all models
This commit is contained in:
139
app/Model/AvatarFileModel.php
Normal file
139
app/Model/AvatarFileModel.php
Normal file
@@ -0,0 +1,139 @@
|
||||
<?php
|
||||
|
||||
namespace Kanboard\Model;
|
||||
|
||||
use Exception;
|
||||
use Kanboard\Core\Base;
|
||||
|
||||
/**
|
||||
* Avatar File
|
||||
*
|
||||
* @package Kanboard\Model
|
||||
* @author Frederic Guillot
|
||||
*/
|
||||
class AvatarFileModel extends Base
|
||||
{
|
||||
/**
|
||||
* Path prefix
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const PATH_PREFIX = 'avatars';
|
||||
|
||||
/**
|
||||
* Get image filename
|
||||
*
|
||||
* @access public
|
||||
* @param integer $user_id
|
||||
* @return string
|
||||
*/
|
||||
public function getFilename($user_id)
|
||||
{
|
||||
return $this->db->table(UserModel::TABLE)->eq('id', $user_id)->findOneColumn('avatar_path');
|
||||
}
|
||||
|
||||
/**
|
||||
* Add avatar in the user profile
|
||||
*
|
||||
* @access public
|
||||
* @param integer $user_id Foreign key
|
||||
* @param string $path Path on the disk
|
||||
* @return bool
|
||||
*/
|
||||
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;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove avatar from the user profile
|
||||
*
|
||||
* @access public
|
||||
* @param integer $user_id Foreign key
|
||||
* @return bool
|
||||
*/
|
||||
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;
|
||||
}
|
||||
|
||||
/**
|
||||
* Upload avatar image file
|
||||
*
|
||||
* @access public
|
||||
* @param integer $user_id
|
||||
* @param array $file
|
||||
* @return boolean
|
||||
*/
|
||||
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;
|
||||
}
|
||||
|
||||
/**
|
||||
* Upload avatar image content
|
||||
*
|
||||
* @access public
|
||||
* @param integer $user_id
|
||||
* @param string $blob
|
||||
* @return boolean
|
||||
*/
|
||||
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;
|
||||
}
|
||||
|
||||
/**
|
||||
* Generate the path for a new filename
|
||||
*
|
||||
* @access public
|
||||
* @param integer $user_id
|
||||
* @param string $filename
|
||||
* @return string
|
||||
*/
|
||||
public function generatePath($user_id, $filename)
|
||||
{
|
||||
return implode(DIRECTORY_SEPARATOR, array(self::PATH_PREFIX, $user_id, hash('sha1', $filename.time())));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user