Skip to content

Commit

Permalink
Update graph api to 0.4.1
Browse files Browse the repository at this point in the history
  • Loading branch information
micbar committed Dec 15, 2021
1 parent 33d418f commit 2fe4a03
Show file tree
Hide file tree
Showing 6 changed files with 58 additions and 70 deletions.
5 changes: 5 additions & 0 deletions changelog/unreleased/update-graph-api.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
Change: Update the graph api

GraphApi has been updated to version 0.4.1 and the existing dependency was removed

https://github.com/owncloud/ocis/pull/2885
4 changes: 2 additions & 2 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ require (
github.com/olekukonko/tablewriter v0.0.5
github.com/onsi/ginkgo v1.16.5
github.com/onsi/gomega v1.17.0
github.com/owncloud/libre-graph-api-go v0.3.0
github.com/owncloud/libre-graph-api-go v0.4.1
github.com/pkg/errors v0.9.1
github.com/prometheus/client_golang v1.11.0
github.com/rs/zerolog v1.26.0
Expand All @@ -55,7 +55,6 @@ require (
github.com/stretchr/testify v1.7.0
github.com/thejerf/suture/v4 v4.0.1
github.com/urfave/cli/v2 v2.3.0
github.com/yaegashi/msgraph.go v0.1.4
go-micro.dev/v4 v4.4.0
go.opencensus.io v0.23.0
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.28.0
Expand Down Expand Up @@ -218,6 +217,7 @@ require (
github.com/tus/tusd v1.6.0 // indirect
github.com/wk8/go-ordered-map v0.2.0 // indirect
github.com/xanzy/ssh-agent v0.3.1 // indirect
github.com/yaegashi/msgraph.go v0.1.4 // indirect
go.etcd.io/bbolt v1.3.6 // indirect
go.etcd.io/etcd/api/v3 v3.5.1 // indirect
go.etcd.io/etcd/client/pkg/v3 v3.5.1 // indirect
Expand Down
4 changes: 2 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -1052,8 +1052,8 @@ github.com/oracle/oci-go-sdk v24.3.0+incompatible/go.mod h1:VQb79nF8Z2cwLkLS35uk
github.com/orcaman/concurrent-map v0.0.0-20210501183033-44dafcb38ecc h1:Ak86L+yDSOzKFa7WM5bf5itSOo1e3Xh8bm5YCMUXIjQ=
github.com/orcaman/concurrent-map v0.0.0-20210501183033-44dafcb38ecc/go.mod h1:Lu3tH6HLW3feq74c2GC+jIMS/K2CFcDWnWD9XkenwhI=
github.com/ovh/go-ovh v1.1.0/go.mod h1:AxitLZ5HBRPyUd+Zl60Ajaag+rNTdVXWIkzfrVuTXWA=
github.com/owncloud/libre-graph-api-go v0.3.0 h1:CjSWuL6Gd+HgIlZfBLjYTloH1F/8naxaL5xZZz4N+ms=
github.com/owncloud/libre-graph-api-go v0.3.0/go.mod h1:dOt7+kXldpyUGBFdfFBs6PbWElqqa2/Q5+pMF9izL3w=
github.com/owncloud/libre-graph-api-go v0.4.1 h1:B0y57Em+MEge1EQMCbvOtQS0WxqlaY3qzWPZ8roBNd8=
github.com/owncloud/libre-graph-api-go v0.4.1/go.mod h1:dOt7+kXldpyUGBFdfFBs6PbWElqqa2/Q5+pMF9izL3w=
github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c h1:rp5dCmg/yLR3mgFuSOe4oEnDDmGLROTvMragMUXpTQw=
github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c/go.mod h1:X07ZCGwUbLaax7L0S3Tw4hpejzu63ZrrQiUe6W0hcy0=
github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=
Expand Down
33 changes: 11 additions & 22 deletions graph/pkg/identity/backend.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,36 +5,25 @@ import (
"net/url"

cs3 "github.com/cs3org/go-cs3apis/cs3/identity/user/v1beta1"
msgraph "github.com/yaegashi/msgraph.go/beta"
libregraph "github.com/owncloud/libre-graph-api-go"
)

type Backend interface {
GetUser(ctx context.Context, nameOrId string) (*msgraph.User, error)
GetUsers(ctx context.Context, queryParam url.Values) ([]*msgraph.User, error)
GetUser(ctx context.Context, nameOrId string) (*libregraph.User, error)
GetUsers(ctx context.Context, queryParam url.Values) ([]*libregraph.User, error)

GetGroup(ctx context.Context, nameOrId string) (*msgraph.Group, error)
GetGroups(ctx context.Context, queryParam url.Values) ([]*msgraph.Group, error)
GetGroup(ctx context.Context, nameOrId string) (*libregraph.Group, error)
GetGroups(ctx context.Context, queryParam url.Values) ([]*libregraph.Group, error)
}

func CreateUserModelFromCS3(u *cs3.User) *msgraph.User {
func CreateUserModelFromCS3(u *cs3.User) *libregraph.User {
if u.Id == nil {
u.Id = &cs3.UserId{}
}
return &msgraph.User{
DisplayName: &u.DisplayName,
Mail: &u.Mail,
// TODO u.Groups are those ids or group names?
OnPremisesSamAccountName: &u.Username,
DirectoryObject: msgraph.DirectoryObject{
Entity: msgraph.Entity{
ID: &u.Id.OpaqueId,
Object: msgraph.Object{
AdditionalData: map[string]interface{}{
"uidnumber": u.UidNumber,
"gidnumber": u.GidNumber,
},
},
},
},
return &libregraph.User{
DisplayName: &u.DisplayName,
Mail: &u.Mail,
OnPremisesSamAccountName: *libregraph.NewNullableString(&u.Username),
Id: &u.Id.OpaqueId,
}
}
32 changes: 14 additions & 18 deletions graph/pkg/identity/cs3.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import (
cs3user "github.com/cs3org/go-cs3apis/cs3/identity/user/v1beta1"
cs3rpc "github.com/cs3org/go-cs3apis/cs3/rpc/v1beta1"
"github.com/cs3org/reva/pkg/rgrpc/todo/pool"
msgraph "github.com/yaegashi/msgraph.go/beta"
libregraph "github.com/owncloud/libre-graph-api-go"

"github.com/owncloud/ocis/graph/pkg/config"
"github.com/owncloud/ocis/graph/pkg/service/v0/errorcode"
Expand All @@ -20,7 +20,7 @@ type CS3 struct {
Logger *log.Logger
}

func (i *CS3) GetUser(ctx context.Context, userID string) (*msgraph.User, error) {
func (i *CS3) GetUser(ctx context.Context, userID string) (*libregraph.User, error) {
client, err := pool.GetGatewayServiceClient(i.Config.Address)
if err != nil {
i.Logger.Error().Err(err).Msg("could not get client")
Expand All @@ -46,7 +46,7 @@ func (i *CS3) GetUser(ctx context.Context, userID string) (*msgraph.User, error)
return CreateUserModelFromCS3(res.User), nil
}

func (i *CS3) GetUsers(ctx context.Context, queryParam url.Values) ([]*msgraph.User, error) {
func (i *CS3) GetUsers(ctx context.Context, queryParam url.Values) ([]*libregraph.User, error) {
client, err := pool.GetGatewayServiceClient(i.Config.Address)
if err != nil {
i.Logger.Error().Err(err).Msg("could not get client")
Expand Down Expand Up @@ -75,7 +75,7 @@ func (i *CS3) GetUsers(ctx context.Context, queryParam url.Values) ([]*msgraph.U
return nil, errorcode.New(errorcode.GeneralException, res.Status.Message)
}

users := make([]*msgraph.User, 0, len(res.Users))
users := make([]*libregraph.User, 0, len(res.Users))

for _, user := range res.Users {
users = append(users, CreateUserModelFromCS3(user))
Expand All @@ -84,7 +84,7 @@ func (i *CS3) GetUsers(ctx context.Context, queryParam url.Values) ([]*msgraph.U
return users, nil
}

func (i *CS3) GetGroups(ctx context.Context, queryParam url.Values) ([]*msgraph.Group, error) {
func (i *CS3) GetGroups(ctx context.Context, queryParam url.Values) ([]*libregraph.Group, error) {
client, err := pool.GetGatewayServiceClient(i.Config.Address)
if err != nil {
i.Logger.Error().Err(err).Msg("could not get client")
Expand Down Expand Up @@ -114,7 +114,7 @@ func (i *CS3) GetGroups(ctx context.Context, queryParam url.Values) ([]*msgraph.
return nil, errorcode.New(errorcode.GeneralException, res.Status.Message)
}

groups := make([]*msgraph.Group, 0, len(res.Groups))
groups := make([]*libregraph.Group, 0, len(res.Groups))

for _, group := range res.Groups {
groups = append(groups, createGroupModelFromCS3(group))
Expand All @@ -123,7 +123,7 @@ func (i *CS3) GetGroups(ctx context.Context, queryParam url.Values) ([]*msgraph.
return groups, nil
}

func (i *CS3) GetGroup(ctx context.Context, groupID string) (*msgraph.Group, error) {
func (i *CS3) GetGroup(ctx context.Context, groupID string) (*libregraph.Group, error) {
client, err := pool.GetGatewayServiceClient(i.Config.Address)
if err != nil {
i.Logger.Error().Err(err).Msg("could not get client")
Expand All @@ -150,20 +150,16 @@ func (i *CS3) GetGroup(ctx context.Context, groupID string) (*msgraph.Group, err
return createGroupModelFromCS3(res.Group), nil
}

func createGroupModelFromCS3(g *cs3group.Group) *msgraph.Group {
func createGroupModelFromCS3(g *cs3group.Group) *libregraph.Group {
if g.Id == nil {
g.Id = &cs3group.GroupId{}
}
return &msgraph.Group{
DirectoryObject: msgraph.DirectoryObject{
Entity: msgraph.Entity{
ID: &g.Id.OpaqueId,
},
},
OnPremisesDomainName: &g.Id.Idp,
OnPremisesSamAccountName: &g.GroupName,
DisplayName: &g.DisplayName,
Mail: &g.Mail,
return &libregraph.Group{
Id: &g.Id.OpaqueId,
OnPremisesDomainName: *libregraph.NewNullableString(&g.Id.Idp),
OnPremisesSamAccountName: *libregraph.NewNullableString(&g.GroupName),
DisplayName: *libregraph.NewNullableString(&g.DisplayName),
Mail: *libregraph.NewNullableString(&g.Mail),
// TODO when to fetch and expand memberof, usernames or ids?
}
}
50 changes: 24 additions & 26 deletions graph/pkg/identity/ldap.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import (
"net/url"

"github.com/go-ldap/ldap/v3"
msgraph "github.com/yaegashi/msgraph.go/beta"
libregraph "github.com/owncloud/libre-graph-api-go"

"github.com/owncloud/ocis/graph/pkg/config"
"github.com/owncloud/ocis/graph/pkg/service/v0/errorcode"
Expand Down Expand Up @@ -84,7 +84,7 @@ func NewLDAPBackend(lc ldap.Client, config config.LDAP, logger *log.Logger) (*LD
}, nil
}

func (i *LDAP) GetUser(ctx context.Context, userID string) (*msgraph.User, error) {
func (i *LDAP) GetUser(ctx context.Context, userID string) (*libregraph.User, error) {
i.logger.Debug().Str("backend", "ldap").Msg("GetUser")
userID = ldap.EscapeFilter(userID)
searchRequest := ldap.NewSearchRequest(
Expand Down Expand Up @@ -118,7 +118,7 @@ func (i *LDAP) GetUser(ctx context.Context, userID string) (*msgraph.User, error
return i.createUserModelFromLDAP(res.Entries[0]), nil
}

func (i *LDAP) GetUsers(ctx context.Context, queryParam url.Values) ([]*msgraph.User, error) {
func (i *LDAP) GetUsers(ctx context.Context, queryParam url.Values) ([]*libregraph.User, error) {
i.logger.Debug().Str("backend", "ldap").Msg("GetUsers")

search := queryParam.Get("search")
Expand Down Expand Up @@ -153,15 +153,15 @@ func (i *LDAP) GetUsers(ctx context.Context, queryParam url.Values) ([]*msgraph.
return nil, errorcode.New(errorcode.ItemNotFound, err.Error())
}

users := make([]*msgraph.User, 0, len(res.Entries))
users := make([]*libregraph.User, 0, len(res.Entries))

for _, e := range res.Entries {
users = append(users, i.createUserModelFromLDAP(e))
}
return users, nil
}

func (i *LDAP) GetGroup(ctx context.Context, groupID string) (*msgraph.Group, error) {
func (i *LDAP) GetGroup(ctx context.Context, groupID string) (*libregraph.Group, error) {
i.logger.Debug().Str("backend", "ldap").Msg("GetGroup")
groupID = ldap.EscapeFilter(groupID)
searchRequest := ldap.NewSearchRequest(
Expand Down Expand Up @@ -193,7 +193,7 @@ func (i *LDAP) GetGroup(ctx context.Context, groupID string) (*msgraph.Group, er
return i.createGroupModelFromLDAP(res.Entries[0]), nil
}

func (i *LDAP) GetGroups(ctx context.Context, queryParam url.Values) ([]*msgraph.Group, error) {
func (i *LDAP) GetGroups(ctx context.Context, queryParam url.Values) ([]*libregraph.Group, error) {
i.logger.Debug().Str("backend", "ldap").Msg("GetGroups")

search := queryParam.Get("search")
Expand Down Expand Up @@ -225,39 +225,37 @@ func (i *LDAP) GetGroups(ctx context.Context, queryParam url.Values) ([]*msgraph
return nil, errorcode.New(errorcode.ItemNotFound, err.Error())
}

groups := make([]*msgraph.Group, 0, len(res.Entries))
groups := make([]*libregraph.Group, 0, len(res.Entries))

for _, e := range res.Entries {
groups = append(groups, i.createGroupModelFromLDAP(e))
}
return groups, nil
}

func (i *LDAP) createUserModelFromLDAP(e *ldap.Entry) *msgraph.User {
func (i *LDAP) createUserModelFromLDAP(e *ldap.Entry) *libregraph.User {
if e == nil {
return nil
}
return &msgraph.User{
DisplayName: pointerOrNil(e.GetEqualFoldAttributeValue(i.userAttributeMap.displayName)),
Mail: pointerOrNil(e.GetEqualFoldAttributeValue(i.userAttributeMap.mail)),
OnPremisesSamAccountName: pointerOrNil(e.GetEqualFoldAttributeValue(i.userAttributeMap.userName)),
DirectoryObject: msgraph.DirectoryObject{
Entity: msgraph.Entity{
ID: pointerOrNil(e.GetEqualFoldAttributeValue(i.userAttributeMap.id)),
},
},
return &libregraph.User{
DisplayName: pointerOrNil(e.GetEqualFoldAttributeValue(i.userAttributeMap.displayName)),
Mail: pointerOrNil(e.GetEqualFoldAttributeValue(i.userAttributeMap.mail)),
OnPremisesSamAccountName: *libregraph.NewNullableString(
pointerOrNil(e.GetEqualFoldAttributeValue(i.userAttributeMap.userName)),
),
Id: pointerOrNil(e.GetEqualFoldAttributeValue(i.userAttributeMap.id)),
}
}

func (i *LDAP) createGroupModelFromLDAP(e *ldap.Entry) *msgraph.Group {
return &msgraph.Group{
DisplayName: pointerOrNil(e.GetEqualFoldAttributeValue(i.groupAttributeMap.name)),
OnPremisesSamAccountName: pointerOrNil(e.GetEqualFoldAttributeValue(i.groupAttributeMap.name)),
DirectoryObject: msgraph.DirectoryObject{
Entity: msgraph.Entity{
ID: pointerOrNil(e.GetEqualFoldAttributeValue(i.groupAttributeMap.id)),
},
},
func (i *LDAP) createGroupModelFromLDAP(e *ldap.Entry) *libregraph.Group {
return &libregraph.Group{
DisplayName: *libregraph.NewNullableString(
pointerOrNil(e.GetEqualFoldAttributeValue(i.groupAttributeMap.name)),
),
OnPremisesSamAccountName: *libregraph.NewNullableString(
pointerOrNil(e.GetEqualFoldAttributeValue(i.groupAttributeMap.name)),
),
Id: pointerOrNil(e.GetEqualFoldAttributeValue(i.groupAttributeMap.id)),
}
}
func pointerOrNil(val string) *string {
Expand Down

0 comments on commit 2fe4a03

Please sign in to comment.