Skip to content

Commit 6f9551f

Browse files
authored
Add enableAnonymousUser param to CreateTenant and UpdateTenant (#412)
* Add enableAnonymousUser param to CreateTenant and UpdateTenant
1 parent 8e5a032 commit 6f9551f

File tree

5 files changed

+55
-27
lines changed

5 files changed

+55
-27
lines changed

auth/auth.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -144,10 +144,10 @@ func NewClient(ctx context.Context, conf *internal.AuthConfig) (*Client, error)
144144
baseURL = fmt.Sprintf("http://%s/identitytoolkit.googleapis.com", authEmulatorHost)
145145
}
146146
idToolkitV1Endpoint := fmt.Sprintf("%s/v1", baseURL)
147-
idToolkitV2Beta1Endpoint := fmt.Sprintf("%s/v2beta1", baseURL)
147+
idToolkitV2Endpoint := fmt.Sprintf("%s/v2", baseURL)
148148
userManagementEndpoint := idToolkitV1Endpoint
149-
providerConfigEndpoint := idToolkitV2Beta1Endpoint
150-
tenantMgtEndpoint := idToolkitV2Beta1Endpoint
149+
providerConfigEndpoint := idToolkitV2Endpoint
150+
tenantMgtEndpoint := idToolkitV2Endpoint
151151

152152
base := &baseClient{
153153
userManagementEndpoint: userManagementEndpoint,

auth/auth_test.go

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,11 @@ import (
3636
)
3737

3838
const (
39-
credEnvVar = "GOOGLE_APPLICATION_CREDENTIALS"
40-
testProjectID = "mock-project-id"
41-
testVersion = "test-version"
42-
defaultIDToolkitV1Endpoint = "https://identitytoolkit.googleapis.com/v1"
43-
defaultIDToolkitV2Beta1Endpoint = "https://identitytoolkit.googleapis.com/v2beta1"
39+
credEnvVar = "GOOGLE_APPLICATION_CREDENTIALS"
40+
testProjectID = "mock-project-id"
41+
testVersion = "test-version"
42+
defaultIDToolkitV1Endpoint = "https://identitytoolkit.googleapis.com/v1"
43+
defaultIDToolkitV2Endpoint = "https://identitytoolkit.googleapis.com/v2"
4444
)
4545

4646
var (
@@ -291,7 +291,7 @@ func TestNewClientExplicitNoAuth(t *testing.T) {
291291
func TestNewClientEmulatorHostEnvVar(t *testing.T) {
292292
emulatorHost := "localhost:9099"
293293
idToolkitV1Endpoint := "http://localhost:9099/identitytoolkit.googleapis.com/v1"
294-
idToolkitV2Beta1Endpoint := "http://localhost:9099/identitytoolkit.googleapis.com/v2beta1"
294+
idToolkitV2Endpoint := "http://localhost:9099/identitytoolkit.googleapis.com/v2"
295295

296296
os.Setenv(emulatorHostEnvVar, emulatorHost)
297297
defer os.Unsetenv(emulatorHostEnvVar)
@@ -305,11 +305,11 @@ func TestNewClientEmulatorHostEnvVar(t *testing.T) {
305305
if baseClient.userManagementEndpoint != idToolkitV1Endpoint {
306306
t.Errorf("baseClient.userManagementEndpoint = %q; want = %q", baseClient.userManagementEndpoint, idToolkitV1Endpoint)
307307
}
308-
if baseClient.providerConfigEndpoint != idToolkitV2Beta1Endpoint {
309-
t.Errorf("baseClient.providerConfigEndpoint = %q; want = %q", baseClient.providerConfigEndpoint, idToolkitV2Beta1Endpoint)
308+
if baseClient.providerConfigEndpoint != idToolkitV2Endpoint {
309+
t.Errorf("baseClient.providerConfigEndpoint = %q; want = %q", baseClient.providerConfigEndpoint, idToolkitV2Endpoint)
310310
}
311-
if baseClient.tenantMgtEndpoint != idToolkitV2Beta1Endpoint {
312-
t.Errorf("baseClient.tenantMgtEndpoint = %q; want = %q", baseClient.tenantMgtEndpoint, idToolkitV2Beta1Endpoint)
311+
if baseClient.tenantMgtEndpoint != idToolkitV2Endpoint {
312+
t.Errorf("baseClient.tenantMgtEndpoint = %q; want = %q", baseClient.tenantMgtEndpoint, idToolkitV2Endpoint)
313313
}
314314
if _, ok := baseClient.signer.(emulatedSigner); !ok {
315315
t.Errorf("baseClient.signer = %#v; want = %#v", baseClient.signer, emulatedSigner{})
@@ -1427,11 +1427,11 @@ func checkBaseClient(client *Client, wantProjectID string) error {
14271427
if baseClient.userManagementEndpoint != defaultIDToolkitV1Endpoint {
14281428
return fmt.Errorf("userManagementEndpoint = %q; want = %q", baseClient.userManagementEndpoint, defaultIDToolkitV1Endpoint)
14291429
}
1430-
if baseClient.providerConfigEndpoint != defaultIDToolkitV2Beta1Endpoint {
1431-
return fmt.Errorf("providerConfigEndpoint = %q; want = %q", baseClient.providerConfigEndpoint, defaultIDToolkitV2Beta1Endpoint)
1430+
if baseClient.providerConfigEndpoint != defaultIDToolkitV2Endpoint {
1431+
return fmt.Errorf("providerConfigEndpoint = %q; want = %q", baseClient.providerConfigEndpoint, defaultIDToolkitV2Endpoint)
14321432
}
1433-
if baseClient.tenantMgtEndpoint != defaultIDToolkitV2Beta1Endpoint {
1434-
return fmt.Errorf("providerConfigEndpoint = %q; want = %q", baseClient.providerConfigEndpoint, defaultIDToolkitV2Beta1Endpoint)
1433+
if baseClient.tenantMgtEndpoint != defaultIDToolkitV2Endpoint {
1434+
return fmt.Errorf("providerConfigEndpoint = %q; want = %q", baseClient.providerConfigEndpoint, defaultIDToolkitV2Endpoint)
14351435
}
14361436
if baseClient.projectID != wantProjectID {
14371437
return fmt.Errorf("projectID = %q; want = %q", baseClient.projectID, wantProjectID)

auth/tenant_mgt.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ type Tenant struct {
4747
DisplayName string `json:"displayName"`
4848
AllowPasswordSignUp bool `json:"allowPasswordSignup"`
4949
EnableEmailLinkSignIn bool `json:"enableEmailLinkSignin"`
50+
EnableAnonymousUsers bool `json:"enableAnonymousUser"`
5051
}
5152

5253
// TenantClient is used for managing users, configuring SAML/OIDC providers, and generating email
@@ -216,6 +217,7 @@ const (
216217
tenantDisplayNameKey = "displayName"
217218
allowPasswordSignUpKey = "allowPasswordSignup"
218219
enableEmailLinkSignInKey = "enableEmailLinkSignin"
220+
enableAnonymousUser = "enableAnonymousUser"
219221
)
220222

221223
// TenantToCreate represents the options used to create a new tenant.
@@ -240,6 +242,11 @@ func (t *TenantToCreate) EnableEmailLinkSignIn(enable bool) *TenantToCreate {
240242
return t.set(enableEmailLinkSignInKey, enable)
241243
}
242244

245+
// EnableAnonymousUsers enables or disables anonymous authentication.
246+
func (t *TenantToCreate) EnableAnonymousUsers(enable bool) *TenantToCreate {
247+
return t.set(enableAnonymousUser, enable)
248+
}
249+
243250
func (t *TenantToCreate) set(key string, value interface{}) *TenantToCreate {
244251
t.ensureParams().Set(key, value)
245252
return t
@@ -275,6 +282,11 @@ func (t *TenantToUpdate) EnableEmailLinkSignIn(enable bool) *TenantToUpdate {
275282
return t.set(enableEmailLinkSignInKey, enable)
276283
}
277284

285+
// EnableAnonymousUsers enables or disables anonymous authentication.
286+
func (t *TenantToUpdate) EnableAnonymousUsers(enable bool) *TenantToUpdate {
287+
return t.set(enableAnonymousUser, enable)
288+
}
289+
278290
func (t *TenantToUpdate) set(key string, value interface{}) *TenantToUpdate {
279291
if t.params == nil {
280292
t.params = make(nestedMap)

auth/tenant_mgt_test.go

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1084,14 +1084,16 @@ const tenantResponse = `{
10841084
"name":"projects/mock-project-id/tenants/tenantID",
10851085
"displayName": "Test Tenant",
10861086
"allowPasswordSignup": true,
1087-
"enableEmailLinkSignin": true
1087+
"enableEmailLinkSignin": true,
1088+
"enableAnonymousUser": true
10881089
}`
10891090

10901091
const tenantResponse2 = `{
10911092
"name":"projects/mock-project-id/tenants/tenantID2",
10921093
"displayName": "Test Tenant 2",
10931094
"allowPasswordSignup": true,
1094-
"enableEmailLinkSignin": true
1095+
"enableEmailLinkSignin": true,
1096+
"enableAnonymousUser": true
10951097
}`
10961098

10971099
const tenantNotFoundResponse = `{
@@ -1105,13 +1107,15 @@ var testTenant = &Tenant{
11051107
DisplayName: "Test Tenant",
11061108
AllowPasswordSignUp: true,
11071109
EnableEmailLinkSignIn: true,
1110+
EnableAnonymousUsers: true,
11081111
}
11091112

11101113
var testTenant2 = &Tenant{
11111114
ID: "tenantID2",
11121115
DisplayName: "Test Tenant 2",
11131116
AllowPasswordSignUp: true,
11141117
EnableEmailLinkSignIn: true,
1118+
EnableAnonymousUsers: true,
11151119
}
11161120

11171121
func TestTenant(t *testing.T) {
@@ -1177,7 +1181,8 @@ func TestCreateTenant(t *testing.T) {
11771181
options := (&TenantToCreate{}).
11781182
DisplayName(testTenant.DisplayName).
11791183
AllowPasswordSignUp(testTenant.AllowPasswordSignUp).
1180-
EnableEmailLinkSignIn(testTenant.EnableEmailLinkSignIn)
1184+
EnableEmailLinkSignIn(testTenant.EnableEmailLinkSignIn).
1185+
EnableAnonymousUsers(testTenant.EnableAnonymousUsers)
11811186
tenant, err := client.TenantManager.CreateTenant(context.Background(), options)
11821187
if err != nil {
11831188
t.Fatal(err)
@@ -1191,6 +1196,7 @@ func TestCreateTenant(t *testing.T) {
11911196
"displayName": testTenant.DisplayName,
11921197
"allowPasswordSignup": testTenant.AllowPasswordSignUp,
11931198
"enableEmailLinkSignin": testTenant.EnableEmailLinkSignIn,
1199+
"enableAnonymousUser": testTenant.EnableAnonymousUsers,
11941200
}
11951201
if err := checkCreateTenantRequest(s, wantBody); err != nil {
11961202
t.Fatal(err)
@@ -1225,7 +1231,8 @@ func TestCreateTenantZeroValues(t *testing.T) {
12251231
options := (&TenantToCreate{}).
12261232
DisplayName("").
12271233
AllowPasswordSignUp(false).
1228-
EnableEmailLinkSignIn(false)
1234+
EnableEmailLinkSignIn(false).
1235+
EnableAnonymousUsers(false)
12291236
tenant, err := client.TenantManager.CreateTenant(context.Background(), options)
12301237
if err != nil {
12311238
t.Fatal(err)
@@ -1239,6 +1246,7 @@ func TestCreateTenantZeroValues(t *testing.T) {
12391246
"displayName": "",
12401247
"allowPasswordSignup": false,
12411248
"enableEmailLinkSignin": false,
1249+
"enableAnonymousUser": false,
12421250
}
12431251
if err := checkCreateTenantRequest(s, wantBody); err != nil {
12441252
t.Fatal(err)
@@ -1274,7 +1282,8 @@ func TestUpdateTenant(t *testing.T) {
12741282
options := (&TenantToUpdate{}).
12751283
DisplayName(testTenant.DisplayName).
12761284
AllowPasswordSignUp(testTenant.AllowPasswordSignUp).
1277-
EnableEmailLinkSignIn(testTenant.EnableEmailLinkSignIn)
1285+
EnableEmailLinkSignIn(testTenant.EnableEmailLinkSignIn).
1286+
EnableAnonymousUsers(testTenant.EnableAnonymousUsers)
12781287
tenant, err := client.TenantManager.UpdateTenant(context.Background(), "tenantID", options)
12791288
if err != nil {
12801289
t.Fatal(err)
@@ -1288,8 +1297,9 @@ func TestUpdateTenant(t *testing.T) {
12881297
"displayName": testTenant.DisplayName,
12891298
"allowPasswordSignup": testTenant.AllowPasswordSignUp,
12901299
"enableEmailLinkSignin": testTenant.EnableEmailLinkSignIn,
1300+
"enableAnonymousUser": testTenant.EnableAnonymousUsers,
12911301
}
1292-
wantMask := []string{"allowPasswordSignup", "displayName", "enableEmailLinkSignin"}
1302+
wantMask := []string{"allowPasswordSignup", "displayName", "enableAnonymousUser", "enableEmailLinkSignin"}
12931303
if err := checkUpdateTenantRequest(s, wantBody, wantMask); err != nil {
12941304
t.Fatal(err)
12951305
}
@@ -1327,7 +1337,8 @@ func TestUpdateTenantZeroValues(t *testing.T) {
13271337
options := (&TenantToUpdate{}).
13281338
DisplayName("").
13291339
AllowPasswordSignUp(false).
1330-
EnableEmailLinkSignIn(false)
1340+
EnableEmailLinkSignIn(false).
1341+
EnableAnonymousUsers(false)
13311342
tenant, err := client.TenantManager.UpdateTenant(context.Background(), "tenantID", options)
13321343
if err != nil {
13331344
t.Fatal(err)
@@ -1341,8 +1352,9 @@ func TestUpdateTenantZeroValues(t *testing.T) {
13411352
"displayName": "",
13421353
"allowPasswordSignup": false,
13431354
"enableEmailLinkSignin": false,
1355+
"enableAnonymousUser": false,
13441356
}
1345-
wantMask := []string{"allowPasswordSignup", "displayName", "enableEmailLinkSignin"}
1357+
wantMask := []string{"allowPasswordSignup", "displayName", "enableAnonymousUser", "enableEmailLinkSignin"}
13461358
if err := checkUpdateTenantRequest(s, wantBody, wantMask); err != nil {
13471359
t.Fatal(err)
13481360
}

integration/auth/tenant_mgt_test.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,12 +31,14 @@ func TestTenantManager(t *testing.T) {
3131
DisplayName: "admin-go-tenant",
3232
AllowPasswordSignUp: true,
3333
EnableEmailLinkSignIn: true,
34+
EnableAnonymousUsers: true,
3435
}
3536

3637
req := (&auth.TenantToCreate{}).
3738
DisplayName("admin-go-tenant").
3839
AllowPasswordSignUp(true).
39-
EnableEmailLinkSignIn(true)
40+
EnableEmailLinkSignIn(true).
41+
EnableAnonymousUsers(true)
4042
created, err := client.TenantManager.CreateTenant(context.Background(), req)
4143
if err != nil {
4244
t.Fatalf("CreateTenant() = %v", err)
@@ -129,11 +131,13 @@ func TestTenantManager(t *testing.T) {
129131
DisplayName: "updated-go-tenant",
130132
AllowPasswordSignUp: false,
131133
EnableEmailLinkSignIn: false,
134+
EnableAnonymousUsers: false,
132135
}
133136
req := (&auth.TenantToUpdate{}).
134137
DisplayName("updated-go-tenant").
135138
AllowPasswordSignUp(false).
136-
EnableEmailLinkSignIn(false)
139+
EnableEmailLinkSignIn(false).
140+
EnableAnonymousUsers(false)
137141
tenant, err := client.TenantManager.UpdateTenant(context.Background(), id, req)
138142
if err != nil {
139143
t.Fatalf("UpdateTenant() = %v", err)

0 commit comments

Comments
 (0)