Skip to content

Commit

Permalink
Merge pull request #11 from integr8ly/events-config
Browse files Browse the repository at this point in the history
Adds the ability to set events config and fetch actives users
  • Loading branch information
briangallagher authored Oct 4, 2021
2 parents f08360c + ca639e4 commit be8cb25
Show file tree
Hide file tree
Showing 4 changed files with 361 additions and 209 deletions.
38 changes: 38 additions & 0 deletions pkg/common/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -952,6 +952,41 @@ func (c *Client) CreateGroupRealmRole(role *v1alpha1.KeycloakUserRole, realmName
)
}

func (c *Client) UpdateEventsConfig(realmName string, enabledEventTypes, eventsListeners []string) error {
add := map[string]interface{}{
"eventsEnabled": "true",
"eventsListeners": eventsListeners,
"enabledEventTypes": enabledEventTypes,
}
path := fmt.Sprintf("realms/%s/events/config", realmName)

return c.update(add, path, "events-config")
}

func (c *Client) ListOfActivesUsersPerRealm(realmName, dateFrom string, max int) ([]Users, error) {
filter := "type=LOGIN"
if max != 0 {
filter = fmt.Sprintf("%s&max=%d", filter, max)
}
if dateFrom != "" {
filter = fmt.Sprintf("%s&dateFrom=%s", filter, dateFrom)
}

path := fmt.Sprintf("realms/%s/events?%s", realmName, filter)
objects, err := c.list(path, "listActiveUsers", func(body []byte) (t T, e error) {
var users []Users
err := json.Unmarshal(body, &users)
return users, err
})
if err != nil {
return nil, err
}
if objects == nil {
return nil, nil
}
return objects.([]Users), err
}

func (c *Client) ListGroupRealmRoles(realmName, groupID string) ([]*v1alpha1.KeycloakUserRole, error) {
path := fmt.Sprintf("realms/%s/groups/%s/role-mappings/realm", realmName, groupID)
objects, err := c.list(path, "groupRealmRoles", func(body []byte) (t T, e error) {
Expand Down Expand Up @@ -1141,6 +1176,9 @@ type KeycloakInterface interface {
GetAuthenticatorConfig(configID, realmName string) (*v1alpha1.AuthenticatorConfig, error)
UpdateAuthenticatorConfig(authenticatorConfig *v1alpha1.AuthenticatorConfig, realmName string) error
DeleteAuthenticatorConfig(configID, realmName string) error

ListOfActivesUsersPerRealm(realmName, dateFrom string, max int) ([]Users, error)
UpdateEventsConfig(realmName string, enabledEventTypes, eventsListeners []string) error
}

//go:generate moq -out keycloakClientFactory_moq.go . KeycloakClientFactory
Expand Down
20 changes: 10 additions & 10 deletions pkg/common/keycloakClientFactory_moq.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit be8cb25

Please sign in to comment.