1
|
|
|
<?php |
2
|
|
|
|
3
|
|
|
declare(strict_types=1); |
4
|
|
|
|
5
|
|
|
namespace Cortex\Tenants\Http\Controllers\Adminarea; |
6
|
|
|
|
7
|
|
|
use Cortex\Tenants\Models\Tenant; |
8
|
|
|
use Spatie\MediaLibrary\Models\Media; |
9
|
|
|
use Cortex\Foundation\DataTables\MediaDataTable; |
10
|
|
|
use Cortex\Foundation\Http\Requests\ImageFormRequest; |
11
|
|
|
use Cortex\Foundation\Http\Controllers\AuthorizedController; |
12
|
|
|
|
13
|
|
|
class TenantsMediaController extends AuthorizedController |
14
|
|
|
{ |
15
|
|
|
/** |
16
|
|
|
* {@inheritdoc} |
17
|
|
|
*/ |
18
|
|
|
protected $resource = Tenant::class; |
19
|
|
|
|
20
|
|
|
/** |
21
|
|
|
* {@inheritdoc} |
22
|
|
|
*/ |
23
|
|
|
public function authorizeResource($model, $parameter = null, array $options = [], $request = null): void |
24
|
|
|
{ |
25
|
|
|
$middleware = []; |
26
|
|
|
$parameter = $parameter ?: snake_case(class_basename($model)); |
|
|
|
|
27
|
|
|
|
28
|
|
|
foreach ($this->mapResourceAbilities() as $method => $ability) { |
29
|
|
|
$modelName = in_array($method, $this->resourceMethodsWithoutModels()) ? $model : $parameter; |
30
|
|
|
|
31
|
|
|
$middleware["can:update,{$modelName}"][] = $method; |
32
|
|
|
$middleware["can:{$ability},media"][] = $method; |
33
|
|
|
} |
34
|
|
|
|
35
|
|
|
foreach ($middleware as $middlewareName => $methods) { |
36
|
|
|
$this->middleware($middlewareName, $options)->only($methods); |
37
|
|
|
} |
38
|
|
|
} |
39
|
|
|
|
40
|
|
|
/** |
41
|
|
|
* List tenant media. |
42
|
|
|
* |
43
|
|
|
* @param \Cortex\Tenants\Models\Tenant $tenant |
44
|
|
|
* @param \Cortex\Foundation\DataTables\MediaDataTable $mediaDataTable |
45
|
|
|
* |
46
|
|
|
* @return \Illuminate\Http\JsonResponse|\Illuminate\Http\RedirectResponse |
|
|
|
|
47
|
|
|
*/ |
48
|
|
|
public function index(Tenant $tenant, MediaDataTable $mediaDataTable) |
49
|
|
|
{ |
50
|
|
|
return $mediaDataTable->with([ |
51
|
|
|
'resource' => $tenant, |
52
|
|
|
'tabs' => 'adminarea.tenants.tabs', |
53
|
|
|
'id' => "adminarea-tenants-{$tenant->getRouteKey()}-media-table", |
54
|
|
|
'url' => route('adminarea.tenants.media.store', ['tenant' => $tenant]), |
55
|
|
|
])->render('cortex/foundation::adminarea.pages.datatable-dropzone'); |
56
|
|
|
} |
57
|
|
|
|
58
|
|
|
/** |
59
|
|
|
* Store new tenant media. |
60
|
|
|
* |
61
|
|
|
* @param \Cortex\Foundation\Http\Requests\ImageFormRequest $request |
62
|
|
|
* @param \Cortex\Tenants\Models\Tenant $tenant |
63
|
|
|
* |
64
|
|
|
* @return void |
65
|
|
|
*/ |
66
|
|
|
public function store(ImageFormRequest $request, Tenant $tenant): void |
|
|
|
|
67
|
|
|
{ |
68
|
|
|
$tenant->addMediaFromRequest('file') |
69
|
|
|
->sanitizingFileName(function ($fileName) { |
70
|
|
|
return md5($fileName).'.'.pathinfo($fileName, PATHINFO_EXTENSION); |
71
|
|
|
}) |
72
|
|
|
->toMediaCollection('default', config('cortex.tenants.media.disk')); |
73
|
|
|
} |
74
|
|
|
|
75
|
|
|
/** |
76
|
|
|
* Destroy given tenant media. |
77
|
|
|
* |
78
|
|
|
* @param \Cortex\Tenants\Models\Tenant $tenant |
79
|
|
|
* @param \Spatie\MediaLibrary\Models\Media $media |
80
|
|
|
* |
81
|
|
|
* @return \Illuminate\Http\JsonResponse|\Illuminate\Http\RedirectResponse |
82
|
|
|
*/ |
83
|
|
|
public function destroy(Tenant $tenant, Media $media) |
84
|
|
|
{ |
85
|
|
|
$tenant->media()->where($media->getKeyName(), $media->getKey())->first()->delete(); |
86
|
|
|
|
87
|
|
|
return intend([ |
88
|
|
|
'url' => route('adminarea.tenants.media.index', ['tenant' => $tenant]), |
89
|
|
|
'with' => ['warning' => trans('cortex/foundation::messages.resource_deleted', ['resource' => trans('cortex/foundation::common.media'), 'identifier' => $media->getRouteKey()])], |
90
|
|
|
]); |
91
|
|
|
} |
92
|
|
|
} |
93
|
|
|
|
This function has been deprecated. The supplier of the file has supplied an explanatory message.
The explanatory message should give you some clue as to whether and when the function will be removed from the class and what other function to use instead.