3 use Illuminate\Database\Migrations\Migration;
5 return new class extends Migration
14 // Get roles with permissions we need to change
15 $adminRoleId = DB::table('roles')->where('name', '=', 'admin')->first()->id;
16 $editorRole = DB::table('roles')->where('name', '=', 'editor')->first();
18 // Delete old permissions
19 $permissions = DB::table('permissions')->delete();
21 // Create & attach new admin permissions
22 $permissionsToCreate = [
23 'settings-manage' => 'Manage Settings',
24 'users-manage' => 'Manage Users',
25 'user-roles-manage' => 'Manage Roles & Permissions',
26 'restrictions-manage-all' => 'Manage All Entity Permissions',
27 'restrictions-manage-own' => 'Manage Entity Permissions On Own Content',
29 foreach ($permissionsToCreate as $name => $displayName) {
30 $permissionId = DB::table('permissions')->insertGetId([
32 'display_name' => $displayName,
33 'created_at' => \Carbon\Carbon::now()->toDateTimeString(),
34 'updated_at' => \Carbon\Carbon::now()->toDateTimeString(),
36 DB::table('permission_role')->insert([
37 'role_id' => $adminRoleId,
38 'permission_id' => $permissionId,
42 // Create & attach new entity permissions
43 $entities = ['Book', 'Page', 'Chapter', 'Image'];
44 $ops = ['Create All', 'Create Own', 'Update All', 'Update Own', 'Delete All', 'Delete Own'];
45 foreach ($entities as $entity) {
46 foreach ($ops as $op) {
47 $permissionId = DB::table('permissions')->insertGetId([
48 'name' => strtolower($entity) . '-' . strtolower(str_replace(' ', '-', $op)),
49 'display_name' => $op . ' ' . $entity . 's',
50 'created_at' => \Carbon\Carbon::now()->toDateTimeString(),
51 'updated_at' => \Carbon\Carbon::now()->toDateTimeString(),
53 DB::table('permission_role')->insert([
54 'role_id' => $adminRoleId,
55 'permission_id' => $permissionId,
57 if ($editorRole !== null) {
58 DB::table('permission_role')->insert([
59 'role_id' => $editorRole->id,
60 'permission_id' => $permissionId,
68 * Reverse the migrations.
72 public function down()
74 // Get roles with permissions we need to change
75 $adminRoleId = DB::table('roles')->where('name', '=', 'admin')->first()->id;
77 // Delete old permissions
78 $permissions = DB::table('permissions')->delete();
80 // Create default CRUD permissions and allocate to admins and editors
81 $entities = ['Book', 'Page', 'Chapter', 'Image'];
82 $ops = ['Create', 'Update', 'Delete'];
83 foreach ($entities as $entity) {
84 foreach ($ops as $op) {
85 $permissionId = DB::table('permissions')->insertGetId([
86 'name' => strtolower($entity) . '-' . strtolower($op),
87 'display_name' => $op . ' ' . $entity . 's',
88 'created_at' => \Carbon\Carbon::now()->toDateTimeString(),
89 'updated_at' => \Carbon\Carbon::now()->toDateTimeString(),
91 DB::table('permission_role')->insert([
92 'role_id' => $adminRoleId,
93 'permission_id' => $permissionId,
98 // Create admin permissions
99 $entities = ['Settings', 'User'];
100 $ops = ['Create', 'Update', 'Delete'];
101 foreach ($entities as $entity) {
102 foreach ($ops as $op) {
103 $permissionId = DB::table('permissions')->insertGetId([
104 'name' => strtolower($entity) . '-' . strtolower($op),
105 'display_name' => $op . ' ' . $entity,
106 'created_at' => \Carbon\Carbon::now()->toDateTimeString(),
107 'updated_at' => \Carbon\Carbon::now()->toDateTimeString(),
109 DB::table('permission_role')->insert([
110 'role_id' => $adminRoleId,
111 'permission_id' => $permissionId,