parfum/database/seeders/RolePermissionSeeder.php
Yoga Pangestu 396440eda7 feat(price request): membuat enum status
- membuat datatables
- membuat logika untuk handle approve dan reject
- casting dan scope model
- membuat badge di sidebar untuk counting data yang belum disetujui
- menyesuaikan logika untuk mengajukan harga beli dengan skema table yang baru
- menyesuaikan skema table yang baru
- menyesuaikan parameter yang dikriim untuk pengajuan
- menyesuaikan logika table
- membuat permission
2025-11-21 14:58:49 +07:00

419 lines
9.7 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',
'view profile',
'update profile',
'view password',
'update password',
'view studio overview',
'view analysis',
'view outlet',
'create outlet',
'update outlet',
'delete outlet',
'view user',
'create user',
'update user',
'delete user',
'reset password user',
'view formula',
'create formula',
'update formula',
'delete formula',
'view tier',
'create tier',
'update tier',
'delete tier',
'view tier reward',
'create tier reward',
'update tier reward',
'delete tier reward',
'view voucher',
'create voucher',
'update voucher',
'delete voucher',
'view customer',
'create customer',
'update customer',
'delete customer',
'view category',
'create category',
'update category',
'delete category',
'view brand',
'create brand',
'update brand',
'delete brand',
'view perfume',
'create perfume',
'update perfume',
'delete perfume',
'audit perfume',
'view product',
'create product',
'update product',
'delete product',
'audit product',
'view bottle',
'create bottle',
'update bottle',
'delete bottle',
'audit bottle',
'view expense',
'create expense',
'update expense',
'delete expense',
'view payroll',
'manage adjustment',
'view order',
'create order',
'update order',
'delete order',
'show order',
'view purchase',
'create purchase',
'delete purchase',
'view article',
'create article',
'update article',
'delete article',
'view price request',
'approve price request',
'reject price request',
'view faq',
'create faq',
'update faq',
'delete faq',
'view perfume feature',
'create perfume feature',
'update perfume feature',
'delete perfume feature',
'view choose us',
'create choose us',
'update choose us',
'delete choose us',
'view application settings',
// 'view whatsapp settings',
'view general settings',
'update general settings',
'view contact settings',
'update contact settings',
'view seo settings',
'update seo settings',
'view social settings',
'update social settings',
// member
'view member overview',
'view member voucher',
'view member membership',
// partner
'view partner overview',
];
foreach ($permissions as $permission) {
Permission::firstOrCreate(['name' => $permission]);
}
$developer->syncPermissions($permissions, array_diff($permissions, [
'view member overview',
'view partner overview',
'view member voucher',
'view member membership',
]));
$owner->syncPermissions($permissions, array_diff($permissions, [
'view member overview',
'view partner overview',
'view member voucher',
'view member membership',
]));
$leader->syncPermissions(array_diff($permissions, [
'view member overview',
'view partner overview',
'view member voucher',
'view member membership',
'create outlet',
'update outlet',
'delete outlet',
'create user',
'update user',
'delete user',
'reset password user',
'create formula',
'update formula',
'delete formula',
'create tier',
'update tier',
'delete tier',
'view tier reward',
'create tier reward',
'update tier reward',
'delete tier reward',
'create voucher',
'update voucher',
'delete voucher',
'create perfume',
'update perfume',
'delete perfume',
'audit perfume',
'create product',
'update product',
'delete product',
'audit product',
'create bottle',
'update bottle',
'delete bottle',
'audit bottle',
'view payroll',
'manage adjustment',
'delete order',
'view purchase',
'create purchase',
'delete purchase',
'view faq',
'create faq',
'update faq',
'delete faq',
'view perfume feature',
'create perfume feature',
'update perfume feature',
'delete perfume feature',
'view choose us',
'create choose us',
'update choose us',
'delete choose us',
'view application settings',
// 'view whatsapp settings',
'view general settings',
'update general settings',
'view contact settings',
'update contact settings',
'view seo settings',
'update seo settings',
'view social settings',
'update social settings',
]));
$admin->syncPermissions(array_diff($permissions, [
'view member overview',
'view partner overview',
'view analysis',
'view member voucher',
'view member membership',
'view outlet',
'create outlet',
'update outlet',
'delete outlet',
'view user',
'create user',
'update user',
'delete user',
'reset password user',
'create formula',
'update formula',
'delete formula',
'view tier',
'create tier',
'update tier',
'delete tier',
'view tier reward',
'create tier reward',
'update tier reward',
'delete tier reward',
'view voucher',
'create voucher',
'update voucher',
'delete voucher',
'view customer',
'create customer',
'update customer',
'delete customer',
'create category',
'update category',
'delete category',
'create brand',
'update brand',
'delete brand',
'create perfume',
'update perfume',
'delete perfume',
'create product',
'update product',
'delete product',
'create bottle',
'update bottle',
'delete bottle',
'view payroll',
'manage adjustment',
'delete order',
'view purchase',
'create purchase',
'delete purchase',
'view article',
'create article',
'update article',
'delete article',
'view faq',
'create faq',
'update faq',
'delete faq',
'view perfume feature',
'create perfume feature',
'update perfume feature',
'delete perfume feature',
'view choose us',
'create choose us',
'update choose us',
'delete choose us',
'view application settings',
// 'view whatsapp settings',
'view general settings',
'update general settings',
'view contact settings',
'update contact settings',
'view seo settings',
'update seo settings',
'view social settings',
'update social settings',
]));
$partner->syncPermissions([
'view account',
'update account',
'view profile',
'update profile',
'view password',
'update password',
'view partner overview',
]);
$customer->syncPermissions([
'view account',
'update account',
'view profile',
'update profile',
'view password',
'update password',
'view member overview',
'view member voucher',
'view member membership',
]);
}
}