@@ -613,6 +613,44 @@ func uniqueSortedUUIDs(uuids []uuid.UUID) []uuid.UUID {
613613 return unique
614614}
615615
616+ func (q * FakeQuerier ) getOrganizationMember (orgID uuid.UUID ) []database.OrganizationMember {
617+ var members []database.OrganizationMember
618+ for _ , member := range q .organizationMembers {
619+ if member .OrganizationID == orgID {
620+ members = append (members , member )
621+ }
622+ }
623+
624+ return members
625+ }
626+
627+ // getEveryoneGroupMembers fetches all the users in an organization.
628+ func (q * FakeQuerier ) getEveryoneGroupMembers (orgID uuid.UUID ) []database.User {
629+ var (
630+ everyone []database.User
631+ orgMembers = q .getOrganizationMember (orgID )
632+ )
633+ for _ , member := range orgMembers {
634+ user , err := q .GetUserByID (context .TODO (), member .UserID )
635+ if err != nil {
636+ return nil
637+ }
638+ everyone = append (everyone , user )
639+ }
640+ return everyone
641+ }
642+
643+ // isEveryoneGroup returns true if the provided ID matches
644+ // an organization ID.
645+ func (q * FakeQuerier ) isEveryoneGroup (id uuid.UUID ) bool {
646+ for _ , org := range q .organizations {
647+ if org .ID == id {
648+ return true
649+ }
650+ }
651+ return false
652+ }
653+
616654func (* FakeQuerier ) AcquireLock (_ context.Context , _ int64 ) error {
617655 return xerrors .New ("AcquireLock must only be called within a transaction" )
618656}
@@ -1378,13 +1416,17 @@ func (q *FakeQuerier) GetGroupByOrgAndName(_ context.Context, arg database.GetGr
13781416 return database.Group {}, sql .ErrNoRows
13791417}
13801418
1381- func (q * FakeQuerier ) GetGroupMembers (_ context.Context , groupID uuid.UUID ) ([]database.User , error ) {
1419+ func (q * FakeQuerier ) GetGroupMembers (_ context.Context , id uuid.UUID ) ([]database.User , error ) {
13821420 q .mutex .RLock ()
13831421 defer q .mutex .RUnlock ()
13841422
1423+ if q .isEveryoneGroup (id ) {
1424+ return q .getEveryoneGroupMembers (id ), nil
1425+ }
1426+
13851427 var members []database.GroupMember
13861428 for _ , member := range q .groupMembers {
1387- if member .GroupID == groupID {
1429+ if member .GroupID == id {
13881430 members = append (members , member )
13891431 }
13901432 }
@@ -1403,14 +1445,13 @@ func (q *FakeQuerier) GetGroupMembers(_ context.Context, groupID uuid.UUID) ([]d
14031445 return users , nil
14041446}
14051447
1406- func (q * FakeQuerier ) GetGroupsByOrganizationID (_ context.Context , organizationID uuid.UUID ) ([]database.Group , error ) {
1448+ func (q * FakeQuerier ) GetGroupsByOrganizationID (_ context.Context , id uuid.UUID ) ([]database.Group , error ) {
14071449 q .mutex .RLock ()
14081450 defer q .mutex .RUnlock ()
14091451
1410- var groups []database.Group
1452+ groups := make ( []database.Group , 0 , len ( q . groups ))
14111453 for _ , group := range q .groups {
1412- // Omit the allUsers group.
1413- if group .OrganizationID == organizationID && group .ID != organizationID {
1454+ if group .OrganizationID == id {
14141455 groups = append (groups , group )
14151456 }
14161457 }
@@ -1840,9 +1881,17 @@ func (q *FakeQuerier) GetQuotaAllowanceForUser(_ context.Context, userID uuid.UU
18401881 for _ , group := range q .groups {
18411882 if group .ID == member .GroupID {
18421883 sum += int64 (group .QuotaAllowance )
1884+ continue
18431885 }
18441886 }
18451887 }
1888+ // Grab the quota for the Everyone group.
1889+ for _ , group := range q .groups {
1890+ if group .ID == group .OrganizationID {
1891+ sum += int64 (group .QuotaAllowance )
1892+ break
1893+ }
1894+ }
18461895 return sum , nil
18471896}
18481897
@@ -3548,7 +3597,7 @@ func (q *FakeQuerier) InsertAPIKey(_ context.Context, arg database.InsertAPIKeyP
35483597func (q * FakeQuerier ) InsertAllUsersGroup (ctx context.Context , orgID uuid.UUID ) (database.Group , error ) {
35493598 return q .InsertGroup (ctx , database.InsertGroupParams {
35503599 ID : orgID ,
3551- Name : database .AllUsersGroup ,
3600+ Name : database .EveryoneGroup ,
35523601 DisplayName : "" ,
35533602 OrganizationID : orgID ,
35543603 })
0 commit comments