fix: always attempt external auth refresh when fetching (#11762)

* fix: always attempt external auth refresh when fetching
* refactor validate to check expiry when considering "valid"
This commit is contained in:
Steven Masley
2024-01-25 10:54:56 -06:00
committed by GitHub
parent fd7f85bc5e
commit 0befc0826a
6 changed files with 148 additions and 99 deletions

View File

@ -6,6 +6,7 @@ import (
"time"
"golang.org/x/exp/maps"
"golang.org/x/oauth2"
"github.com/coder/coder/v2/coderd/database/dbtime"
"github.com/coder/coder/v2/coderd/rbac"
@ -268,6 +269,14 @@ func (u ExternalAuthLink) RBACObject() rbac.Object {
return rbac.ResourceUserData.WithID(u.UserID).WithOwner(u.UserID.String())
}
func (u ExternalAuthLink) OAuthToken() *oauth2.Token {
return &oauth2.Token{
AccessToken: u.OAuthAccessToken,
RefreshToken: u.OAuthRefreshToken,
Expiry: u.OAuthExpiry,
}
}
func (u UserLink) RBACObject() rbac.Object {
// I assume UserData is ok?
return rbac.ResourceUserData.WithOwner(u.UserID.String()).WithID(u.UserID)