正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

ユーザーをモデレートする

  • プラン: Free、Premium、Ultimate
  • 提供形態: GitLab Self-Managed、GitLab Dedicated

インスタンス管理者の場合、ユーザーアクセスをモデレートおよび制御するためのオプションがいくつかあります。

このトピックは、特にGitLab Self-Managedでのユーザーモデレーションに関するものです。グループ関連の情報については、グループドキュメントを参照してください。

タイプ別のユーザーの表示

確立されたGitLabインスタンスは、多くの場合、多数の人間およびボットユーザーが存在する可能性があります。ユーザーのリストをフィルタリングして、人間またはボットユーザーのみを表示できます。

タイプ別にユーザーを表示するには:

  1. 左側のサイドバーの下部で、管理者を選択します。
  2. 概要 > ユーザーを選択します。
  3. 検索ボックスに、フィルターを入力します。
    • 人間のユーザーを表示するには、Type=Humansと入力します。
    • ボットユーザーを表示するには、Type=Botsと入力します。
  4. Enterキーを押します。

承認待ちのユーザー

承認承認待ちの状態のユーザーは、管理者によるアクションを必要とします。管理者が次のオプションのいずれかを有効にしている場合、ユーザーサインアップは承認待ちの状態になる可能性があります:

この設定が有効になっているときにユーザーがアカウントを登録すると:

  • ユーザーは承認保留中の状態になります。
  • ユーザーには、アカウントが管理者による承認を待機中であるというメッセージが表示されます。

承認待ちのユーザー:

  • ブロックされたユーザーと機能的に同じです。
  • サインインできません。
  • GitリポジトリまたはGitLab APIにアクセスできません。
  • GitLabからの通知を受信しません。
  • シートを消費しません。

管理者は、サインインを許可するために、サインアップを承認する必要があります

承認待ちのユーザーサインアップを表示

承認待ちのユーザーサインアップを表示するには:

  1. 左側のサイドバーの下部で、管理者を選択します。
  2. 概要 > ユーザーを選択します。
  3. 検索ボックスで、State=Pending approval(State=Pending approval)でフィルタリングし、Enterを押します。

ユーザーサインアップの承認または拒否

承認待ちのユーザーサインアップは、管理者エリアから承認または拒否できます。

ユーザーサインアップを承認または拒否するには:

  1. 左側のサイドバーの下部で、管理者を選択します。
  2. 概要 > ユーザーを選択します。
  3. 検索ボックスで、State=Pending approval(State=Pending approval)でフィルタリングし、Enterを押します。
  4. 承認または拒否するユーザーサインアップについて、縦方向の省略記号( ellipsis_v )を選択し、承認するまたは拒否を選択します。

ユーザーの承認:

  • アカウントをアクティブ化します。
  • ユーザーの状態をアクティブに変更します。
  • サブスクリプションのシートを消費します。

ユーザーの拒否:

  • ユーザーがサインインしたり、インスタンス情報にアクセスしたりすることを防ぎます。
  • ユーザーを削除します。

ロールプロモーション保留中のユーザーの表示

ロールのプロモーションに対する管理者の承認が有効になっている場合、既存のユーザーを請求対象のロールにプロモートするメンバーシップリクエストには、管理者による承認が必要です。

ロールプロモーション保留中のユーザーを表示するには:

  1. 左側のサイドバーの下部で、管理者を選択します。
  2. 概要 > ユーザーを選択します。
  3. ロールの昇格を選択します。

要求された最高のロールを持つユーザーのリストが表示されます。リクエストを承認するまたは拒否できます。

ブロックとブロック解除のユーザー

GitLab管理者は、ユーザーをブロックおよびブロック解除できます。ユーザーにインスタンスへのアクセスを許可したくないが、データを保持したい場合は、ユーザーをブロックする必要があります。

ブロックされたユーザー:

  • サインインまたはリポジトリへのアクセスはできません。
    • 関連するデータはこれらのリポジトリに残ります。
  • スラッシュコマンドは使用できません。
  • シートを占有しません。

ユーザーをブロック

前提要件:

  • インスタンスの管理者である。

ユーザーのインスタンスへのアクセスをブロックできます。

