Files
gerrit/add_renjianbo_to_admin.sh

91 lines
3.2 KiB
Bash
Raw Normal View History

2025-12-22 17:12:39 +08:00
#!/bin/bash
# 将 renjianbo 用户添加到 Administrators 组的脚本
# 适用于 Gerrit 3.9.0
GERRIT_DIR="/home/renjianbo/gerrit_install/review_site"
JAVA_HOME="/usr/local/java/jdk-17.0.12+7"
USERNAME="renjianbo"
echo "=========================================="
echo "将用户 $USERNAME 添加到 Administrators 组"
echo "=========================================="
echo ""
cd "$GERRIT_DIR" || exit 1
export JAVA_HOME
export PATH=$JAVA_HOME/bin:$PATH
# 查找 H2 数据库 JAR 文件
H2_JAR=$(find . -name "h2*.jar" | head -1)
if [ -z "$H2_JAR" ]; then
echo "❌ 未找到 H2 数据库 JAR 文件"
exit 1
fi
echo "使用 H2 JAR: $H2_JAR"
echo ""
# 查找用户的 account_id
echo "查找用户账户..."
ACCOUNT_ID=$(java -cp "$H2_JAR" org.h2.tools.Shell -url "jdbc:h2:./db/ReviewDB" -user sa -password "" -sql "SELECT account_id FROM accounts WHERE user_name = '$USERNAME' OR full_name LIKE '%$USERNAME%' LIMIT 1;" 2>&1 | grep -E "^[0-9]+" | head -1)
if [ -z "$ACCOUNT_ID" ]; then
echo "⚠️ 未找到用户 $USERNAME,尝试查找第一个账户..."
ACCOUNT_ID=$(java -cp "$H2_JAR" org.h2.tools.Shell -url "jdbc:h2:./db/ReviewDB" -user sa -password "" -sql "SELECT account_id FROM accounts ORDER BY account_id LIMIT 1;" 2>&1 | grep -E "^[0-9]+" | head -1)
fi
if [ -z "$ACCOUNT_ID" ]; then
echo "❌ 无法找到任何账户"
exit 1
fi
echo "找到账户 ID: $ACCOUNT_ID"
echo ""
# 查找 Administrators 组的 group_id
echo "查找 Administrators 组..."
GROUP_ID=$(java -cp "$H2_JAR" org.h2.tools.Shell -url "jdbc:h2:./db/ReviewDB" -user sa -password "" -sql "SELECT group_id FROM account_groups WHERE name = 'Administrators' LIMIT 1;" 2>&1 | grep -E "^[0-9]+" | head -1)
if [ -z "$GROUP_ID" ]; then
echo "❌ 未找到 Administrators 组"
exit 1
fi
echo "找到 Administrators 组 ID: $GROUP_ID"
echo ""
# 检查用户是否已经是管理员
echo "检查用户是否已经是管理员..."
IS_ADMIN=$(java -cp "$H2_JAR" org.h2.tools.Shell -url "jdbc:h2:./db/ReviewDB" -user sa -password "" -sql "SELECT COUNT(*) FROM account_group_members WHERE account_id = $ACCOUNT_ID AND group_id = $GROUP_ID;" 2>&1 | grep -E "^[0-9]+" | head -1)
if [ "$IS_ADMIN" = "1" ]; then
echo "✅ 用户已经是管理员,无需添加"
exit 0
fi
# 添加用户到管理员组
echo "添加用户到 Administrators 组..."
java -cp "$H2_JAR" org.h2.tools.Shell -url "jdbc:h2:./db/ReviewDB" -user sa -password "" -sql "INSERT INTO account_group_members (account_id, group_id) VALUES ($ACCOUNT_ID, $GROUP_ID);" 2>&1 | grep -v "^[>|]" | grep -v "jdbc:h2" || true
# 验证
echo ""
echo "验证添加结果..."
NEW_IS_ADMIN=$(java -cp "$H2_JAR" org.h2.tools.Shell -url "jdbc:h2:./db/ReviewDB" -user sa -password "" -sql "SELECT COUNT(*) FROM account_group_members WHERE account_id = $ACCOUNT_ID AND group_id = $GROUP_ID;" 2>&1 | grep -E "^[0-9]+" | head -1)
if [ "$NEW_IS_ADMIN" = "1" ]; then
echo ""
echo "✅ 成功!用户 $USERNAME (Account ID: $ACCOUNT_ID) 已添加到 Administrators 组"
echo ""
echo "下一步:"
echo "1. 退出并重新登录 Gerrit"
echo "2. 刷新浏览器页面"
echo "3. 应该能看到 'CREATE NEW' 按钮了"
else
echo ""
echo "❌ 添加失败,请检查错误信息"
fi