cms/database/seeders/PermissionSeeder.php

92 lines
5.3 KiB
PHP
Raw Normal View History

<?php
namespace Database\Seeders;
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
use App\Models\Permission;
class PermissionSeeder extends Seeder
{
/**
* Run the database seeds.
*/
public function run(): void
{
$permissions = [
// Page management
['name' => 'View Pages', 'slug' => 'view-pages', 'resource' => 'pages', 'action' => 'view'],
['name' => 'Create Pages', 'slug' => 'create-pages', 'resource' => 'pages', 'action' => 'create'],
['name' => 'Edit Pages', 'slug' => 'edit-pages', 'resource' => 'pages', 'action' => 'edit'],
['name' => 'Delete Pages', 'slug' => 'delete-pages', 'resource' => 'pages', 'action' => 'delete'],
// User management
['name' => 'View Users', 'slug' => 'view-users', 'resource' => 'users', 'action' => 'view'],
['name' => 'Create Users', 'slug' => 'create-users', 'resource' => 'users', 'action' => 'create'],
['name' => 'Edit Users', 'slug' => 'edit-users', 'resource' => 'users', 'action' => 'edit'],
['name' => 'Delete Users', 'slug' => 'delete-users', 'resource' => 'users', 'action' => 'delete'],
// Role management
['name' => 'View Roles', 'slug' => 'view-roles', 'resource' => 'roles', 'action' => 'view'],
['name' => 'Create Roles', 'slug' => 'create-roles', 'resource' => 'roles', 'action' => 'create'],
['name' => 'Edit Roles', 'slug' => 'edit-roles', 'resource' => 'roles', 'action' => 'edit'],
['name' => 'Delete Roles', 'slug' => 'delete-roles', 'resource' => 'roles', 'action' => 'delete'],
['name' => 'Assign Permissions', 'slug' => 'assign-permissions', 'resource' => 'roles', 'action' => 'assign'],
// Theme management
['name' => 'View Themes', 'slug' => 'view-themes', 'resource' => 'themes', 'action' => 'view'],
['name' => 'Activate Themes', 'slug' => 'activate-themes', 'resource' => 'themes', 'action' => 'activate'],
['name' => 'Upload Themes', 'slug' => 'upload-themes', 'resource' => 'themes', 'action' => 'upload'],
['name' => 'Edit Themes', 'slug' => 'edit-themes', 'resource' => 'themes', 'action' => 'edit'],
// Media management
['name' => 'View Media', 'slug' => 'view-media', 'resource' => 'media', 'action' => 'view'],
['name' => 'Upload Media', 'slug' => 'upload-media', 'resource' => 'media', 'action' => 'upload'],
['name' => 'Edit Media', 'slug' => 'edit-media', 'resource' => 'media', 'action' => 'edit'],
['name' => 'Delete Media', 'slug' => 'delete-media', 'resource' => 'media', 'action' => 'delete'],
// Settings
['name' => 'Manage Settings', 'slug' => 'manage-settings', 'resource' => 'settings', 'action' => 'manage'],
// Backups
['name' => 'Manage Backups', 'slug' => 'manage-backups', 'resource' => 'backups', 'action' => 'manage'],
// Custom Post Types
['name' => 'View CPT', 'slug' => 'view-cpt', 'resource' => 'cpt', 'action' => 'view'],
['name' => 'Create CPT', 'slug' => 'create-cpt', 'resource' => 'cpt', 'action' => 'create'],
['name' => 'Edit CPT', 'slug' => 'edit-cpt', 'resource' => 'cpt', 'action' => 'edit'],
['name' => 'Delete CPT', 'slug' => 'delete-cpt', 'resource' => 'cpt', 'action' => 'delete'],
// Posts
['name' => 'View Posts', 'slug' => 'view-posts', 'resource' => 'posts', 'action' => 'view'],
['name' => 'Create Posts', 'slug' => 'create-posts', 'resource' => 'posts', 'action' => 'create'],
['name' => 'Edit Posts', 'slug' => 'edit-posts', 'resource' => 'posts', 'action' => 'edit'],
['name' => 'Delete Posts', 'slug' => 'delete-posts', 'resource' => 'posts', 'action' => 'delete'],
// Forms
['name' => 'View Forms', 'slug' => 'view-forms', 'resource' => 'forms', 'action' => 'view'],
['name' => 'Create Forms', 'slug' => 'create-forms', 'resource' => 'forms', 'action' => 'create'],
['name' => 'Edit Forms', 'slug' => 'edit-forms', 'resource' => 'forms', 'action' => 'edit'],
['name' => 'Delete Forms', 'slug' => 'delete-forms', 'resource' => 'forms', 'action' => 'delete'],
['name' => 'View Submissions', 'slug' => 'view-submissions', 'resource' => 'forms', 'action' => 'view-submissions'],
// Analytics
['name' => 'View Analytics', 'slug' => 'view-analytics', 'resource' => 'analytics', 'action' => 'view'],
// Navigation
['name' => 'Manage Navigation', 'slug' => 'manage-navigation', 'resource' => 'navigation', 'action' => 'manage'],
// Translations
['name' => 'Manage Translations', 'slug' => 'manage-translations', 'resource' => 'translations', 'action' => 'manage'],
// Settings
['name' => 'View Settings', 'slug' => 'view-settings', 'resource' => 'settings', 'action' => 'view'],
['name' => 'Update Settings', 'slug' => 'update-settings', 'resource' => 'settings', 'action' => 'update'],
];
foreach ($permissions as $permission) {
Permission::updateOrCreate(['slug' => $permission['slug']], $permission);
}
}
}