Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support general team whitelists in the oauth provider #534

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

ebardsley
Copy link

I've been using this for a while, and figured it was probably worth an upstream commit. Let me know if you'd like it done differently or are not interested in this.

This supports user_team_url in oauth providers, similar to how github supports it.

This was build to work for Discord and their https://discordapp.com/api/users/@me/guilds
endpoint, but should work for anything that returns a list of {"id": "someid"} maps.

For example, I've been using this with a while with:

oauth:
  provider: oidc
  auth_url: https://discordapp.com/api/oauth2/authorize?prompt=none
  token_url: https://discordapp.com/api/oauth2/token
  user_info_url: https://discordapp.com/api/users/@me
  user_team_url: https://discordapp.com/api/users/@me/guilds
  scopes:
  - identify
  - email
  - guilds

and VOUCH_TEAMWHITELIST=<numeric id of my guild> and it works quite nicely.

(The go upgrade was necessary since some dependencies no longer work under 1.18.)

Note that this no longer builds under 1.18, with the following error:

```
... 23.69 # go.uber.org/multierr
... 23.69 /go/pkg/mod/go.uber.org/multierr@v1.11.0/error.go:209:20: undefined: atomic.Bool
... 23.69 note: module requires Go 1.19
```
This was build to work for Discord and their https://discordapp.com/api/users/@me/guilds
endpoint, but should work for anything that returns a list of `{"id": "someid"}` maps.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants