Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Client ¶
type Client struct { Client GoCloak Realm string // LoginRealm is used for the client to authenticate against keycloak. If not set Realm is used. LoginRealm string Username string Password string // RootGroup, if set, transparently manages groups under given root group. // Searches and puts groups under the given root group and strips the root group from the return values. // The root group must exist in Keycloak. RootGroup string }
Client interacts with the Keycloak API
func (Client) DeleteGroup ¶
DeleteGroup deletes the Keycloak group by name. The method is idempotent and will not do anything if the group does not exits.
func (Client) ListGroups ¶
ListGroups returns all Keycloak groups in the realm. This is potentially very expensive, as it needs to iterate over all groups to get their members.
type ErrEvent ¶
type ErrEvent string
ErrEvent is the reason this error was thrown. It should be short and unique, imagine people writing switch statements to handle them.
var UserAddError ErrEvent = "AddUserFailed"
UserAddError indicates that the client was unable to add the user to the group
var UserRemoveError ErrEvent = "RemoveUserFailed"
UserRemoveError indicates that the client was unable to remove the user from the group
type GoCloak ¶
type GoCloak interface { LoginAdmin(ctx context.Context, username, password, realm string) (*gocloak.JWT, error) LogoutUserSession(ctx context.Context, accessToken, realm, session string) error CreateGroup(ctx context.Context, accessToken, realm string, group gocloak.Group) (string, error) CreateChildGroup(ctx context.Context, accessToken, realm, groupID string, group gocloak.Group) (string, error) GetGroups(ctx context.Context, accessToken, realm string, params gocloak.GetGroupsParams) ([]*gocloak.Group, error) DeleteGroup(ctx context.Context, accessToken, realm, groupID string) error GetGroupMembers(ctx context.Context, accessToken, realm, groupID string, params gocloak.GetGroupsParams) ([]*gocloak.User, error) GetUsers(ctx context.Context, accessToken, realm string, params gocloak.GetUsersParams) ([]*gocloak.User, error) AddUserToGroup(ctx context.Context, token, realm, userID, groupID string) error DeleteUserFromGroup(ctx context.Context, token, realm, userID, groupID string) error }
GoCloak is the subset of methods of the humongous gocloak.GoCloak interface that we actually need. This keeps the mock at a more reasonable size
type Group ¶
type Group struct { Members []string // contains filtered or unexported fields }
Group is a representation of a group in keycloak
func NewGroupFromPath ¶ added in v0.2.0
NewGroupFromPath creates a new group.
func (Group) PathMembers ¶ added in v0.2.0
PathMembers returns the split path of the group.
func (Group) WithMembers ¶ added in v0.2.0
WithMembers returns a copy of the group with given members added.
type MembershipSyncError ¶
MembershipSyncError is a custom error indicating the failure of syncing the membership of a single user.
func (MembershipSyncError) Error ¶
func (err MembershipSyncError) Error() string
type MembershipSyncErrors ¶
type MembershipSyncErrors []MembershipSyncError
MembershipSyncErrors is a cusom error that can be used to indicate that the client failed to sync one or more memberships.
func (*MembershipSyncErrors) Error ¶
func (errs *MembershipSyncErrors) Error() string