File: /var/www/ipsremont-demo/database/migrations/2023_10_06_113108_add_notification_permission.php
<?php
use App\Models\Permission;
use App\Models\Role;
use App\Repository\Permission\PermissionRepository;
use Illuminate\Database\Migrations\Migration;
use Illuminate\Support\Facades\DB;
class AddNotificationPermission extends Migration
{
public function up()
{
$permission = PermissionRepository::addPermission('Оповещения', Permission::notifications, 'Создание оповещений', Permission::TYPE_MANAGER);
$roles = Role::query()->where('type', Role::manager)->get();
foreach ($roles as $role) {
/** @var Role $role */
PermissionRepository::linkPermissionToRole($permission->id, $role->id);
}
}
public function down()
{
/** @var Permission $permission */
$permission = Permission::query()->where('slug', Permission::notifications)->first();
if (empty($permission)) {
return;
}
DB::table('roles_permissions')->where('permission_id', $permission->id)->delete();
PermissionRepository::removeBySlug(Permission::notifications, true);
}
}