ユーザーをブロックするには:

  1. 左側のサイドバーの下部で、管理者を選択します。
  2. 概要 > ユーザーを選択します。
  3. ブロックするユーザーについて、縦方向の省略記号( ellipsis_v )を選択し、ブロックを選択します。

他のユーザーからのレポートについては、不正行為のレポートを参照してください。管理者エリアでの不正行為レポートの詳細については、不正行為レポートの解決を参照してください。

ユーザーのブロック解除

ブロックされたユーザーは、管理者エリアからブロック解除できます。これを行うには、次の手順を実行します:

  1. 左側のサイドバーの下部で、管理者を選択します。
  2. 概要 > ユーザーを選択します。
  3. 検索ボックスで、State=Blocked(State=Blocked)でフィルタリングし、Enterを押します。
  4. ブロック解除するユーザーについて、縦方向の省略記号( ellipsis_v )を選択し、ブロック解除を選択します。

ユーザーの状態はアクティブに設定され、シートを消費します。

ユーザーは、GitLab APIを使用してブロック解除することもできます。

ブロック解除オプションは、LDAPユーザーでは使用できない場合があります。ブロック解除オプションを有効にするには、最初にLDAP識別子を削除する必要があります:

  1. 左側のサイドバーの下部で、管理者を選択します。
  2. 概要 > ユーザーを選択します。
  3. 検索ボックスで、State=Blocked(State=Blocked)でフィルタリングし、Enterを押します。
  4. ユーザーを選択します。
  5. 識別子タブを選択します。
  6. LDAPプロバイダーを見つけて、削除を選択します。

ユーザーの非アクティブ化と再アクティブ化

GitLab管理者は、ユーザーを非アクティブ化および再アクティブ化できます。最近アクティビティーがなく、インスタンスでシートを占有させたくない場合は、ユーザーを非アクティブ化する必要があります。

非アクティブ化されたユーザー:

  • GitLabにサインインできます。
    • 非アクティブ化されたユーザーがサインインすると、自動的に再アクティブ化されます。
  • リポジトリまたはAPIにアクセスできません。
  • スラッシュコマンドを使用できません。詳細については、スラッシュコマンドを参照してください。
  • シートを占有しません。詳細については、請求対象ユーザーを参照してください。

ユーザーを非アクティブ化すると、プロジェクト、グループ、および履歴が保持されます。

ユーザーを非アクティブ化

前提要件:

  • ユーザーは過去90日間アクティビティーがありません。

ユーザーを非アクティブ化するには:

  1. 左側のサイドバーの下部で、管理者を選択します。
  2. 概要 > ユーザーを選択します。
  3. 非アクティブ化するユーザーについて、縦方向の省略記号( ellipsis_v )を選択し、無効にするを選択します。
  4. ダイアログで、無効にするを選択します。

ユーザーは、アカウントが非アクティブ化されたというメール通知を受信します。このメールの通知を受信しなくなります。詳細については、ユーザーの非アクティブ化メールを参照してください。

GitLab APIを使用してユーザーを非アクティブ化するには、ユーザーの非アクティブ化を参照してください。ユーザーの永続的な制限については、ブロックとブロック解除のユーザーを参照してください。

GitLab.comサブスクリプションからユーザーを削除するには、サブスクリプションからのユーザーの削除を参照してください。

休止中のユーザーを自動的に非アクティブ化

管理者は、次のいずれかに該当するユーザーの自動非アクティブ化を有効にできます:

  • 1週間以上前に作成され、サインインしていない。
  • 指定された期間(デフォルトおよび最小値は90日)アクティビティーがない。

これを行うには、次の手順を実行します:

  1. 左側のサイドバーの下部で、管理者を選択します。
  2. 設定 > 一般を選択します。
  3. アカウントと制限セクションを展開します。
  4. 休止中のユーザーで、非アクティブな期間後に休眠ユーザーを非アクティブ化するをオンにします。
  5. アクティブ解除前の非アクティブ期間で、アクティブ解除までの日数を入力します。最小値は90日です。
  6. 変更を保存を選択します。

この機能が有効になっている場合、GitLabは毎日のジョブを実行して、休止中のユーザーを非アクティブ化します。

