directory: generate user/directory.User ID in a consistent way (#944)

This commit is contained in:
Caleb Doxsey 2020-06-22 07:42:57 -06:00 committed by GitHub
parent 84dde097c7
commit f7760c413e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
13 changed files with 59 additions and 26 deletions

View file

@ -15,10 +15,14 @@ import (
"golang.org/x/oauth2"
"github.com/pomerium/pomerium/internal/grpc/databroker"
"github.com/pomerium/pomerium/internal/grpc/directory"
)
var (
// Name is the provider name.
const Name = "azure"
const (
defaultGraphHost = "graph.microsoft.com"
defaultLoginHost = "login.microsoftonline.com"
@ -122,7 +126,10 @@ func (p *Provider) UserGroups(ctx context.Context) ([]*directory.User, error) {
var users []*directory.User
for userID, groupIDs := range userIDToGroupIDs {
sort.Strings(groupIDs)
users = append(users, &directory.User{Id: userID, Groups: groupIDs})
users = append(users, &directory.User{
Id: databroker.GetUserID(Name, userID),
Groups: groupIDs,
})
}
sort.Slice(users, func(i, j int) bool {
return users[i].GetId() < users[j].GetId()

View file

@ -89,15 +89,15 @@ func Test(t *testing.T) {
assert.NoError(t, err)
assert.Equal(t, []*directory.User{
{
Id: "user-1",
Id: "azure/user-1",
Groups: []string{"admin"},
},
{
Id: "user-2",
Id: "azure/user-2",
Groups: []string{"test"},
},
{
Id: "user-3",
Id: "azure/user-3",
Groups: []string{"test"},
},
}, users)