Completed
Push — develop ( cc9a49...c1329f )
by Abdelrahman
09:49
created

UsersMediaController   A

Complexity

Total Complexity 6

Size/Duplication

Total Lines 45
Duplicated Lines 0 %

Coupling/Cohesion

Components 2
Dependencies 5

Importance

Changes 0
Metric Value
dl 0
loc 45
rs 10
c 0
b 0
f 0
wmc 6
lcom 2
cbo 5

2 Methods

Rating   Name   Duplication   Size   Complexity  
B authorizeResource() 0 16 5
A destroy() 0 9 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Cortex\Fort\Http\Controllers\Adminarea;
6
7
use Illuminate\Support\Str;
8
use Cortex\Fort\Models\User;
9
use Spatie\MediaLibrary\Models\Media;
10
use Cortex\Foundation\Http\Controllers\AuthorizedController;
11
12
class UsersMediaController extends AuthorizedController
13
{
14
    /**
15
     * {@inheritdoc}
16
     */
17
    protected $resource = 'user';
18
19
    /**
20
     * {@inheritdoc}
21
     */
22
    public function authorizeResource($model, $parameter = null, array $options = [], $request = null): void
23
    {
24
        $middleware = [];
25
        $parameter = $parameter ?: Str::snake(class_basename($model));
26
27
        foreach ($this->mapResourceAbilities() as $method => $ability) {
28
            $modelName = in_array($method, $this->resourceMethodsWithoutModels()) ? $model : $parameter;
29
30
            $middleware["can:update,{$modelName}"][] = $method;
31
            $middleware["can:{$ability},media"][] = $method;
32
        }
33
34
        foreach ($middleware as $middlewareName => $methods) {
35
            $this->middleware($middlewareName, $options)->only($methods);
36
        }
37
    }
38
39
    /**
40
     * Destroy given user media.
41
     *
42
     * @param \Cortex\Fort\Models\User          $user
43
     * @param \Spatie\MediaLibrary\Models\Media $media
44
     *
45
     * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\RedirectResponse
46
     */
47
    public function destroy(User $user, Media $media)
48
    {
49
        $user->media()->where($media->getKeyName(), $media->getKey())->first()->delete();
50
51
        return intend([
52
            'url' => route('adminarea.users.edit', ['user' => $user]),
53
            'with' => ['warning' => trans('cortex/foundation::messages.resource_deleted', ['resource' => 'media', 'id' => $media->getKey()])],
0 ignored issues
show
Coding Style introduced by
This line exceeds maximum limit of 120 characters; contains 142 characters

Overly long lines are hard to read on any screen. Most code styles therefor impose a maximum limit on the number of characters in a line.

Loading history...
54
        ]);
55
    }
56
}
57