1日に最大100,000人のユーザーを非アクティブ化できます。

デフォルトでは、ユーザーはアカウントが非アクティブ化されると、メール通知を受信します。ユーザーの非アクティブ化メールを無効にできます。

GitLabで生成されたボットは、休止中のユーザーの自動非アクティブ化から除外されます。

未確認のユーザーを自動的に削除する

  • プラン: Premium、Ultimate
  • 提供形態: GitLab Self-Managed

前提要件:

  • 管理者である必要があります。

次の両方に該当するユーザーの自動削除を有効にできます:

  • メールアドレスを確認しなかった。
  • 過去に指定された日数を超えてGitLabにサインアップしました。

これらの設定は、設定APIまたはRailsコンソールで構成できます:

 Gitlab::CurrentSettings.update(delete_unconfirmed_users: true)
 Gitlab::CurrentSettings.update(unconfirmed_users_delete_after_days: 365)

delete_unconfirmed_users設定が有効になっている場合、GitLabは1時間に1回ジョブを実行して、未確認のユーザーを削除します。このジョブは、unconfirmed_users_delete_after_days日以上前にサインアップしたユーザーのみを削除します。

このジョブは、email_confirmation_settingsoftまたはhardに設定されている場合にのみ実行されます。

1日に最大240,000人のユーザーを削除できます。

ユーザーを再アクティブ化

非アクティブ化されたユーザーは、管理者エリアから再アクティブ化できます。

これを行うには、次の手順を実行します:

  1. 左側のサイドバーの下部で、管理者を選択します。
  2. 概要 > ユーザーを選択します。
  3. 検索ボックスで、State=Deactivated(State=Deactivated)でフィルタリングし、Enterを押します。
  4. 再アクティブ化するユーザーについて、縦方向の省略記号( ellipsis_v )を選択し、アクティブ化を選択します。

ユーザーの状態はアクティブに設定され、シートを消費します。

非アクティブ化されたユーザーは、ユーザーインターフェースから再度ログインすることで、自分でアカウントを再アクティブ化することもできます。ユーザーは、GitLab APIを使用して再アクティブ化することもできます。

ユーザーのBANとBAN

GitLab管理者は、ユーザーをBANおよびBANできます。ユーザーをブロックし、アクティビティーをインスタンスから非表示にする場合は、ユーザーをBANする必要があります。

BANされたユーザー:

  • サインインまたはリポジトリへのアクセスはできません。
    • 関連するプロジェクト、イシュー、マージリクエスト、またはコメントは非表示になります。
  • スラッシュコマンドは使用できません。
  • シートを占有しません。

ユーザーをBAN

ユーザーをブロックし、コントリビュートを非表示にするために、管理者はユーザーをBANできます。

ユーザーをBANするには:

  1. 左側のサイドバーの下部で、管理者を選択します。
  2. 概要 > ユーザーを選択します。
  3. BANするメンバーの横にある縦方向の省略記号( ellipsis_v )を選択します。
  4. ドロップダウンリストから、メンバーをBANを選択します。

ユーザーのBAN

ユーザーのBANを解除するには:

  1. 左側のサイドバーの下部で、管理者を選択します。
  2. 概要 > ユーザーを選択します。
  3. 検索ボックスで、State=Banned(State=Banned)でフィルタリングし、Enterを押します。
  4. BANするメンバーの横にある縦方向の省略記号( ellipsis_v )を選択します。
  5. ドロップダウンリストから、Unban member(メンバーをBAN)を選択します。

ユーザーの状態はアクティブに設定され、シートを消費します。

ユーザーを削除する

管理者エリアを使用して、ユーザーを削除します。

  1. 左側のサイドバーの下部で、管理者を選択します。
  2. 概要 > ユーザーを選択します。
  3. 削除するユーザーについて、縦方向の省略記号( ellipsis_v )を選択し、ユーザーを削除を選択します。
  4. ユーザー名を入力します。
  5. ユーザーを削除を選択します。

ユーザーを削除できるのは、グループの継承されたオーナーまたは直接のオーナーがいる場合のみです。ユーザーが唯一のグループオーナーである場合は、ユーザーを削除できません。

