Enable opt-in Google Workspace accounts for maintainers
Adds a google config with provisionUser to the MAINTAINERS role. Runtime provisioning already gates on firstName/lastName/googleEmailPrefix, so maintainers opt in by sending a PR adding those fields to their entry in users.ts. Missing fields means no account is created. Relaxes the validator and tests to treat missing GWS fields as implicit opt-out rather than a hard error, so existing maintainers do not need skipGoogleUserProvisioning set up front. Also documents the opt-in flow in the README.
This commit is contained in:
parent
c96a52bb95
commit
9ecc452da6
2 changed files with 23 additions and 10 deletions
|
|
@ -99,7 +99,7 @@ test('googleEmailPrefix values are unique', () => {
|
|||
return prefixes.length === new Set(prefixes).size;
|
||||
});
|
||||
|
||||
test('ProvisionUser members are explicit: fields present or skip flag set', () => {
|
||||
test('skipGoogleUserProvisioning is only used in provisionUser roles and without fields', () => {
|
||||
const provisionRoleIds = new Set(ROLES.filter((r) => r.google?.provisionUser).map((r) => r.id));
|
||||
return MEMBERS.every((member) => {
|
||||
const inProvisionRole = member.memberOf.some((id) => provisionRoleIds.has(id));
|
||||
|
|
@ -110,7 +110,7 @@ test('ProvisionUser members are explicit: fields present or skip flag set', () =
|
|||
member.lastName &&
|
||||
member.googleEmailPrefix
|
||||
);
|
||||
return hasProvisioningFields !== !!member.skipGoogleUserProvisioning;
|
||||
return !(hasProvisioningFields && member.skipGoogleUserProvisioning);
|
||||
});
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -154,13 +154,6 @@ console.log('Validating Google Workspace user provisioning fields...');
|
|||
);
|
||||
hasErrors = true;
|
||||
}
|
||||
|
||||
if (inProvisionUserRole && !hasProvisioningFields && !member.skipGoogleUserProvisioning) {
|
||||
console.error(
|
||||
`ERROR: Member "${memberId}" is in a provisionUser role but is missing Google user fields. Add fields or set skipGoogleUserProvisioning: true`
|
||||
);
|
||||
hasErrors = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue