fix(go): avoid panic on client_email missing.

This commit is contained in:
Vishal Dalwadi 2025-07-31 21:58:45 +05:30
parent 025eebe7f2
commit 2f6817821c

View file

@ -29,10 +29,18 @@ func NewGoogleWorkspaceClient(adminEmail, creds string) (*Client, error) {
return nil, err
}
var targetPrincipal string
_, ok := credsJsonMap["client_email"]
if !ok {
return nil, errors.New("invalid service account credentials: missing client_email field")
} else {
targetPrincipal = credsJsonMap["client_email"].(string)
}
source, err := impersonate.CredentialsTokenSource(
context.TODO(),
impersonate.CredentialsConfig{
TargetPrincipal: credsJsonMap["client_email"].(string),
TargetPrincipal: targetPrincipal,
Scopes: []string{
admindir.AdminDirectoryUserReadonlyScope,
admindir.AdminDirectoryGroupReadonlyScope,