Skip to content

Commit 787a962

Browse files
authored
Merge pull request #1145 from traPtitech/fix/add_admins_nilpointer
admin追加時のぬるぽ修正
2 parents 141139e + 2b83fb8 commit 787a962

File tree

2 files changed

+20
-4
lines changed

2 files changed

+20
-4
lines changed

src/service/v2/admin_auth.go

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,8 @@ func (aa *AdminAuth) AddAdmin(ctx context.Context, session *domain.OIDCSession,
4040
for _, activeUser := range activeUsers {
4141
activeUsersMap[activeUser.GetID()] = activeUser
4242
}
43-
if _, ok := activeUsersMap[userID]; !ok {
43+
newAdminInfo, ok := activeUsersMap[userID]
44+
if !ok {
4445
return service.ErrInvalidUserID
4546
}
4647

@@ -62,11 +63,13 @@ func (aa *AdminAuth) AddAdmin(ctx context.Context, session *domain.OIDCSession,
6263

6364
adminInfos = make([]*service.UserInfo, 0, len(adminIDs)+1)
6465
for _, adminID := range adminIDs {
65-
if activeUsersMap[adminID].GetStatus() == values.TrapMemberStatusActive {
66-
adminInfos = append(adminInfos, activeUsersMap[adminID])
66+
activeAdmin, ok := activeUsersMap[adminID]
67+
if !ok {
68+
continue
6769
}
70+
adminInfos = append(adminInfos, activeAdmin)
6871
}
69-
adminInfos = append(adminInfos, activeUsersMap[userID])
72+
adminInfos = append(adminInfos, newAdminInfo)
7073
return nil
7174
})
7275

src/service/v2/admin_auth_test.go

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ func TestAddAdmin(t *testing.T) {
5454
userID1 := values.NewTrapMemberID(uuid.New())
5555
userID2 := values.NewTrapMemberID(uuid.New())
5656
userID3 := values.NewTrapMemberID(uuid.New())
57+
userID4 := values.NewTrapMemberID(uuid.New()) // 凍結済みユーザー
5758

5859
userInfo1 := service.NewUserInfo(userID1, "ikura-hamu", values.TrapMemberStatusActive)
5960
userInfo2 := service.NewUserInfo(userID2, "mazrean", values.TrapMemberStatusActive)
@@ -74,6 +75,18 @@ func TestAddAdmin(t *testing.T) {
7475
executeAddAdmin: true,
7576
expectedAdmins: []*service.UserInfo{userInfo2, userInfo1},
7677
},
78+
{
79+
description: "GetAdminsの結果に凍結済みユーザーがいてもエラー無し",
80+
authSession: domain.NewOIDCSession(
81+
"access token",
82+
time.Now().Add(time.Hour),
83+
),
84+
userID: userID1,
85+
executeGetAdmins: true,
86+
beforeAdmins: []values.TraPMemberID{userID2, userID4},
87+
executeAddAdmin: true,
88+
expectedAdmins: []*service.UserInfo{userInfo2, userInfo1},
89+
},
7790
{
7891
description: "全ユーザーの取得に失敗したのでエラー",
7992
authSession: domain.NewOIDCSession(

0 commit comments

Comments
 (0)