Files
chat/backend/database/migrate_membership_buttons.php
T
2026-07-22 10:18:59 +08:00

62 lines
1.8 KiB
PHP

<?php
/**
* 增量补种会员等级 新增/删除 按钮权限
* 用法: php database/migrate_membership_buttons.php
*/
require __DIR__ . '/../vendor/autoload.php';
$app = new think\App();
$app->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);
}