如何在gerrit(3.0)中删除帐户

问题描述 投票:0回答:3

我在使用某些帐户时遇到了问题(我认为我使用 ssh 创建了它们,所以除非

development_become_any_account
处于活动状态,否则它们无法登录。)他们现在得到一个空白的登录页面。

我想通过删除它们来重置它们,并重新创建它们。如果这很重要的话,我正在使用 HTTP Auth。

我在克隆所有用户并检查 origin/users/self 时检查了用户配置,但我确实看不到可能导致此问题的任何差异。

我非常感谢您帮助我删除不良帐户,以便我可以重新开始。

更新

我注意到通过 ssh 创建的帐户永远不会获得“gerrit:”身份。我似乎无法向帐户添加 gerrit: 身份 - 创建帐户后可以这样做吗?

我尝试从所有用户中删除“accounts/self”引用,但最终导致该帐户无法使用,但用户名仍被 gerrit 占用,所以这不是解决方案。

git gerrit
3个回答
3
投票
  1. 签出
    All-Users
    来自 gerrit 的项目
git clone ssh://<user>@<gerrit host>:29418/All-Users
  1. 结帐参考
    refs/meta/external-ids
git fetch origin refs/meta/external-ids:refs/meta/external-ids
git checkout refs/meta/external-ids
  1. 搜索您要删除的帐户,例如
    foobar
grep -r foobar *

398cd83a701a63c77dfc1998f76524561208c879:[externalId "gerrit:foobar"]
398cd83a701a63c77dfc1998f76524561208c879:   email = [email protected]
9b622a00bcd48295d545ba946afdd91df8b0ed61:[externalId "username:foobar"]
  1. 删除这些文件并提交
git rm 398cd83a701a63c77dfc1998f76524561208c879 9b622a00bcd48295d545ba946afdd91df8b0ed61
git commit -m "Remove account foobar"
git push origin HEAD:refs/meta/external-ids

1
投票

一个好的方法是使用 Gerrit 的 REST API 的帐户端点来停用用户。您可以从命令行执行此操作:

$ curl -u user:password -X DELETE https://gerrit.example.net/a/accounts/{accound-id}/active

{account-id}
部分的解释请参见这里


0
投票

在 Gerrit 3.6.1 中测试,您可以通过 SSH 添加

account
插件并删除帐户。以下是所需的语法:

ssh -p 29418 ssh://<user_name>@<host_name> account delete ACCOUNT-ID --yes-really-delete ACCOUNT-NAME

您可以使用

admin-console
插件并运行以下命令来检索 ACCOUNT-ID:

ssh -p 29418 ssh://<user_name>@<host_name> admin-console ls-users|grep <user_to_delete>

注意:此方法仍会在数据库中保留用户的 ACCOUNT-ID 记录,但用户将被设置为非活动状态并删除其信息。

© www.soinside.com 2019 - 2024. All rights reserved.