调整初始化内容
parent
3036a54042
commit
fb692b5e26
|
|
@ -3,6 +3,7 @@
|
||||||
namespace Dcat\Admin\Console;
|
namespace Dcat\Admin\Console;
|
||||||
|
|
||||||
use Dcat\Admin\Models\AdminTablesSeeder;
|
use Dcat\Admin\Models\AdminTablesSeeder;
|
||||||
|
use Dcat\Admin\Models\AdminPermissionSeeder;
|
||||||
use Illuminate\Console\Command;
|
use Illuminate\Console\Command;
|
||||||
|
|
||||||
class InstallCommand extends Command
|
class InstallCommand extends Command
|
||||||
|
|
@ -55,6 +56,7 @@ class InstallCommand extends Command
|
||||||
|
|
||||||
if ($userModel::count() == 0) {
|
if ($userModel::count() == 0) {
|
||||||
$this->call('db:seed', ['--class' => AdminTablesSeeder::class]);
|
$this->call('db:seed', ['--class' => AdminTablesSeeder::class]);
|
||||||
|
$this->call('db:seed', ['--class' => AdminPermissionSeeder::class]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,73 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Dcat\Admin\Models;
|
||||||
|
|
||||||
|
use Dcat\Admin\Models\Permission;
|
||||||
|
use Illuminate\Database\Seeder;
|
||||||
|
use Illuminate\Support\Facades\DB;
|
||||||
|
|
||||||
|
class AdminPermissionSeeder extends Seeder
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the database seeds.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function run()
|
||||||
|
{
|
||||||
|
$permissions = [
|
||||||
|
'administrators' => ['name' => '人员管理', 'curd' => ['index', 'create', 'edit', 'destroy']],
|
||||||
|
'roles' => ['name' => '角色管理', 'curd' => ['index', 'create', 'edit', 'destroy']],
|
||||||
|
'menus' => ['name' => '菜单管理', 'curd' => ['index', 'create', 'edit', 'destroy']],
|
||||||
|
];
|
||||||
|
DB::table('admin_permissions')->truncate();
|
||||||
|
$this->createPermissionData($permissions);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 插入权限
|
||||||
|
*
|
||||||
|
* @param array $permissions
|
||||||
|
* @param string $key
|
||||||
|
* @param integer $pId
|
||||||
|
*/
|
||||||
|
public function createPermissionData(array $permissions, string $key = '', int $pId = 0)
|
||||||
|
{
|
||||||
|
$curdArr = [
|
||||||
|
'index' => '列表',
|
||||||
|
'create' => '新增',
|
||||||
|
'edit' => '修改',
|
||||||
|
'destroy' => '删除',
|
||||||
|
'show' => '详情',
|
||||||
|
];
|
||||||
|
foreach ($permissions as $slug => $permission) {
|
||||||
|
//是否已存在该权限
|
||||||
|
$slugKey = 'dcat.admin.' . ($key ? $key . '.' . $slug : $slug);
|
||||||
|
|
||||||
|
|
||||||
|
$pper = Permission::updateOrCreate(['slug' => $slugKey], ['name' => is_string($permission) ? $permission : $permission['name'], 'parent_id' => $pId]);
|
||||||
|
|
||||||
|
if (!is_string($permission)) {
|
||||||
|
if (!isset($permission['children'])) {
|
||||||
|
$permission['children'] = [];
|
||||||
|
}
|
||||||
|
//判断是否默认插入curd权限
|
||||||
|
if (isset($permission['curd']) && $permission['curd']) {
|
||||||
|
if (is_array($permission['curd'])) {
|
||||||
|
$permission['curd'] = array_reverse($permission['curd']);
|
||||||
|
foreach ($permission['curd'] as $value) {
|
||||||
|
$permission['children'] = array_merge([$value => $curdArr[$value]], $permission['children']);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$permission['children'] = array_merge($curdArr, $permission['children']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (count($permission['children']) > 0) {
|
||||||
|
$_key = $permission['curd'] !== false ? ($key ? $key . '.' . $slug : $slug) : $key;
|
||||||
|
$this->createPermissionData($permission['children'], $_key ?? $slug, $pper->id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -34,135 +34,5 @@ class AdminTablesSeeder extends Seeder
|
||||||
|
|
||||||
// add role to user.
|
// add role to user.
|
||||||
Administrator::first()->roles()->save(Role::first());
|
Administrator::first()->roles()->save(Role::first());
|
||||||
|
|
||||||
//create a permission
|
|
||||||
Permission::truncate();
|
|
||||||
Permission::insert([
|
|
||||||
[
|
|
||||||
'id' => 1,
|
|
||||||
'name' => 'Auth management',
|
|
||||||
'slug' => 'auth-management',
|
|
||||||
'http_method' => '',
|
|
||||||
'http_path' => '',
|
|
||||||
'parent_id' => 0,
|
|
||||||
'order' => 1,
|
|
||||||
'created_at' => $createdAt,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'id' => 2,
|
|
||||||
'name' => 'Users',
|
|
||||||
'slug' => 'users',
|
|
||||||
'http_method' => '',
|
|
||||||
'http_path' => '/auth/users*',
|
|
||||||
'parent_id' => 1,
|
|
||||||
'order' => 2,
|
|
||||||
'created_at' => $createdAt,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'id' => 3,
|
|
||||||
'name' => 'Roles',
|
|
||||||
'slug' => 'roles',
|
|
||||||
'http_method' => '',
|
|
||||||
'http_path' => '/auth/roles*',
|
|
||||||
'parent_id' => 1,
|
|
||||||
'order' => 3,
|
|
||||||
'created_at' => $createdAt,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'id' => 4,
|
|
||||||
'name' => 'Permissions',
|
|
||||||
'slug' => 'permissions',
|
|
||||||
'http_method' => '',
|
|
||||||
'http_path' => '/auth/permissions*',
|
|
||||||
'parent_id' => 1,
|
|
||||||
'order' => 4,
|
|
||||||
'created_at' => $createdAt,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'id' => 5,
|
|
||||||
'name' => 'Menu',
|
|
||||||
'slug' => 'menu',
|
|
||||||
'http_method' => '',
|
|
||||||
'http_path' => '/auth/menu*',
|
|
||||||
'parent_id' => 1,
|
|
||||||
'order' => 5,
|
|
||||||
'created_at' => $createdAt,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'id' => 6,
|
|
||||||
'name' => 'Extension',
|
|
||||||
'slug' => 'extension',
|
|
||||||
'http_method' => '',
|
|
||||||
'http_path' => '/auth/extensions*',
|
|
||||||
'parent_id' => 1,
|
|
||||||
'order' => 6,
|
|
||||||
'created_at' => $createdAt,
|
|
||||||
],
|
|
||||||
]);
|
|
||||||
|
|
||||||
// Role::first()->permissions()->save(Permission::first());
|
|
||||||
|
|
||||||
// add default menus.
|
|
||||||
Menu::truncate();
|
|
||||||
Menu::insert([
|
|
||||||
[
|
|
||||||
'parent_id' => 0,
|
|
||||||
'order' => 1,
|
|
||||||
'title' => 'Index',
|
|
||||||
'icon' => 'feather icon-bar-chart-2',
|
|
||||||
'uri' => '/',
|
|
||||||
'created_at' => $createdAt,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'parent_id' => 0,
|
|
||||||
'order' => 2,
|
|
||||||
'title' => 'Admin',
|
|
||||||
'icon' => 'feather icon-settings',
|
|
||||||
'uri' => '',
|
|
||||||
'created_at' => $createdAt,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'parent_id' => 2,
|
|
||||||
'order' => 3,
|
|
||||||
'title' => 'Users',
|
|
||||||
'icon' => '',
|
|
||||||
'uri' => 'auth/users',
|
|
||||||
'created_at' => $createdAt,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'parent_id' => 2,
|
|
||||||
'order' => 4,
|
|
||||||
'title' => 'Roles',
|
|
||||||
'icon' => '',
|
|
||||||
'uri' => 'auth/roles',
|
|
||||||
'created_at' => $createdAt,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'parent_id' => 2,
|
|
||||||
'order' => 5,
|
|
||||||
'title' => 'Permission',
|
|
||||||
'icon' => '',
|
|
||||||
'uri' => 'auth/permissions',
|
|
||||||
'created_at' => $createdAt,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'parent_id' => 2,
|
|
||||||
'order' => 6,
|
|
||||||
'title' => 'Menu',
|
|
||||||
'icon' => '',
|
|
||||||
'uri' => 'auth/menu',
|
|
||||||
'created_at' => $createdAt,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'parent_id' => 2,
|
|
||||||
'order' => 7,
|
|
||||||
'title' => 'Extensions',
|
|
||||||
'icon' => '',
|
|
||||||
'uri' => 'auth/extensions',
|
|
||||||
'created_at' => $createdAt,
|
|
||||||
],
|
|
||||||
]);
|
|
||||||
|
|
||||||
(new Menu())->flushCache();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue