outposts: implement general paginator for list API requests (#10619)
* outposts: implement general paginator Signed-off-by: Jens Langhammer <jens@goauthentik.io> * migrate LDAP Signed-off-by: Jens Langhammer <jens@goauthentik.io> * change main outpost refresh logic to use paginator everywhere Signed-off-by: Jens Langhammer <jens@goauthentik.io> * add comments to understand anything Signed-off-by: Jens Langhammer <jens@goauthentik.io> * actually use paginator everywhere Signed-off-by: Jens Langhammer <jens@goauthentik.io> --------- Signed-off-by: Jens Langhammer <jens@goauthentik.io>
This commit is contained in:
		| @ -11,6 +11,7 @@ import ( | ||||
| 	log "github.com/sirupsen/logrus" | ||||
|  | ||||
| 	"goauthentik.io/api/v3" | ||||
| 	"goauthentik.io/internal/outpost/ak" | ||||
| 	"goauthentik.io/internal/outpost/ldap/bind" | ||||
| 	directbind "goauthentik.io/internal/outpost/ldap/bind/direct" | ||||
| 	memorybind "goauthentik.io/internal/outpost/ldap/bind/memory" | ||||
| @ -40,16 +41,19 @@ func (ls *LDAPServer) getInvalidationFlow() string { | ||||
| } | ||||
|  | ||||
| func (ls *LDAPServer) Refresh() error { | ||||
| 	outposts, _, err := ls.ac.Client.OutpostsApi.OutpostsLdapList(context.Background()).Execute() | ||||
| 	apiProviders, err := ak.Paginator(ls.ac.Client.OutpostsApi.OutpostsLdapList(context.Background()), ak.PaginatorOptions{ | ||||
| 		PageSize: 100, | ||||
| 		Logger:   ls.log, | ||||
| 	}) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 	if len(outposts.Results) < 1 { | ||||
| 	if len(apiProviders) < 1 { | ||||
| 		return errors.New("no ldap provider defined") | ||||
| 	} | ||||
| 	providers := make([]*ProviderInstance, len(outposts.Results)) | ||||
| 	providers := make([]*ProviderInstance, len(apiProviders)) | ||||
| 	invalidationFlow := ls.getInvalidationFlow() | ||||
| 	for idx, provider := range outposts.Results { | ||||
| 	for idx, provider := range apiProviders { | ||||
| 		userDN := strings.ToLower(fmt.Sprintf("ou=%s,%s", constants.OUUsers, *provider.BaseDn)) | ||||
| 		groupDN := strings.ToLower(fmt.Sprintf("ou=%s,%s", constants.OUGroups, *provider.BaseDn)) | ||||
| 		virtualGroupDN := strings.ToLower(fmt.Sprintf("ou=%s,%s", constants.OUVirtualGroups, *provider.BaseDn)) | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 Jens L.
					Jens L.