62 lines
1.8 KiB
PHP
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);
|
|
}
|