Issues (56)

app/helpers.php (1 issue)

1
<?php
2
3
4
use App\User;
5
use Spatie\Permission\Models\Permission;
6
use Spatie\Permission\Models\Role;
7
8
//funció creada per veure si el rol ja te assignat un permís, si el te no fem res, sino li assignem.
9
// si no es fa així provoca error:
10
//Illuminate\Database\QueryException with message 'SQLSTATE[23000]: Integrity constraint violation: 19 UNIQUE constraint failed: role_has_permissions.permission_id, role_has_permissions.role_id (SQL: insert into "role_has_permissions" ("permission_id", "role_id") values (1, 1))'
11
if (!function_exists('assignPermission')) {
12
13
    /**
14
     * @param $role
15
     * @param $permission
16
     */
17
    function assignPermission($role, $permission)
18
    {
19
        if (!$role->hasPermissionTo($permission)) {
20
            $role->givePermissionTo($permission);
21
        }
22
    }
23
}
24
25
if (!function_exists('initialize_task_permissions')) {
26
    function initialize_task_permissions()
27
    {
28
29
        //Crea només si no existeix
30
        Permission::firstOrCreate(['name'=>'list-tasks']);
31
        Permission::firstOrCreate(['name'=>'show-tasks']);
32
        Permission::firstOrCreate(['name'=>'store-tasks']);
33
        Permission::firstOrCreate(['name'=>'update-tasks']);
34
        Permission::firstOrCreate(['name'=>'destroy-tasks']);
35
36
        $role = Role::firstOrCreate(['name'=>'task-manager']);
37
38
        assignPermission($role, 'list-tasks');
39
        assignPermission($role, 'show-tasks');
40
        assignPermission($role, 'store-tasks');
41
        assignPermission($role, 'update-tasks');
42
        assignPermission($role, 'destroy-tasks');
43
44
        Permission::firstOrCreate(['name' => 'list-users']);
45
        Permission::firstOrCreate(['name' => 'show-users']);
46
        Permission::firstOrCreate(['name' => 'store-users']);
47
        Permission::firstOrCreate(['name' => 'update-users']);
48
        Permission::firstOrCreate(['name' => 'destroy-users']);
49
50
        $role = Role::firstOrCreate(['name' => 'users-manager']);
51
52
        assignPermission($role, 'list-users');
53
        assignPermission($role, 'show-users');
54
        assignPermission($role, 'store-users');
55
        assignPermission($role, 'update-users');
56
        assignPermission($role, 'destroy-users');
57
    }
58
}
59
60
if (!function_exists('create_user')) {
61
    function create_user()
62
    {
63
        factory(User::class)->create([
64
            'name'     => env('TASKS_USER_NAME', 'Quim González Colat'),
65
            'email'    => env('TASKS_USER_EMAIL', '[email protected]'),
66
            'password' => bcrypt(env('TASKS_USER_PASSWORD')),
0 ignored issues
show
It seems like env('TASKS_USER_PASSWORD') can also be of type array; however, parameter $value of bcrypt() does only seem to accept string, maybe add an additional type check? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-type  annotation

66
            'password' => bcrypt(/** @scrutinizer ignore-type */ env('TASKS_USER_PASSWORD')),
Loading history...
67
        ]);
68
69
        factory(User::class)->create([
70
            'name'     => env('TASKS_USER_NAME_PROF', 'Sergi Tur Badenas'),
71
            'email'    => env('TASKS_USER_EMAIL_PROF', '[email protected]'),
72
            'password' => bcrypt(env('TASKS_USER_PASSWORD_PROF')),
73
        ]);
74
    }
75
}
76
77
if (!function_exists('first_user_as_task_manager')) {
78
    function first_user_as_task_manager()
79
    {
80
        User::all()->first()->assignRole('task-manager');
81
        User::all()->first()->assignRole('users-manager');
82
83
        User::findOrFail(2)->assignRole('task-manager');
84
        User::findOrFail(2)->assignRole('users-manager');
85
    }
86
}
87