classify admin
This commit is contained in:
137
database/seeders/SystemUpgradeSeeder.php
Normal file
137
database/seeders/SystemUpgradeSeeder.php
Normal file
@@ -0,0 +1,137 @@
|
||||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
// use Illuminate\Database\Console\Seeds\WithoutModelEvents;
|
||||
use App\Models\Setting;
|
||||
use App\Services\DefaultSettingService;
|
||||
use Illuminate\Database\Seeder;
|
||||
use Spatie\Permission\Models\Permission;
|
||||
|
||||
class SystemUpgradeSeeder extends Seeder
|
||||
{
|
||||
/**
|
||||
* Run the database seeds.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function run()
|
||||
{
|
||||
// * means create,list,update,delete
|
||||
$permissionsList = [
|
||||
'role' => '*',
|
||||
'staff' => '*',
|
||||
'category' => '*',
|
||||
'custom-field' => '*',
|
||||
'advertisement' => [
|
||||
'only' => ['list', 'update']
|
||||
],
|
||||
'advertisement-listing-package' => '*',
|
||||
'featured-advertisement-package' => '*',
|
||||
'user-package' => [
|
||||
'only' => ['list']
|
||||
],
|
||||
'payment-transactions' => [
|
||||
'only' => ['list']
|
||||
],
|
||||
'slider' => [
|
||||
'only' => ['create', 'delete', 'list']
|
||||
],
|
||||
'feature-section' => '*',
|
||||
'report-reason' => '*',
|
||||
'user-reports' => [
|
||||
'only' => ['list']
|
||||
],
|
||||
'notification' => '*',
|
||||
'customer' => [
|
||||
'only' => ['list', 'update']
|
||||
],
|
||||
'settings' => [
|
||||
'only' => ['update']
|
||||
],
|
||||
'tip' => '*',
|
||||
'blog' => '*',
|
||||
'currency' => '*',
|
||||
'country' => '*',
|
||||
'state' => '*',
|
||||
'city' => '*',
|
||||
'area' => '*',
|
||||
'faq' => '*',
|
||||
'seller-verification-field' => '*',
|
||||
'seller-verification-request' => [
|
||||
'only' => ['list', 'update']
|
||||
],
|
||||
'seller-review' => '*',
|
||||
'user-queries' => [
|
||||
'only' => ['list']
|
||||
],
|
||||
];
|
||||
|
||||
$permissionsList = self::generatePermissionList($permissionsList);
|
||||
|
||||
$permissions = array_map(static function ($data) {
|
||||
return [
|
||||
'name' => $data,
|
||||
'guard_name' => 'web'
|
||||
];
|
||||
}, $permissionsList);
|
||||
Permission::upsert($permissions, ['name'], ['name']);
|
||||
|
||||
// Role::updateOrCreate(['name' => 'Super Admin']);
|
||||
// $superAdminHasAccessTo = [
|
||||
// 'role-list',
|
||||
// 'role-create',
|
||||
// 'role-update',
|
||||
// 'role-delete',
|
||||
// ];
|
||||
// $role->syncPermissions($superAdminHasAccessTo);
|
||||
/*Create Settings which are new & ignore the old values*/
|
||||
Setting::insertOrIgnore(DefaultSettingService::get());
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array {
|
||||
* <pre>
|
||||
* permission_name :array<string> array {
|
||||
* * : string // List , Create , Edit , Delete
|
||||
* only : string // List , Create , Edit , Delete
|
||||
* custom: array { // custom permissions will be prefixed with permission_name eg. permission_name-permission1
|
||||
* permission1: string,
|
||||
* permission2: string,
|
||||
* }
|
||||
* }
|
||||
* } $permission
|
||||
* @return array
|
||||
*/
|
||||
public static function generatePermissionList($permissions)
|
||||
{
|
||||
$permissionList = [];
|
||||
foreach ($permissions as $name => $permission) {
|
||||
$defaultPermission = [
|
||||
$name . "-list",
|
||||
$name . "-create",
|
||||
$name . "-update",
|
||||
$name . "-delete"
|
||||
];
|
||||
if (is_array($permission)) {
|
||||
// * OR only param either is required
|
||||
if (in_array("*", $permission, true)) {
|
||||
$permissionList = array_merge($permissionList ?? [], $defaultPermission);
|
||||
} else if (array_key_exists("only", $permission)) {
|
||||
foreach ($permission["only"] as $row) {
|
||||
$permissionList[] = $name . "-" . strtolower($row);
|
||||
}
|
||||
}
|
||||
|
||||
if (array_key_exists("custom", $permission)) {
|
||||
foreach ($permission["custom"] as $customPermission) {
|
||||
$permissionList[] = $name . "-" . $customPermission;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$permissionList = array_merge($permissionList ?? [], $defaultPermission);
|
||||
}
|
||||
}
|
||||
return $permissionList;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user