ユーザーとそのコントリビュート(マージリクエスト、イシュー、および唯一のグループオーナーであるグループなど)を削除することもできます。

  1. 左側のサイドバーの下部で、管理者を選択します。
  2. 概要 > ユーザーを選択します。
  3. 削除するユーザーについて、縦方向の省略記号( ellipsis_v )を選択し、ユーザーとコントリビュートを削除を選択します。
  4. ユーザー名を入力します。
  5. ユーザーとコントリビュートを削除を選択します。

15.1より前は、削除されたユーザーが直接のメンバーの中で唯一のオーナーであったグループも削除されていました。

ユーザーの信頼と信頼の解除

ユーザーの信頼と信頼の解除は、管理者エリアから行うことができます。

デフォルトでは、ユーザーは信頼されておらず、スパムと見なされるイシュー、ノート、およびスニペットの作成をブロックされています。ユーザーを信頼すると、イシュー、ノート、スニペットをブロックされずに作成できます。

前提要件:

  • 管理者である必要があります。
  1. 左側のサイドバーの下部で、管理者を選択します。
  2. 概要 > ユーザーを選択します。
  3. ユーザーを選択します。
  4. ユーザー管理ドロップダウンリストから、ユーザーを信頼するを選択します。
  5. 確認ダイアログで、ユーザーを信頼するを選択します。

ユーザーは信頼されます。

  1. 左側のサイドバーの下部で、管理者を選択します。
  2. 概要 > ユーザーを選択します。
  3. 検索ボックスでState=Trusted(State=Trusted)でフィルタリングし、Enterを押します。
  4. ユーザーを選択します。
  5. ユーザー管理ドロップダウンリストから、ユーザーの信用を解除を選択します。
  6. 確認ダイアログで、ユーザーの信用を解除を選択します。

ユーザーの信頼が解除されます。

トラブルシューティング

  • 提供形態: GitLab Self-Managed

ユーザーをモデレートする場合、特定の条件に基づいて、ユーザーに対して一括操作を実行する必要がある場合があります。次のRailsコンソールスクリプトに、その例をいくつか示します。Railsコンソールセッションを開始し、次のようなスクリプトを使用できます:

最近アクティビティーのないユーザーを非アクティブ化

管理者は、最近アクティビティーのないユーザーを非アクティブ化できます。

データを変更するコマンドは、正しく実行されなかった場合、または適切な条件下で実行されなかった場合、損害を与える可能性があります。最初にテスト環境でコマンドを実行し、復元できるバックアップインスタンスを準備してください。

days_inactive = 90
inactive_users = User.active.where("last_activity_on <= ?", days_inactive.days.ago)

inactive_users.each do |user|
    puts "user '#{user.username}': #{user.last_activity_on}"
    user.deactivate!
end

最近アクティビティーのないユーザーをブロック

管理者は、最近アクティビティーのないユーザーをブロックできます。

データを変更するコマンドは、正しく実行されなかった場合、または適切な条件下で実行されなかった場合、損害を与える可能性があります。最初にテスト環境でコマンドを実行し、復元できるバックアップインスタンスを準備してください。

days_inactive = 90
inactive_users = User.active.where("last_activity_on <= ?", days_inactive.days.ago)

inactive_users.each do |user|
    puts "user '#{user.username}': #{user.last_activity_on}"
    user.block!
end

プロジェクトまたはグループを持たないユーザーをブロックまたは削除

管理者は、プロジェクトまたはグループを持たないユーザーをブロックまたは削除できます。

データを変更するコマンドは、正しく実行されなかった場合、または適切な条件下で実行されなかった場合、損害を与える可能性があります。最初にテスト環境でコマンドを実行し、復元できるバックアップインスタンスを準備してください。

users = User.where('id NOT IN (select distinct(user_id) from project_authorizations)')

# How many users are removed?
users.count

# If that count looks sane:

# You can either block the users:
users.each { |user|  user.blocked? ? nil  : user.block! }

# Or you can delete them:
  # need 'current user' (your user) for auditing purposes
current_user = User.find_by(username: '<your username>')

users.each do |user|
  DeleteUserWorker.perform_async(current_user.id, user.id)
end