initialize(); use app\service\PermissionCatalog; use think\facade\Db; try { $parent = Db::name('sys_permissions')->where('code', 'menu:memberships')->find(); if (!$parent) { echo "menu:memberships not found, skip.\n"; exit(0); } $buttons = [ ['code' => 'btn:membership:create', 'name' => '新增会员等级'], ['code' => 'btn:membership:edit', 'name' => '编辑会员等级'], ['code' => 'btn:membership:delete', 'name' => '删除会员等级'], ]; foreach ($buttons as $i => $btn) { if (Db::name('sys_permissions')->where('code', $btn['code'])->find()) { echo "exists {$btn['code']}\n"; continue; } Db::name('sys_permissions')->insert([ 'type' => 'btn', 'code' => $btn['code'], 'name' => $btn['name'], 'parent_id' => $parent['id'], 'path' => null, 'icon' => null, 'sort_order' => $i, 'is_system' => 1, 'created_at' => date('Y-m-d H:i:s'), 'updated_at' => date('Y-m-d H:i:s'), ]); echo "added {$btn['code']}\n"; } // 超级管理员补齐全部权限 if (Db::name('roles')->where('slug', 'super_admin')->find()) { Db::name('roles')->where('slug', 'super_admin')->update([ 'permissions' => json_encode(PermissionCatalog::fullPermissions(), JSON_UNESCAPED_UNICODE), ]); echo "Updated super_admin permissions\n"; } echo "Done.\n"; } catch (\Throwable $e) { echo 'Error: ' . $e->getMessage() . "\n"; exit(1); }