File: /var/www/ipsremont-demo/database/migrations/2020_12_11_192342_add_1c_permission.php
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Support\Facades\DB;
use App\Models\Role;
class Add1cPermission extends Migration
{
protected function getPermissions()
{
return [
[
"name" => 'Настройки 1с',
"slug" => '1c',
"description" => 'Возможность менять коды обектов для взаимодействия с 1с',
'type' => 'manager',
],
];
}
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
/** @var Role $roleAdmin */
$roles = Role::whereIn('type', [\App\Models\Role::admin, \App\Models\Role::manager])->get();
$permissions = $this->getPermissions();
foreach ($permissions as $permission) {
$id = DB::table('permissions')->insertGetId($permission);
foreach ($roles as $role) {
DB::table('roles_permissions')->insert(["permission_id" => $id, "role_id" => $role->id]);
}
}
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
$permissions = $this->getPermissions();
foreach ($permissions as $permission) {
DB::table('permissions')->where(['slug' => $permission['slug']])->delete();
}
}
}