0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[GitLab]メンバー一覧にダイレクトメンバーが表示されない問題

Posted at

gitlabの小ネタなのですが、1時間ほど考え込んでしまった事象がありましたので、記事にしてみました。

本記事に登場するGitLabは本記事用に立ち上げた環境です。
そのため、ユーザ名および、プロジェクト名などは適当です。

悩んだこと

直面した悩みとしては、「ダイレクトメンバーの1名が表示されない」というものです。

再現した画像と手順を以下に記載します。

GitLabのグループの保守作業。親グループ(parentGroupA)配下に属する、サブグループ(subGroupB)に存在しているダイレクトメンバーの削除を以下の手順で実施していました。

まず、subGroupBのアイコンを確認し、ダイレクトメンバの人数を見たところ3人存在することを確認しました。

image.png

つづいて、subGroupBのメンバー一覧を見たところ。管理者の(私)を含めても2名しか表示されていませんでした。

image.png

冒頭に記載しました通り、3名いるはずのダイレクトメンバーが2名しか見えないという状態のご紹介でした。

結論(解決策)

グループのメンバーの一覧にあるフィルターを使い、メンバーシップ = ダイレクトを検索し、表示した結果、ダイレクトメンバーが3名分表示されました。これでメンバーを削除が無事にできました。

image.png

原因(事実からの推測)

調べたところ、taro.yamadaは、

  • サブグループ(subGroupB)でダイレクトにtaro.yamadaへ与えた権限
  • 親グループ(parentGroupA)でtaro.yamadaへ与えた権限が継承された権限※

※ 通常、GitLabで親グループの権限はそのままサブグループへ継承される

後者である親グループとして与えた権限のほうが、強権限だった。
つまり、gitlabでは、メンバーに対して重複した権限付与がなされている場合は、強権限が優先されて表示されるようだ。

裏どりのために、試しに、親グループ(parentGroupA)でtaro.yamadaへ付与している権限を、サブグループ(subGroupB)でダイレクトにtaro.yamadaへ与えている権限より下げたところ、subGroupBのメンバー一覧でtaro.yamadaが表示された。(メンバーシップ = ダイレクトで絞り込みをせずとも表示された。)

image.png

推察

GitLabのマニュアルのsubgroupsを見ると、
https://docs.gitlab.com/ee/user/group/subgroups/

You can’t give a user a role in a subgroup that is lower than the roles the user has in parent groups. To override a user’s role in a parent group, add the user to the subgroup again with a higher role.

とあるので、上記のケースが生じていること自体がレアなんだと推察される。ただし、以下に記載したように、ダイレクトメンバー付与のオペレーション次第(権限の付与の順番次第)で本事象は起きるので注意。

権限付与途中でエラーになりはじかれるケース

1、親グループ(parentGroupA)でtaro.yamadaに強権限を付与(サブグループ(subGroupB)へ継承される)
2、サブグループ(subGroupB)でtaro.yamadaに弱権限を付与
→2の時点でtaro.yamadaには既に強い権限を持っているのでダイレクトメンバとして登録できない旨のエラーが生じる

権限付与途中でエラーにならず上記のtaro.yamadaになるケース

1、親グループ(parentGroupA)でtaro.yamadaに弱権限を付与(サブグループ(subGroupB)へ継承される)
2、サブグループ(subGroupB)でtaro.yamadaに強権限を付与
3、親グループ(parentGroupA)でtaro.yamadaに2で与えた権限よりもさらに高い権限を付与(サブグループ(subGroupB)へ継承される)
4、サブグループ(subGroupB)のメンバ一覧でtaro.yamadaがダイレクトメンバとして表示されなくなる

学び

ルールなしで無暗に権限やロールを直接付与するのはやめましょう。(数年前の私に送る言葉)

環境

GitLab CE v17.6.1

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?