Episodes::listExtendQuery()   A
last analyzed

Complexity

Conditions 4
Paths 4

Size

Total Lines 17
Code Lines 9

Duplication

Lines 17
Ratio 100 %

Importance

Changes 2
Bugs 0 Features 0
Metric Value
c 2
b 0
f 0
dl 17
loc 17
rs 9.2
cc 4
eloc 9
nc 4
nop 2
1
<?php namespace CosmicRadioTV\Podcast\Controllers;
2
use Flash;
3
use BackendMenu;
4
use BackendAuth;
5
use Backend\Classes\Controller;
6
use CosmicRadioTV\Podcast\Models\Episode;
7
use CosmicRadioTV\Podcast\Models\Show;
8
/**
9
 * Episodes Back-end Controller
10
 */
11
class Episodes extends Controller
12
{
13
    public $implement = [
14
        'Backend.Behaviors.FormController',
15
        'Backend.Behaviors.ListController',
16
        'Backend.Behaviors.RelationController',
17
    ];
18
19
    public $formConfig = 'config_form.yaml';
20
    public $listConfig = 'config_list.yaml';
21
    public $relationConfig = 'config_relation.yaml';
22
23
    public $requiredPermissions = ['cosmicradiotv.podcast.access_episode*'];
24
25
    public function __construct()
26
    {
27
        parent::__construct();
28
29
        BackendMenu::setContext('CosmicRadioTV.Podcast', 'podcast', 'episodes');
30
    }
31
32
    public function index_onDelete()
33
    {
34
        if (($checkedIds = post('checked')) && is_array($checkedIds) && count($checkedIds)) {
35
36
            foreach ($checkedIds as $episodeId) {
37
                if (!$episode = Episode::find($episodeId))
38
                    continue;
39
40
                $episode->delete();
41
            }
42
43
            Flash::success(e(trans('cosmicradiotv.podcast::lang.episode.delete_success_multiple')));
44
        }
45
46
        return $this->listRefresh();
47
    }
48
49 View Code Duplication
    public function listExtendQuery($query, $definition = null) {
50
        $user = BackendAuth::getUser();
51
52
        if (!$user->hasAccess(['cosmicradiotv.podcast.access_episodes_all'])) {
53
            $shows = Show::all();
54
            $show_ids_allowed = [];
55
56
            foreach ($shows as $show) {
57
                if ($user->hasAccess(['cosmicradiotv.podcast.access_show_'.$show->slug])) {
58
                    $show_ids_allowed[] = $show->id;
59
                }
60
            }
61
62
            $query->whereIn('show_id',$show_ids_allowed);
63
        }
64
65
    }
66
}