forked from ProcessMaker/processmaker
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathGroupSeeder.php
More file actions
101 lines (91 loc) · 2.9 KB
/
GroupSeeder.php
File metadata and controls
101 lines (91 loc) · 2.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\Hash;
use ProcessMaker\Models\Group;
use ProcessMaker\Models\Permission;
class GroupSeeder extends Seeder
{
public $defaults = [];
public function setDefaults()
{
$this->defaults[] = [
'name' => __('Requesters'),
'description' => __('Users can view and start new requests.'),
'permissions' => [
'view-all_requests',
'view-users',
'view-groups',
'view-comments',
'create-comments',
'edit-comments',
],
];
$this->defaults[] = [
'name' => __('Process Designers'),
'description' => __('Users can design processes.'),
'permissions' => [
'view-all_requests',
'view-processes',
'create-processes',
'edit-processes',
'archive-processes',
'view-process-categories',
'create-process-categories',
'edit-process-categories',
'delete-process-categories',
'view-screens',
'create-screens',
'edit-screens',
'delete-screens',
'view-scripts',
'create-scripts',
'edit-scripts',
'delete-scripts',
'view-environment_variables',
'view-users',
'view-groups',
],
];
$this->defaults[] = [
'name' => __('Administrators'),
'description' => __('Users can administrate users, groups, and auth clients.'),
'permissions' => [
'view-users',
'create-users',
'edit-users',
'delete-users',
'view-groups',
'create-groups',
'edit-groups',
'delete-groups',
'view-auth_clients',
'create-auth_clients',
'edit-auth_clients',
'delete-auth_clients',
'delete-comments',
],
];
}
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
$this->setDefaults();
foreach ($this->defaults as $defaultGroup) {
// Create the group
$createdGroup = Group::factory()->create([
'name' => $defaultGroup['name'],
'description' => $defaultGroup['description'],
'status' => 'ACTIVE',
]);
//Retrieve permission IDs
$permissions = Permission::byName($defaultGroup['permissions'])->pluck('id');
//Attach permissions to this group
$createdGroup->permissions()->attach($permissions);
}
}
}