]> BookStack Code Mirror - bookstack/blob - database/migrations/2021_08_28_161743_add_export_role_permission.php
3bacab20b4ed3a6c811e57ec7b32d93c82e6b1f8
[bookstack] / database / migrations / 2021_08_28_161743_add_export_role_permission.php
1 <?php
2
3 use Carbon\Carbon;
4 use Illuminate\Database\Migrations\Migration;
5 use Illuminate\Support\Facades\DB;
6
7 return new class extends Migration
8 {
9     /**
10      * Run the migrations.
11      *
12      * @return void
13      */
14     public function up()
15     {
16         // Create new templates-manage permission and assign to admin role
17         $roles = DB::table('roles')->get('id');
18         $permissionId = DB::table('role_permissions')->insertGetId([
19             'name'         => 'content-export',
20             'display_name' => 'Export Content',
21             'created_at'   => Carbon::now()->toDateTimeString(),
22             'updated_at'   => Carbon::now()->toDateTimeString(),
23         ]);
24
25         $permissionRoles = $roles->map(function ($role) use ($permissionId) {
26             return [
27                 'role_id'       => $role->id,
28                 'permission_id' => $permissionId,
29             ];
30         })->values()->toArray();
31
32         DB::table('permission_role')->insert($permissionRoles);
33     }
34
35     /**
36      * Reverse the migrations.
37      *
38      * @return void
39      */
40     public function down()
41     {
42         // Remove content-export permission
43         $contentExportPermission = DB::table('role_permissions')
44             ->where('name', '=', 'content-export')->first();
45
46         DB::table('permission_role')->where('permission_id', '=', $contentExportPermission->id)->delete();
47         DB::table('role_permissions')->where('id', '=', 'content-export')->delete();
48     }
49 };