Files
memind/scripts/grant-ops-role.mjs
T
John 2e14873f2d Initial commit: Memind H5 portal with MindSpace, Plaza, and agent jobs.
Track application source and tests; exclude local env, user workspaces, and runtime data via .gitignore.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-15 15:04:43 -07:00

54 lines
1.5 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env node
import fs from 'node:fs';
import path from 'node:path';
import { fileURLToPath } from 'node:url';
import { createDbPool } from '../db.mjs';
const root = path.join(path.dirname(fileURLToPath(import.meta.url)), '..');
function loadEnvFile(filePath) {
if (!fs.existsSync(filePath)) return;
for (const line of fs.readFileSync(filePath, 'utf8').split('\n')) {
const trimmed = line.trim();
if (!trimmed || trimmed.startsWith('#')) continue;
const eq = trimmed.indexOf('=');
if (eq < 0) continue;
const key = trimmed.slice(0, eq).trim();
const value = trimmed.slice(eq + 1).trim();
if (!process.env[key]) process.env[key] = value;
}
}
loadEnvFile(path.join(root, '../../.env.local'));
loadEnvFile(path.join(root, '.env'));
const username = process.argv[2] ?? 'admin';
const role = process.argv[3] ?? 'ops_admin';
const allowed = new Set(['none', 'reviewer', 'editor', 'ops_admin']);
if (!allowed.has(role)) {
console.error(`无效角色: ${role},可选: ${[...allowed].join(', ')}`);
process.exit(1);
}
const pool = createDbPool();
const [rows] = await pool.query(
`SELECT id, username, ops_role FROM h5_users WHERE username = ? LIMIT 1`,
[username],
);
const user = rows[0];
if (!user) {
console.error(`用户不存在: ${username}`);
await pool.end();
process.exit(1);
}
await pool.query(`UPDATE h5_users SET ops_role = ?, updated_at = ? WHERE id = ?`, [
role,
Date.now(),
user.id,
]);
await pool.end();
console.log(`已为 ${user.username} 设置 ops_role=${role}(原值: ${user.ops_role ?? 'none'}`);