Files
gerrit/add_user_to_admin.sh

84 lines
3.4 KiB
Bash
Raw Normal View History

2025-12-22 17:12:39 +08:00
#!/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 选项"