allowed mimetypes from database
This commit is contained in:
parent
2f930457d1
commit
415016a4c2
9 changed files with 128 additions and 202 deletions
|
@ -431,8 +431,8 @@ class IndexController extends Controller
|
|||
$user = Auth::user();
|
||||
$dataset->user()->associate($user)->save();
|
||||
|
||||
// $error = 'Always throw this error';
|
||||
// throw new \Exception($error);
|
||||
$error = 'Always throw this error';
|
||||
throw new \Exception($error);
|
||||
|
||||
// all good//commit everything
|
||||
DB::commit();
|
||||
|
|
|
@ -1,21 +1,15 @@
|
|||
<?php
|
||||
namespace App\Http\Controllers\Settings;
|
||||
|
||||
use App\Exceptions\GeneralException;
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\View\View;
|
||||
use Illuminate\Support\Facades\Config;
|
||||
use App\Models\MimeType;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Config;
|
||||
use Illuminate\View\View;
|
||||
|
||||
class MimetypeController extends Controller
|
||||
{
|
||||
// public function download($id)
|
||||
// {
|
||||
// //$report = $this->report->find($id);
|
||||
// $file = File::findOrFail($id);
|
||||
// $file_path = public_path('storage/' . $file->path_name);
|
||||
// return response()->download($file_path, $file->label, ['Content-Type:' . $file->mime_type]);
|
||||
// }
|
||||
public function __construct()
|
||||
{
|
||||
$this->middleware('auth');
|
||||
|
@ -23,15 +17,15 @@ class MimetypeController extends Controller
|
|||
|
||||
public function index(): View
|
||||
{
|
||||
//$direction = 'asc'; // or desc
|
||||
$mimetypes = Config::get('enums.mime_types');
|
||||
//$checkeds = $document->licenses->pluck('id')->toArray();
|
||||
$checkeds = Config::get('enums.mimetypes_allowed');
|
||||
// $mimetypes = Config::get('enums.mime_types');
|
||||
// $checkeds = Config::get('enums.mimetypes_allowed');
|
||||
$direction = 'asc'; // or desc
|
||||
$mimetypes = MimeType::orderBy('name', $direction)->get();
|
||||
|
||||
return view('settings.filetype.index', [
|
||||
'options' => $mimetypes,
|
||||
'checkeds' => $checkeds
|
||||
]);
|
||||
'mimetypes' => $mimetypes,
|
||||
// 'checkeds' => $checkeds
|
||||
]);
|
||||
}
|
||||
|
||||
public function update(Request $request)
|
||||
|
@ -40,11 +34,37 @@ class MimetypeController extends Controller
|
|||
Config::set('enums.mimetypes_allowed', $mimetypes);
|
||||
return redirect()->back()->with('success', 'Mimetypes are updated');
|
||||
|
||||
|
||||
|
||||
// session()->flash('flash_message', 'allowed mimtypes have been updated!');
|
||||
// return redirect()->route('settings.document');
|
||||
|
||||
|
||||
// throw new GeneralException(trans('exceptions.backend.dataset.update_error'));
|
||||
}
|
||||
|
||||
/**
|
||||
* deactivate mimetype
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function down($id): RedirectResponse
|
||||
{
|
||||
$mimetype = MimeType::findOrFail($id);
|
||||
$mimetype->update(['enabled' => 0]);
|
||||
session()->flash('flash_message', 'mimetype has been deactivated!');
|
||||
return redirect()->route('settings.mimetype.index');
|
||||
}
|
||||
|
||||
/**
|
||||
* activate mimetype.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function up($id): RedirectResponse
|
||||
{
|
||||
$mimetype = MimeType::findOrFail($id);
|
||||
$mimetype->update(['enabled' => 1]);
|
||||
session()->flash('flash_message', 'mimetype has been activated!');
|
||||
return redirect()->route('settings.mimetype.index');
|
||||
}
|
||||
}
|
||||
|
|
16
app/Models/MimeType.php
Normal file
16
app/Models/MimeType.php
Normal file
|
@ -0,0 +1,16 @@
|
|||
<?php
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class MimeType extends Model
|
||||
{
|
||||
|
||||
protected $table = 'mime_types';
|
||||
|
||||
// for using $input = $request->all();
|
||||
//$project = Project::create($input);
|
||||
protected $fillable = [
|
||||
'name', 'file_extension', 'enabled',
|
||||
];
|
||||
}
|
|
@ -3,7 +3,8 @@
|
|||
namespace App\Rules;
|
||||
|
||||
use Illuminate\Contracts\Validation\Rule;
|
||||
use Illuminate\Support\Facades\Config;
|
||||
//use Illuminate\Support\Facades\Config;
|
||||
use App\Models\MimeType;
|
||||
|
||||
class RdrFiletypes implements Rule
|
||||
{
|
||||
|
@ -16,7 +17,10 @@ class RdrFiletypes implements Rule
|
|||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$this->mimetypes = Config::get('enums.mimetypes_allowed', ['application/pdf']);
|
||||
//$this->mimetypes = Config::get('enums.mimetypes_allowed', ['application/pdf']);
|
||||
$this->mimetypes = MimeType::where('enabled', 1)
|
||||
->pluck('name')
|
||||
->toArray();
|
||||
// $this->maxFileSize = Config::get('enums.max_filesize');
|
||||
}
|
||||
|
||||
|
@ -30,9 +34,9 @@ class RdrFiletypes implements Rule
|
|||
public function passes($attribute, $value)
|
||||
{
|
||||
//return Rule::in($this->filetypes);
|
||||
$test = $value->getMimeType();//"application/pdf"
|
||||
$mimeType = $value->getMimeType();//"application/pdf"
|
||||
return $value->getPath() != '' &&
|
||||
in_array($value->getMimeType(), $this->mimetypes);
|
||||
in_array($mimeType, $this->mimetypes);
|
||||
// in_array($value->guessExtension(), $this->filetypes); //file extension
|
||||
|
||||
|
||||
|
@ -49,23 +53,4 @@ class RdrFiletypes implements Rule
|
|||
{
|
||||
return 'attribute :attribute has not a valid mime type.';
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the size of an attribute.
|
||||
*
|
||||
* @param string $attribute
|
||||
* @param mixed $value
|
||||
* @return mixed
|
||||
*/
|
||||
private function getSize($attribute, $value)
|
||||
{
|
||||
if (is_numeric($value) && $hasNumeric) {
|
||||
return array_get($this->data, $attribute);
|
||||
} elseif (is_array($value)) {
|
||||
return count($value);
|
||||
} elseif ($value instanceof File) {
|
||||
return $value->getSize() / 1024;
|
||||
}
|
||||
return mb_strlen($value);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
editor.link_modal.header
Reference in a new issue