Passed
Push — develop ( d2ded6...15ac65 )
by Nikita
19:39
created

UsersServersPermsController::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 2
dl 0
loc 4
ccs 0
cts 3
cp 0
rs 10
c 1
b 0
f 0
cc 1
nc 1
nop 1
crap 2
1
<?php
2
3
namespace Gameap\Http\Controllers\Admin;
4
5
use Gameap\Helpers\ServerPermissionHelper;
6
use Gameap\Http\Controllers\AuthController;
7
use Gameap\Models\User;
8
use Gameap\Models\Server;
9
use Bouncer;
10
use Gameap\Repositories\UserRepository;
11
use Illuminate\Http\Request;
12
13
/**
14
 * Manage game servers permissions
15
 * @package Gameap\Http\Controllers\Admin
16
 */
17
class UsersServersPermsController extends AuthController
18
{
19
    /**
20
     * The UserRepository instance.
21
     *
22
     * @var \Gameap\Repositories\UserRepository
23
     */
24
    protected $repository;
25
26
    public function __construct(UserRepository $repository)
27
    {
28
        parent::__construct();
29
        $this->repository = $repository;
30
    }
31
32
    /**
33
     * @param User $user
34
     * @param Server $server
35
     * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
36
     */
37
    public function editPermissions(User $user, Server $server)
38
    {
39
        $permissions = $user
40
            ->getAbilities()
41
            ->where('entity_type', '=', Server::class)
42
            ->where('entity_id', '=', $server->id);
43
44
        $allPermissions = ServerPermissionHelper::getAllPermissions();
45
46
        $checkedPermissions = $permissions->pluck('name')->toArray();
47
48
        return view('admin.users.server_perms.edit', [
49
            'permissions' => $permissions,
50
            'allPermissions' => $allPermissions,
51
            'user' => $user,
52
            'server' => $server,
53
            'checkedPermissions' => $checkedPermissions,
54
        ]);
55
    }
56
57
    /**
58
     * @param Request $request
59
     * @param User $user
60
     * @param Server $server
61
     * @return \Illuminate\Http\RedirectResponse
62
     */
63
    public function updatePermissions(Request $request, User $user, Server $server)
64
    {
65
        $this->repository->updateServerPermission($user, $server, $request->input('permissions'));
66
        return redirect()->route('admin.users.edit', $user->id);
67
    }
68
}