Skip to content

Commit

Permalink
Merge branch 'main' into dependabot/go_modules/github.com/conductoron…
Browse files Browse the repository at this point in the history
…e/baton-sdk-0.2.31
  • Loading branch information
ggreer authored Oct 2, 2024
2 parents 6cd83c2 + 0381668 commit 241dca2
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 5 deletions.
8 changes: 5 additions & 3 deletions pkg/connector/group.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,16 +19,18 @@ import (
)

const (
groupFilter = "(|(objectClass=groupOfUniqueNames)(objectClass=posixGroup))"
groupIdFilter = "(&(gidNumber=%s)(|(objectClass=groupOfUniqueNames)(objectClass=posixGroup)))"
groupMemberFilter = "(&(objectClass=posixAccount)(uid=%s))"
groupObjectClasses = "(objectClass=groupOfUniqueNames)(objectClass=posixGroup)(objectClass=group)"
groupFilter = "(|" + groupObjectClasses + ")"
groupIdFilter = "(&(gidNumber=%s)(|" + groupObjectClasses + "))"
groupMemberFilter = "(&(objectClass=posixAccount)(uid=%s))"

attrGroupCommonName = "cn"
attrGroupIdPosix = "gidNumber"
attrGroupMember = "uniqueMember"
attrGroupMemberPosix = "memberUid"
attrGroupDescription = "description"

// TODO: use user "memberOf" attribute to get group membership?
groupMemberEntitlement = "member"
)

Expand Down
14 changes: 12 additions & 2 deletions pkg/connector/user.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,15 @@ import (
rs "github.com/conductorone/baton-sdk/pkg/types/resource"
"github.com/grpc-ecosystem/go-grpc-middleware/logging/zap/ctxzap"
"go.uber.org/zap"
"golang.org/x/exp/slices"

"github.com/conductorone/baton-ldap/pkg/ldap"
)

// InetOrgPerson resource structure
// https://datatracker.ietf.org/doc/html/rfc2798
const (
userFilter = "(objectClass=inetOrgPerson)"

userFilter = "(|(objectClass=inetOrgPerson)(objectClass=person)(objectClass=user)(objectClass=organizationalPerson))"
attrUserUID = "uid"
attrUserCommonName = "cn"
attrFirstName = "givenName"
Expand Down Expand Up @@ -170,6 +170,16 @@ func userResource(ctx context.Context, user *ldap.Entry) (*v2.Resource, error) {
rs.WithStatus(userStatus),
}

objectClasses := user.GetAttributeValues("objectClass")
switch {
case slices.Contains(objectClasses, "computer"):
userTraitOptions = append(userTraitOptions, rs.WithAccountType(v2.UserTrait_ACCOUNT_TYPE_SERVICE))
case slices.Contains(objectClasses, "person"):
userTraitOptions = append(userTraitOptions, rs.WithAccountType(v2.UserTrait_ACCOUNT_TYPE_HUMAN))
default:
userTraitOptions = append(userTraitOptions, rs.WithAccountType(v2.UserTrait_ACCOUNT_TYPE_UNSPECIFIED))
}

login, aliases := parseUserLogin(user)
if login != "" {
userTraitOptions = append(userTraitOptions, rs.WithUserLogin(login, aliases...))
Expand Down

0 comments on commit 241dca2

Please sign in to comment.