parfum/database/seeders/RolePermissionSeeder.php

504 lines
12 KiB
PHP

<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
use Spatie\Permission\Models\Permission;
use Spatie\Permission\Models\Role;
class RolePermissionSeeder extends Seeder
{
public function run(): void
{
$developer = Role::firstOrCreate(['name' => 'Developer']);
$owner = Role::firstOrCreate(['name' => 'Owner']);
$leader = Role::firstOrCreate(['name' => 'Leader']);
$admin = Role::firstOrCreate(['name' => 'Admin']);
$partner = Role::firstOrCreate(['name' => 'Partner']);
$customer = Role::firstOrCreate(['name' => 'Customer']);
$permissions = [
'view account',
'update account',
'manage adjustment',
'view analysis',
'view application settings',
'view article',
'create article',
'update article',
'delete article',
'view bottle',
'create bottle',
'update bottle',
'delete bottle',
'audit bottle',
'view brand',
'create brand',
'update brand',
'delete brand',
'view broadcast',
'create broadcast',
'delete broadcast',
'view category',
'create category',
'update category',
'delete category',
'view choose us',
'create choose us',
'update choose us',
'delete choose us',
'view contact settings',
'update contact settings',
'view customer',
'create customer',
'update customer',
'delete customer',
'view expense',
'create expense',
'update expense',
'delete expense',
'view faq',
'create faq',
'update faq',
'delete faq',
'view formula',
'create formula',
'update formula',
'delete formula',
'view general settings',
'update general settings',
'view member membership',
'view member overview',
'view member reward',
'view order',
'create order',
'show order',
'update order',
'delete order',
'view outlet',
'create outlet',
'update outlet',
'delete outlet',
'view partner overview',
'view password',
'update password',
'view payroll',
'view perfume',
'create perfume',
'update perfume',
'delete perfume',
'audit perfume',
'view perfume feature',
'create perfume feature',
'update perfume feature',
'delete perfume feature',
'view product',
'create product',
'update product',
'delete product',
'audit product',
'view profile',
'update profile',
'view purchase',
'create purchase',
'delete purchase',
'view redemption',
'update redemption',
'view restock',
'create restock',
'update restock',
'delete restock',
'view stock transfer',
'create stock transfer',
'update stock transfer',
'delete stock transfer',
'view reward',
'create reward',
'update reward',
'delete reward',
'view seo settings',
'update seo settings',
'view social settings',
'update social settings',
'view stock opname',
'show stock opname',
'approve stock opname',
'manage stock opname',
'view stock history',
'show stock history',
'view studio overview',
'view testimonial',
'delete testimonial',
'view tier',
'create tier',
'update tier',
'delete tier',
'view tier reward',
'create tier reward',
'update tier reward',
'delete tier reward',
'view user',
'create user',
'update user',
'delete user',
'reset password user',
'view voucher',
'create voucher',
'update voucher',
'delete voucher',
'view warehouse',
'create warehouse',
'show warehouse',
'update warehouse',
'delete warehouse',
'audit stock warehouse',
];
foreach ($permissions as $permission) {
Permission::firstOrCreate(['name' => $permission]);
}
$developer->syncPermissions(array_diff($permissions, [
'view member membership',
'view member overview',
'view partner overview',
]));
$owner->syncPermissions(array_diff($permissions, [
'view member membership',
'view member overview',
'view member reward',
'view partner overview',
]));
$leader->syncPermissions(array_diff($permissions, [
'manage adjustment',
'view analysis',
'view application settings',
'create bottle',
'update bottle',
'delete bottle',
'audit bottle',
'view choose us',
'create choose us',
'update choose us',
'delete choose us',
'view contact settings',
'update contact settings',
'view faq',
'create faq',
'update faq',
'delete faq',
'create formula',
'update formula',
'delete formula',
'view general settings',
'update general settings',
'view member membership',
'view member overview',
'view member reward',
'delete order',
'create outlet',
'update outlet',
'delete outlet',
'view partner overview',
'create perfume',
'update perfume',
'delete perfume',
'audit perfume',
'view perfume feature',
'create perfume feature',
'update perfume feature',
'delete perfume feature',
'create product',
'update product',
'delete product',
'audit product',
'view purchase',
'create purchase',
'delete purchase',
'create reward',
'update reward',
'delete reward',
'view seo settings',
'update seo settings',
'view social settings',
'update social settings',
'approve stock opname',
'create tier',
'update tier',
'delete tier',
'view tier reward',
'create tier reward',
'update tier reward',
'delete tier reward',
'view user',
'create user',
'update user',
'delete user',
'reset password user',
'create voucher',
'update voucher',
'delete voucher',
'create warehouse',
'show warehouse',
'update warehouse',
'delete warehouse',
'audit stock warehouse',
'view stock history',
'show stock history',
]));
$admin->syncPermissions(array_diff($permissions, [
'manage adjustment',
'view analysis',
'view application settings',
'view article',
'create article',
'update article',
'delete article',
'create bottle',
'update bottle',
'delete bottle',
'audit bottle',
'create brand',
'update brand',
'delete brand',
'view broadcast',
'create broadcast',
'delete broadcast',
'create category',
'update category',
'delete category',
'view choose us',
'create choose us',
'update choose us',
'delete choose us',
'view contact settings',
'update contact settings',
'view customer',
'create customer',
'update customer',
'delete customer',
'view faq',
'create faq',
'update faq',
'delete faq',
'create formula',
'update formula',
'delete formula',
'view general settings',
'update general settings',
'view member membership',
'view member overview',
'view member reward',
'delete order',
'view outlet',
'create outlet',
'update outlet',
'delete outlet',
'view partner overview',
'create perfume',
'update perfume',
'delete perfume',
'audit perfume',
'view perfume feature',
'create perfume feature',
'update perfume feature',
'delete perfume feature',
'create product',
'update product',
'delete product',
'audit product',
'view purchase',
'create purchase',
'delete purchase',
'view restock',
'create restock',
'update restock',
'delete restock',
'view stock transfer',
'create stock transfer',
'update stock transfer',
'delete stock transfer',
'view reward',
'create reward',
'update reward',
'delete reward',
'view seo settings',
'update seo settings',
'view social settings',
'update social settings',
'view stock opname',
'show stock opname',
'manage stock opname',
'view testimonial',
'delete testimonial',
'view tier',
'create tier',
'update tier',
'delete tier',
'view tier reward',
'create tier reward',
'update tier reward',
'delete tier reward',
'view user',
'create user',
'update user',
'delete user',
'reset password user',
'view voucher',
'create voucher',
'update voucher',
'delete voucher',
'view warehouse',
'create warehouse',
'show warehouse',
'update warehouse',
'delete warehouse',
'audit stock warehouse',
'view stock history',
'show stock history',
]));
$partner->syncPermissions([
'view account',
'update account',
'view partner overview',
'view password',
'update password',
'view profile',
'update profile',
]);
$customer->syncPermissions([
'view account',
'update account',
'view member membership',
'view member overview',
'view member reward',
'view password',
'update password',
'view profile',
'update profile',
]);
}
}