mirror of
https://github.com/yusing/godoxy.git
synced 2025-06-09 13:02:33 +02:00

* implement OIDC middleware * auth code cleanup * allow override allowed_user in middleware, fix typos * fix tests and callbackURL * update next release docs * fix OIDC middleware not working with Authentik * feat: add groups support for OIDC claims (#41) Allow users to specify allowed groups in the env and use it to inspect the claims. This performs a logical AND of users and groups (additive). * merge feat/oidc-middleware (#49) * api: enrich provider statistifcs * fix: docker monitor now uses container status * Feat/auto schemas (#48) * use auto generated schemas * go version bump and dependencies upgrade * clarify some error messages --------- Co-authored-by: yusing <yusing@6uo.me> * cleanup some loadbalancer code * api: cleanup websocket code * api: add /v1/health/ws for health bubbles on dashboard * feat: experimental memory logger and logs api for WebUI --------- Co-authored-by: yusing <yusing@6uo.me> --------- Co-authored-by: yusing <yusing@6uo.me> Co-authored-by: Peter Olds <peter@olds.co>
20 lines
489 B
Go
20 lines
489 B
Go
package utils
|
|
|
|
// Intersect returns a new slice containing the elements that are present in both input slices.
|
|
// This provides a more efficient solution than using two nested loops.
|
|
func Intersect[T comparable, Slice ~[]T](slice1 Slice, slice2 Slice) Slice {
|
|
var result Slice
|
|
seen := map[T]struct{}{}
|
|
|
|
for i := range slice1 {
|
|
seen[slice1[i]] = struct{}{}
|
|
}
|
|
|
|
for i := range slice2 {
|
|
if _, ok := seen[slice2[i]]; ok {
|
|
result = append(result, slice2[i])
|
|
}
|
|
}
|
|
|
|
return result
|
|
}
|