Skip to content

Commit

Permalink
Merge pull request #471 from ladybirdweb/hot-fix-patch
Browse files Browse the repository at this point in the history
Hot fix patch
  • Loading branch information
mverma16 authored May 15, 2017
2 parents 187f25e + f9272f0 commit 96e2196
Show file tree
Hide file tree
Showing 17 changed files with 151 additions and 99 deletions.
3 changes: 3 additions & 0 deletions app/Exceptions/Handler.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
// use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
use Illuminate\Database\Eloquent\ModelNotFoundException;
use Illuminate\Foundation\Validation\ValidationException;
use Illuminate\Session\TokenMismatchException;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;

class Handler extends ExceptionHandler
Expand Down Expand Up @@ -171,6 +172,8 @@ public function common($request, $e)
// } else {
// return parent::render($request, $e);
// }
case $e instanceof TokenMismatchException:
return redirect()->back()->with('fails', \Lang::get('lang.session-expired'));
default:
return $this->render500($request, $e);
}
Expand Down
159 changes: 80 additions & 79 deletions app/FaveoStorage/Controllers/StorageController.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@
use Config;
use Storage;

class StorageController extends Controller
{
class StorageController extends Controller {

protected $default;
protected $driver;
protected $root;
Expand All @@ -25,8 +25,7 @@ class StorageController extends Controller
protected $rackspace_endpoint;
protected $rackspace_url_type;

public function __construct()
{
public function __construct() {
$this->default = $this->defaults();
$this->driver = $this->driver();
$this->root = $this->root();
Expand All @@ -41,8 +40,7 @@ public function __construct()
$this->rackspace_username = $this->rackspaceUsername();
}

protected function settings($option)
{
protected function settings($option) {
$settings = new CommonSettings();
$setting = $settings->getOptionValue('storage', $option);
$value = '';
Expand All @@ -53,8 +51,7 @@ protected function settings($option)
return $value;
}

public function defaults()
{
public function defaults() {
$default = 'local';
if ($this->settings('default')) {
$default = $this->settings('default');
Expand All @@ -63,13 +60,11 @@ public function defaults()
return $default;
}

public function driver()
{
public function driver() {
return $this->settings('default');
}

public function root()
{
public function root() {
$root = storage_path('app');
if ($this->settings('root')) {
$root = $this->settings('root');
Expand All @@ -78,58 +73,47 @@ public function root()
return $root;
}

public function s3Key()
{
public function s3Key() {
return $this->settings('s3_key');
}

public function s3Region()
{
public function s3Region() {
return $this->settings('s3_region');
}

public function s3Secret()
{
public function s3Secret() {
return $this->settings('s3_secret');
}

public function s3Bucket()
{
public function s3Bucket() {
return $this->settings('s3_bucket');
}

public function rackspaceKey()
{
public function rackspaceKey() {
return $this->settings('root');
}

public function rackspaceRegion()
{
public function rackspaceRegion() {
return $this->settings('rackspace_region');
}

public function rackspaceUsername()
{
public function rackspaceUsername() {
return $this->settings('rackspace_username');
}

public function rackspaceContainer()
{
public function rackspaceContainer() {
return $this->settings('rackspace_container');
}

public function rackspaceEndpoint()
{
public function rackspaceEndpoint() {
return $this->settings('rackspace_endpoint');
}

public function rackspaceUrlType()
{
public function rackspaceUrlType() {
return $this->settings('rackspace_url_type');
}

protected function setFileSystem()
{
protected function setFileSystem() {
$config = $this->config();
//dd($config);
foreach ($config as $key => $con) {
Expand All @@ -144,54 +128,55 @@ protected function setFileSystem()
return Config::get('filesystem');
}

protected function config()
{
protected function config() {
return [
'default' => $this->default,
'cloud' => 's3',
'disks' => $this->disks(),
'cloud' => 's3',
'disks' => $this->disks(),
];
}

protected function disks()
{
protected function disks() {
return [
'local' => [
'driver' => 'local',
'root' => $this->root.'/attachments',
'root' => $this->root . '/attachments',
],
's3' => [
'driver' => 's3',
'key' => $this->s3_key,
'key' => $this->s3_key,
'secret' => $this->s3_secret,
'region' => $this->s3_region,
'bucket' => $this->s3_bucket,
],
'rackspace' => [
'driver' => 'rackspace',
'username' => $this->rackspace_username,
'key' => $this->rackspace_key,
'driver' => 'rackspace',
'username' => $this->rackspace_username,
'key' => $this->rackspace_key,
'container' => $this->rackspace_container,
'endpoint' => $this->rackspace_endpoint,
'region' => $this->rackspace_region,
'url_type' => $this->rackspace_url_type,
'endpoint' => $this->rackspace_endpoint,
'region' => $this->rackspace_region,
'url_type' => $this->rackspace_url_type,
],
];
}

public function upload($data, $filename, $type, $size, $disposition, $thread_id)
{
public function upload($data, $filename, $type, $size, $disposition, $thread_id) {
$upload = new Ticket_attachments();
$upload->thread_id = $thread_id;
$upload->name = $filename;
$upload->type = $type;
$upload->size = $size;
$upload->poster = $disposition;
$upload->driver = $this->default;
$upload->path = $this->root;
$upload->path = $this->root. DIRECTORY_SEPARATOR.'attachments';
if ($this->default !== 'database') {
$this->setFileSystem();
Storage::disk($this->default)->put($filename, $data);
$storagePath = Storage::disk($this->default)->getDriver()->getAdapter()->getPathPrefix() . $filename;
if (mime(\File::mimeType($storagePath)) != 'image' || mime(\File::extension($storagePath)) != 'image') {
chmod($storagePath, 1204);
}
} else {
$upload->file = $data;
}
Expand All @@ -200,51 +185,67 @@ public function upload($data, $filename, $type, $size, $disposition, $thread_id)
}
}

public function saveAttachments($thread_id, $attachments = [])
{
if (is_array($attachments) && count($attachments) > 0) {
foreach ($attachments as $attachment) {
$structure = $attachment->getStructure();
$disposition = 'ATTACHMENT';
if (isset($structure->disposition)) {
$disposition = $structure->disposition;
public function saveAttachments($thread_id, $attachments = []) {
$disposition = 'ATTACHMENT';
$thread = '';
foreach ($attachments as $attachment) {
if (is_object($attachment)) {
if (method_exists($attachment, 'getStructure')) {

$structure = $attachment->getStructure();
if (isset($structure->disposition)) {
$disposition = $structure->disposition;
}
$filename = rand(1111, 9999) . "_" . $attachment->getFileName();
$type = $attachment->getMimeType();
$size = $attachment->getSize();
$data = $attachment->getData();
} else {
$filename = rand(1111, 9999) . "_" . $attachment->getClientOriginalName();
$type = $attachment->getMimeType();
$size = $attachment->getSize();
$data = file_get_contents($attachment->getRealPath());
}
$filename = str_random(16).'-'.$attachment->getFileName();
$type = $attachment->getMimeType();
$size = $attachment->getSize();
$data = $attachment->getData();
$this->upload($data, $filename, $type, $size, $disposition, $thread_id);
$this->updateBody($attachment, $thread_id, $filename);
$thread = $this->updateBody($attachment, $thread_id, $filename);
}
}
return $thread;
}

public function updateBody($attachment, $thread_id, $filename)
{
$structure = $attachment->getStructure();
public function updateBody($attachment, $thread_id, $filename) {
$threads = new Ticket_Thread();
$thread = $threads->find($thread_id);
$disposition = 'ATTACHMENT';
if (isset($structure->disposition)) {
$disposition = $structure->disposition;
if (is_object($attachment)) {
if (method_exists($attachment, 'getStructure')) {
$structure = $attachment->getStructure();
if (isset($structure->disposition)) {
$disposition = $structure->disposition;
}
}
}

if ($disposition == 'INLINE' || $disposition == 'inline') {
$id = str_replace('>', '', str_replace('<', '', $structure->id));
$threads = new Ticket_Thread();
$thread = $threads->find($thread_id);
$body = $thread->body;
$body = str_replace('cid:'.$id, $filename, $body);
// dd($id,$filename,$body);
$body = str_replace('cid:' . $id, $filename, $body);
// dd($body);
$thread->body = $body;
$thread->save();
}
return $thread;
}

public function getFile($drive, $name)
{
//dd($drive,$name);
if ($drive != 'database') {
$this->setFileSystem();
if (Storage::disk($this->default)->exists($name)) {
return Storage::disk($this->default)->get($name);
public function getFile($drive, $name, $root) {
if ($drive != "database") {
$root = $root . DIRECTORY_SEPARATOR . $name;
if (\File::exists($root)) {
chmod($root, 0755);
return \File::get($root);
}
}
}

}
4 changes: 3 additions & 1 deletion app/Http/Controllers/Agent/helpdesk/UserController.php
Original file line number Diff line number Diff line change
Expand Up @@ -764,10 +764,12 @@ public function postProfileedit(ProfileRequest $request)
if (Input::file('profile_pic')) {
// fetching picture name
$name = Input::file('profile_pic')->getClientOriginalName();
// dd($name);
// dd(str_replace(" ", "_", $name));
// fetching upload destination path
$destinationPath = 'uploads/profilepic';
// adding a random value to profile picture filename
$fileName = rand(0000, 9999).'.'.$name;
$fileName = rand(0000, 9999).'.'.str_replace(" ", "_", $name);
// moving the picture to a destination folder
Input::file('profile_pic')->move($destinationPath, $fileName);
// saving filename to database
Expand Down
23 changes: 13 additions & 10 deletions app/Http/Controllers/Client/helpdesk/FormController.php
Original file line number Diff line number Diff line change
Expand Up @@ -229,23 +229,26 @@ public function postedForm(User $user, ClientRequest $request, Ticket $ticket_se
$ticketId = Tickets::where('ticket_number', '=', $result[0])->first();
$thread = Ticket_Thread::where('ticket_id', '=', $ticketId->id)->first();
if ($attachments != null) {
foreach ($attachments as $attachment) {
if ($attachment != null) {
$name = $attachment->getClientOriginalName();
$type = $attachment->getClientOriginalExtension();
$size = $attachment->getSize();
$data = file_get_contents($attachment->getRealPath());
$attachPath = $attachment->getRealPath();
$ta->create(['thread_id' => $thread->id, 'name' => $name, 'size' => $size, 'type' => $type, 'file' => $data, 'poster' => 'ATTACHMENT']);
}
}
$storage = new \App\FaveoStorage\Controllers\StorageController();
$storage->saveAttachments($thread->id, $attachments);
// foreach ($attachments as $attachment) {
// if ($attachment != null) {
// $name = $attachment->getClientOriginalName();
// $type = $attachment->getClientOriginalExtension();
// $size = $attachment->getSize();
// $data = file_get_contents($attachment->getRealPath());
// $attachPath = $attachment->getRealPath();
// $ta->create(['thread_id' => $thread->id, 'name' => $name, 'size' => $size, 'type' => $type, 'file' => $data, 'poster' => 'ATTACHMENT']);
// }
// }
}
// dd($result);
return Redirect::back()->with('success', Lang::get('lang.Ticket-has-been-created-successfully-your-ticket-number-is').' '.$result[0].'. '.Lang::get('lang.Please-save-this-for-future-reference'));
} else {
return Redirect::back()->withInput($request->except('password'))->with('fails', Lang::get('lang.failed-to-create-user-tcket-as-mobile-has-been-taken'));
}
} catch (\Exception $ex) {
dd($ex);
return redirect()->back()->with('fails', $ex->getMessage());
}
// dd($result);
Expand Down
2 changes: 1 addition & 1 deletion app/Http/Controllers/Client/helpdesk/GuestController.php
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ public function postProfile(ProfileRequest $request)
// fetching upload destination path
$destinationPath = 'uploads/profilepic';
// adding a random value to profile picture filename
$fileName = rand(0000, 9999).'.'.$name;
$fileName = rand(0000, 9999).'.'.str_replace(" ", "_", $name);
// moving the picture to a destination folder
Input::file('profile_pic')->move($destinationPath, $fileName);
// saving filename to database
Expand Down
12 changes: 12 additions & 0 deletions app/Http/Middleware/VerifyCsrfToken.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,21 @@

use Closure;
use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as BaseVerifier;
use Lang;

class VerifyCsrfToken extends BaseVerifier
{

/**
* The URIs that should be excluded from CSRF verification.
*
* @var array
*/
protected $except = [
'CheckSerial',
'api/v1/*'
];

/**
* Handle an incoming request.
*
Expand Down
Loading

0 comments on commit 96e2196

Please sign in to comment.