Files
gerrit/add_user_to_admin.sh
2025-12-22 17:12:39 +08:00

84 lines
3.4 KiB
Bash
Executable File
Raw Permalink 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.
#!/bin/bash
# 将用户添加到 Administrators 组的脚本
GERRIT_DIR="/home/renjianbo/gerrit_install/review_site"
JAVA_HOME="/usr/lib/jvm/java-11-openjdk-11.0.23.0.9-2.el7_9.x86_64"
USERNAME="renjianbo"
echo "=========================================="
echo "将用户 $USERNAME 添加到 Administrators 组"
echo "=========================================="
echo ""
cd "$GERRIT_DIR" || exit 1
# 方法 1: 尝试通过 SSH如果可用
echo "方法 1: 尝试通过 SSH 添加..."
ssh -p 29418 renjianbo@localhost gerrit set-members --add "$USERNAME" Administrators 2>/dev/null
if [ $? -eq 0 ]; then
echo "✅ 通过 SSH 添加成功"
exit 0
fi
echo "SSH 方法失败,尝试其他方法..."
echo ""
# 方法 2: 通过数据库直接添加
echo "方法 2: 通过数据库添加..."
# 查找用户的 account_id
ACCOUNT_ID=$(cd "$GERRIT_DIR" && JAVA_HOME="$JAVA_HOME" java -cp db/h2*.jar org.h2.tools.Shell -url jdbc:h2:./db/ReviewDB -user sa -password "" -sql "SELECT account_id FROM accounts WHERE preferred_email LIKE '%263303411%' OR full_name LIKE '%renjianbo%' LIMIT 1;" 2>/dev/null | grep -E "^[0-9]+" | head -1)
if [ -z "$ACCOUNT_ID" ]; then
echo "⚠️ 无法找到用户账户,尝试通过用户名查找..."
# 尝试其他方式
ACCOUNT_ID=$(cd "$GERRIT_DIR" && JAVA_HOME="$JAVA_HOME" java -cp db/h2*.jar org.h2.tools.Shell -url jdbc:h2:./db/ReviewDB -user sa -password "" -sql "SELECT account_id FROM accounts LIMIT 1;" 2>/dev/null | grep -E "^[0-9]+" | head -1)
fi
if [ -n "$ACCOUNT_ID" ]; then
echo "找到账户 ID: $ACCOUNT_ID"
# 查找 Administrators 组的 group_id
GROUP_ID=$(cd "$GERRIT_DIR" && JAVA_HOME="$JAVA_HOME" java -cp db/h2*.jar org.h2.tools.Shell -url jdbc:h2:./db/ReviewDB -user sa -password "" -sql "SELECT group_id FROM account_groups WHERE name = 'Administrators';" 2>/dev/null | grep -E "^[0-9]+" | head -1)
if [ -z "$GROUP_ID" ]; then
echo "⚠️ 无法找到 Administrators 组"
echo "请通过 Web 界面手动添加:"
echo " 访问: http://101.43.95.130:8080/#/admin/groups/Administrators,members"
exit 1
fi
echo "找到 Administrators 组 ID: $GROUP_ID"
# 检查用户是否已在组中
EXISTING=$(cd "$GERRIT_DIR" && JAVA_HOME="$JAVA_HOME" java -cp db/h2*.jar org.h2.tools.Shell -url jdbc:h2:./db/ReviewDB -user sa -password "" -sql "SELECT account_id FROM account_group_members WHERE account_id = $ACCOUNT_ID AND group_id = $GROUP_ID;" 2>/dev/null | grep -E "^[0-9]+")
if [ -n "$EXISTING" ]; then
echo "✅ 用户已在 Administrators 组中"
else
# 添加用户到组
echo "正在添加用户到组..."
cd "$GERRIT_DIR" && JAVA_HOME="$JAVA_HOME" java -cp db/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>/dev/null
if [ $? -eq 0 ]; then
echo "✅ 用户已添加到 Administrators 组"
else
echo "❌ 添加失败,请通过 Web 界面手动添加"
fi
fi
else
echo "❌ 无法找到用户账户"
echo "请通过 Web 界面手动添加:"
echo " 访问: http://101.43.95.130:8080/#/admin/groups/Administrators,members"
fi
echo ""
echo "配置完成后,请:"
echo "1. 刷新 Gerrit Web 界面"
echo "2. 重新登录"
echo "3. 检查是否可以看到 +2 选项"