diff --git a/console/src/app/modules/policies/notification-settings/dialog-add-sms-provider/dialog-add-sms-provider.component.html b/console/src/app/modules/policies/notification-settings/dialog-add-sms-provider/dialog-add-sms-provider.component.html index 49690d88b3..f9631924d4 100644 --- a/console/src/app/modules/policies/notification-settings/dialog-add-sms-provider/dialog-add-sms-provider.component.html +++ b/console/src/app/modules/policies/notification-settings/dialog-add-sms-provider/dialog-add-sms-provider.component.html @@ -8,7 +8,7 @@ - + {{ 'SETTING.SMS.TWILIO.TOKEN' | translate }} diff --git a/console/src/app/modules/policies/notification-settings/dialog-add-sms-provider/dialog-add-sms-provider.component.ts b/console/src/app/modules/policies/notification-settings/dialog-add-sms-provider/dialog-add-sms-provider.component.ts index 623291234d..268232f1a6 100644 --- a/console/src/app/modules/policies/notification-settings/dialog-add-sms-provider/dialog-add-sms-provider.component.ts +++ b/console/src/app/modules/policies/notification-settings/dialog-add-sms-provider/dialog-add-sms-provider.component.ts @@ -1,10 +1,10 @@ import { Component, Inject } from '@angular/core'; -import { AbstractControl, UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms'; +import { AbstractControl, FormControl, UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms'; import { MAT_DIALOG_DATA, MatDialog, MatDialogRef } from '@angular/material/dialog'; import { - AddSMSProviderTwilioRequest, - UpdateSMSProviderTwilioRequest, - UpdateSMSProviderTwilioTokenRequest, + AddSMSProviderTwilioRequest, + UpdateSMSProviderTwilioRequest, + UpdateSMSProviderTwilioTokenRequest, } from 'src/app/proto/generated/zitadel/admin_pb'; import { SMSProvider, TwilioConfig } from 'src/app/proto/generated/zitadel/settings_pb'; import { AdminService } from 'src/app/services/admin.service'; @@ -41,13 +41,14 @@ export class DialogAddSMSProviderComponent { ) { this.twilioForm = this.fb.group({ sid: ['', [Validators.required]], - token: ['', [Validators.required]], senderNumber: ['', [Validators.required]], }); this.smsProviders = data.smsProviders; if (!!this.twilio) { this.twilioForm.patchValue(this.twilio); + } else { + this.twilioForm.addControl('token', new FormControl('', Validators.required)); } } @@ -82,14 +83,16 @@ export class DialogAddSMSProviderComponent { }); dialogRef.afterClosed().subscribe((token: string) => { - if (token) { + if (token && this.twilioProvider?.id) { const tokenReq = new UpdateSMSProviderTwilioTokenRequest(); tokenReq.setToken(token); + tokenReq.setId(this.twilioProvider.id); this.service .updateSMSProviderTwilioToken(tokenReq) .then(() => { this.toast.showInfo('SETTING.SMS.TWILIO.TOKENSET', true); + this.dialogRef.close(); }) .catch((error) => { this.toast.showError(error); @@ -110,6 +113,15 @@ export class DialogAddSMSProviderComponent { return this.twilioForm.get('sid'); } + public get twilioProvider(): SMSProvider.AsObject | undefined { + const twilioProvider: SMSProvider.AsObject | undefined = this.smsProviders.find((p) => p.twilio); + if (twilioProvider) { + return twilioProvider; + } else { + return undefined; + } + } + public get twilio(): TwilioConfig.AsObject | undefined { const twilioProvider: SMSProvider.AsObject | undefined = this.smsProviders.find((p) => p.twilio); if (twilioProvider && !!twilioProvider.twilio) { diff --git a/console/src/app/modules/policies/notification-settings/notification-settings.component.html b/console/src/app/modules/policies/notification-settings/notification-settings.component.html index 1124997324..d815871431 100644 --- a/console/src/app/modules/policies/notification-settings/notification-settings.component.html +++ b/console/src/app/modules/policies/notification-settings/notification-settings.component.html @@ -75,9 +75,32 @@ active: twilio?.state === SMSProviderConfigState.SMS_PROVIDER_CONFIG_ACTIVE, inactive: twilio?.state === SMSProviderConfigState.SMS_PROVIDER_CONFIG_INACTIVE }" - > + >{{ 'SETTING.SMS.SMSPROVIDERSTATE.' + twilio?.state | translate }} + + diff --git a/console/src/app/modules/policies/notification-settings/notification-settings.component.scss b/console/src/app/modules/policies/notification-settings/notification-settings.component.scss index 28ce220776..f382b0b415 100644 --- a/console/src/app/modules/policies/notification-settings/notification-settings.component.scss +++ b/console/src/app/modules/policies/notification-settings/notification-settings.component.scss @@ -49,6 +49,7 @@ display: flex; flex-direction: row; align-items: center; + width: 350px; .title { font-size: 16px; diff --git a/console/src/app/modules/policies/notification-settings/notification-settings.component.ts b/console/src/app/modules/policies/notification-settings/notification-settings.component.ts index 6b1e1dc968..a4c48bd7b0 100644 --- a/console/src/app/modules/policies/notification-settings/notification-settings.component.ts +++ b/console/src/app/modules/policies/notification-settings/notification-settings.component.ts @@ -3,12 +3,12 @@ import { AbstractControl, UntypedFormBuilder, UntypedFormGroup, Validators } fro import { MatDialog } from '@angular/material/dialog'; import { take } from 'rxjs'; import { - AddSMSProviderTwilioRequest, - AddSMTPConfigRequest, - UpdateSMSProviderTwilioRequest, - UpdateSMTPConfigPasswordRequest, - UpdateSMTPConfigPasswordResponse, - UpdateSMTPConfigRequest, + AddSMSProviderTwilioRequest, + AddSMTPConfigRequest, + UpdateSMSProviderTwilioRequest, + UpdateSMTPConfigPasswordRequest, + UpdateSMTPConfigPasswordResponse, + UpdateSMTPConfigRequest, } from 'src/app/proto/generated/zitadel/admin_pb'; import { DebugNotificationProvider, SMSProvider, SMSProviderConfigState } from 'src/app/proto/generated/zitadel/settings_pb'; import { AdminService } from 'src/app/services/admin.service'; @@ -16,6 +16,7 @@ import { GrpcAuthService } from 'src/app/services/grpc-auth.service'; import { ToastService } from 'src/app/services/toast.service'; import { InfoSectionType } from '../../info-section/info-section.component'; +import { WarnDialogComponent } from '../../warn-dialog/warn-dialog.component'; import { PolicyComponentServiceType } from '../policy-component-types.enum'; import { DialogAddSMSProviderComponent } from './dialog-add-sms-provider/dialog-add-sms-provider.component'; import { PasswordDialogComponent } from './password-dialog/password-dialog.component'; @@ -185,11 +186,12 @@ export class NotificationSettingsComponent implements OnInit { dialogRef.afterClosed().subscribe((req: AddSMSProviderTwilioRequest | UpdateSMSProviderTwilioRequest) => { if (req) { - if (this.hasTwilio) { + if (!!this.twilio) { this.service .updateSMSProviderTwilio(req as UpdateSMSProviderTwilioRequest) .then(() => { this.toast.showInfo('SETTING.SMS.TWILIO.ADDED', true); + this.fetchData(); }) .catch((error) => { this.toast.showError(error); @@ -199,6 +201,7 @@ export class NotificationSettingsComponent implements OnInit { .addSMSProviderTwilio(req as AddSMSProviderTwilioRequest) .then(() => { this.toast.showInfo('SETTING.SMS.TWILIO.ADDED', true); + this.fetchData(); }) .catch((error) => { this.toast.showError(error); @@ -234,6 +237,59 @@ export class NotificationSettingsComponent implements OnInit { }); } + public toggleSMSProviderState(id: string): void { + const provider = this.smsProviders.find((p) => p.id === id); + if (provider) { + if (provider.state === SMSProviderConfigState.SMS_PROVIDER_CONFIG_ACTIVE) { + this.service + .deactivateSMSProvider(id) + .then(() => { + this.toast.showInfo('SETTING.SMS.DEACTIVATED', true); + this.fetchData(); + }) + .catch((error) => { + this.toast.showError(error); + }); + } else if (provider.state === SMSProviderConfigState.SMS_PROVIDER_CONFIG_INACTIVE) { + this.service + .activateSMSProvider(id) + .then(() => { + this.toast.showInfo('SETTING.SMS.ACTIVATED', true); + this.fetchData(); + }) + .catch((error) => { + this.toast.showError(error); + }); + } + } + } + + public removeSMSProvider(id: string): void { + const dialogRef = this.dialog.open(WarnDialogComponent, { + data: { + confirmKey: 'ACTIONS.DELETE', + cancelKey: 'ACTIONS.CANCEL', + titleKey: 'SETTING.SMS.REMOVEPROVIDER', + descriptionKey: 'SETTING.SMS.REMOVEPROVIDER_DESC', + }, + width: '400px', + }); + + dialogRef.afterClosed().subscribe((resp) => { + if (resp) { + this.service + .removeSMSProvider(id) + .then(() => { + this.toast.showInfo('SETTING.SMS.TWILIO.REMOVED', true); + this.fetchData(); + }) + .catch((error) => { + this.toast.showError(error); + }); + } + }); + } + public get twilio(): SMSProvider.AsObject | undefined { return this.smsProviders.find((p) => p.twilio); } @@ -257,13 +313,4 @@ export class NotificationSettingsComponent implements OnInit { public get host(): AbstractControl | null { return this.form.get('host'); } - - public get hasTwilio(): boolean { - const twilioProvider: SMSProvider.AsObject | undefined = this.smsProviders.find((p) => p.twilio); - if (twilioProvider && !!twilioProvider.twilio) { - return true; - } else { - return false; - } - } } diff --git a/console/src/app/modules/policies/notification-settings/notification-settings.module.ts b/console/src/app/modules/policies/notification-settings/notification-settings.module.ts index ceb10ce32d..9667c2c4a7 100644 --- a/console/src/app/modules/policies/notification-settings/notification-settings.module.ts +++ b/console/src/app/modules/policies/notification-settings/notification-settings.module.ts @@ -13,6 +13,7 @@ import { CardModule } from '../../card/card.module'; import { FormFieldModule } from '../../form-field/form-field.module'; import { InfoSectionModule } from '../../info-section/info-section.module'; import { InputModule } from '../../input/input.module'; +import { WarnDialogModule } from '../../warn-dialog/warn-dialog.module'; import { DialogAddSMSProviderComponent } from './dialog-add-sms-provider/dialog-add-sms-provider.component'; import { NotificationSettingsComponent } from './notification-settings.component'; import { PasswordDialogComponent } from './password-dialog/password-dialog.component'; @@ -31,6 +32,7 @@ import { PasswordDialogComponent } from './password-dialog/password-dialog.compo InputModule, MatIconModule, FormFieldModule, + WarnDialogModule, MatSelectModule, MatProgressSpinnerModule, MatSelectModule, diff --git a/console/src/app/services/admin.service.ts b/console/src/app/services/admin.service.ts index 183ef92ceb..808facaf5a 100644 --- a/console/src/app/services/admin.service.ts +++ b/console/src/app/services/admin.service.ts @@ -1,195 +1,201 @@ import { Injectable } from '@angular/core'; import { - ActivateLabelPolicyRequest, - ActivateLabelPolicyResponse, - AddCustomDomainPolicyRequest, - AddCustomOrgIAMPolicyResponse, - AddIAMMemberRequest, - AddIAMMemberResponse, - AddIDPToLoginPolicyRequest, - AddIDPToLoginPolicyResponse, - AddJWTIDPRequest, - AddJWTIDPResponse, - AddMultiFactorToLoginPolicyRequest, - AddMultiFactorToLoginPolicyResponse, - AddOIDCIDPRequest, - AddOIDCIDPResponse, - AddSecondFactorToLoginPolicyRequest, - AddSecondFactorToLoginPolicyResponse, - AddSMSProviderTwilioRequest, - AddSMSProviderTwilioResponse, - AddSMTPConfigRequest, - AddSMTPConfigResponse, - DeactivateIDPRequest, - DeactivateIDPResponse, - GetCustomDomainClaimedMessageTextRequest, - GetCustomDomainClaimedMessageTextResponse, - GetCustomDomainPolicyRequest, - GetCustomDomainPolicyResponse, - GetCustomInitMessageTextRequest, - GetCustomInitMessageTextResponse, - GetCustomLoginTextsRequest, - GetCustomLoginTextsResponse, - GetCustomPasswordlessRegistrationMessageTextRequest, - GetCustomPasswordlessRegistrationMessageTextResponse, - GetCustomPasswordResetMessageTextRequest, - GetCustomPasswordResetMessageTextResponse, - GetCustomVerifyEmailMessageTextRequest, - GetCustomVerifyEmailMessageTextResponse, - GetCustomVerifyPhoneMessageTextRequest, - GetCustomVerifyPhoneMessageTextResponse, - GetDefaultDomainClaimedMessageTextRequest, - GetDefaultDomainClaimedMessageTextResponse, - GetDefaultInitMessageTextRequest, - GetDefaultInitMessageTextResponse, - GetDefaultLanguageRequest, - GetDefaultLanguageResponse, - GetDefaultLoginTextsRequest, - GetDefaultLoginTextsResponse, - GetDefaultPasswordlessRegistrationMessageTextRequest, - GetDefaultPasswordlessRegistrationMessageTextResponse, - GetDefaultPasswordResetMessageTextRequest, - GetDefaultPasswordResetMessageTextResponse, - GetDefaultVerifyEmailMessageTextRequest, - GetDefaultVerifyEmailMessageTextResponse, - GetDefaultVerifyPhoneMessageTextRequest, - GetDefaultVerifyPhoneMessageTextResponse, - GetDomainPolicyRequest, - GetDomainPolicyResponse, - GetFileSystemNotificationProviderRequest, - GetFileSystemNotificationProviderResponse, - GetIDPByIDRequest, - GetIDPByIDResponse, - GetLabelPolicyRequest, - GetLabelPolicyResponse, - GetLockoutPolicyRequest, - GetLockoutPolicyResponse, - GetLoginPolicyRequest, - GetLoginPolicyResponse, - GetLogNotificationProviderRequest, - GetLogNotificationProviderResponse, - GetOIDCSettingsRequest, - GetOIDCSettingsResponse, - GetPasswordAgePolicyRequest, - GetPasswordAgePolicyResponse, - GetPasswordComplexityPolicyRequest, - GetPasswordComplexityPolicyResponse, - GetPreviewLabelPolicyRequest, - GetPreviewLabelPolicyResponse, - GetPrivacyPolicyRequest, - GetPrivacyPolicyResponse, - GetSecretGeneratorRequest, - GetSecretGeneratorResponse, - GetSMSProviderRequest, - GetSMSProviderResponse, - GetSMTPConfigRequest, - GetSMTPConfigResponse, - GetSupportedLanguagesRequest, - GetSupportedLanguagesResponse, - IDPQuery, - ListFailedEventsRequest, - ListFailedEventsResponse, - ListIAMMemberRolesRequest, - ListIAMMemberRolesResponse, - ListIAMMembersRequest, - ListIAMMembersResponse, - ListIDPsRequest, - ListIDPsResponse, - ListLoginPolicyIDPsRequest, - ListLoginPolicyIDPsResponse, - ListLoginPolicyMultiFactorsRequest, - ListLoginPolicyMultiFactorsResponse, - ListLoginPolicySecondFactorsRequest, - ListLoginPolicySecondFactorsResponse, - ListSecretGeneratorsRequest, - ListSecretGeneratorsResponse, - ListSMSProvidersRequest, - ListSMSProvidersResponse, - ListViewsRequest, - ListViewsResponse, - ReactivateIDPRequest, - ReactivateIDPResponse, - RemoveFailedEventRequest, - RemoveFailedEventResponse, - RemoveIAMMemberRequest, - RemoveIAMMemberResponse, - RemoveIDPFromLoginPolicyRequest, - RemoveIDPFromLoginPolicyResponse, - RemoveIDPRequest, - RemoveIDPResponse, - RemoveLabelPolicyFontRequest, - RemoveLabelPolicyFontResponse, - RemoveLabelPolicyIconDarkRequest, - RemoveLabelPolicyIconDarkResponse, - RemoveLabelPolicyIconRequest, - RemoveLabelPolicyIconResponse, - RemoveLabelPolicyLogoDarkRequest, - RemoveLabelPolicyLogoDarkResponse, - RemoveLabelPolicyLogoRequest, - RemoveLabelPolicyLogoResponse, - RemoveMultiFactorFromLoginPolicyRequest, - RemoveMultiFactorFromLoginPolicyResponse, - RemoveSecondFactorFromLoginPolicyRequest, - RemoveSecondFactorFromLoginPolicyResponse, - ResetCustomDomainPolicyToDefaultRequest, - ResetCustomDomainPolicyToDefaultResponse, - ResetCustomLoginTextsToDefaultRequest, - ResetCustomLoginTextsToDefaultResponse, - SetCustomLoginTextsRequest, - SetCustomLoginTextsResponse, - SetDefaultDomainClaimedMessageTextRequest, - SetDefaultDomainClaimedMessageTextResponse, - SetDefaultInitMessageTextRequest, - SetDefaultInitMessageTextResponse, - SetDefaultLanguageRequest, - SetDefaultLanguageResponse, - SetDefaultPasswordlessRegistrationMessageTextRequest, - SetDefaultPasswordlessRegistrationMessageTextResponse, - SetDefaultPasswordResetMessageTextRequest, - SetDefaultPasswordResetMessageTextResponse, - SetDefaultVerifyEmailMessageTextRequest, - SetDefaultVerifyEmailMessageTextResponse, - SetDefaultVerifyPhoneMessageTextRequest, - SetDefaultVerifyPhoneMessageTextResponse, - SetUpOrgRequest, - SetUpOrgResponse, - UpdateCustomDomainPolicyRequest, - UpdateCustomDomainPolicyResponse, - UpdateDomainPolicyRequest, - UpdateDomainPolicyResponse, - UpdateIAMMemberRequest, - UpdateIAMMemberResponse, - UpdateIDPJWTConfigRequest, - UpdateIDPJWTConfigResponse, - UpdateIDPOIDCConfigRequest, - UpdateIDPOIDCConfigResponse, - UpdateIDPRequest, - UpdateIDPResponse, - UpdateLabelPolicyRequest, - UpdateLabelPolicyResponse, - UpdateLockoutPolicyRequest, - UpdateLockoutPolicyResponse, - UpdateLoginPolicyRequest, - UpdateLoginPolicyResponse, - UpdateOIDCSettingsRequest, - UpdateOIDCSettingsResponse, - UpdatePasswordAgePolicyRequest, - UpdatePasswordAgePolicyResponse, - UpdatePasswordComplexityPolicyRequest, - UpdatePasswordComplexityPolicyResponse, - UpdatePrivacyPolicyRequest, - UpdatePrivacyPolicyResponse, - UpdateSecretGeneratorRequest, - UpdateSecretGeneratorResponse, - UpdateSMSProviderTwilioRequest, - UpdateSMSProviderTwilioResponse, - UpdateSMSProviderTwilioTokenRequest, - UpdateSMSProviderTwilioTokenResponse, - UpdateSMTPConfigPasswordRequest, - UpdateSMTPConfigPasswordResponse, - UpdateSMTPConfigRequest, - UpdateSMTPConfigResponse, + ActivateLabelPolicyRequest, + ActivateLabelPolicyResponse, + ActivateSMSProviderRequest, + ActivateSMSProviderResponse, + AddCustomDomainPolicyRequest, + AddCustomOrgIAMPolicyResponse, + AddIAMMemberRequest, + AddIAMMemberResponse, + AddIDPToLoginPolicyRequest, + AddIDPToLoginPolicyResponse, + AddJWTIDPRequest, + AddJWTIDPResponse, + AddMultiFactorToLoginPolicyRequest, + AddMultiFactorToLoginPolicyResponse, + AddOIDCIDPRequest, + AddOIDCIDPResponse, + AddSecondFactorToLoginPolicyRequest, + AddSecondFactorToLoginPolicyResponse, + AddSMSProviderTwilioRequest, + AddSMSProviderTwilioResponse, + AddSMTPConfigRequest, + AddSMTPConfigResponse, + DeactivateIDPRequest, + DeactivateIDPResponse, + DeactivateSMSProviderRequest, + DeactivateSMSProviderResponse, + GetCustomDomainClaimedMessageTextRequest, + GetCustomDomainClaimedMessageTextResponse, + GetCustomDomainPolicyRequest, + GetCustomDomainPolicyResponse, + GetCustomInitMessageTextRequest, + GetCustomInitMessageTextResponse, + GetCustomLoginTextsRequest, + GetCustomLoginTextsResponse, + GetCustomPasswordlessRegistrationMessageTextRequest, + GetCustomPasswordlessRegistrationMessageTextResponse, + GetCustomPasswordResetMessageTextRequest, + GetCustomPasswordResetMessageTextResponse, + GetCustomVerifyEmailMessageTextRequest, + GetCustomVerifyEmailMessageTextResponse, + GetCustomVerifyPhoneMessageTextRequest, + GetCustomVerifyPhoneMessageTextResponse, + GetDefaultDomainClaimedMessageTextRequest, + GetDefaultDomainClaimedMessageTextResponse, + GetDefaultInitMessageTextRequest, + GetDefaultInitMessageTextResponse, + GetDefaultLanguageRequest, + GetDefaultLanguageResponse, + GetDefaultLoginTextsRequest, + GetDefaultLoginTextsResponse, + GetDefaultPasswordlessRegistrationMessageTextRequest, + GetDefaultPasswordlessRegistrationMessageTextResponse, + GetDefaultPasswordResetMessageTextRequest, + GetDefaultPasswordResetMessageTextResponse, + GetDefaultVerifyEmailMessageTextRequest, + GetDefaultVerifyEmailMessageTextResponse, + GetDefaultVerifyPhoneMessageTextRequest, + GetDefaultVerifyPhoneMessageTextResponse, + GetDomainPolicyRequest, + GetDomainPolicyResponse, + GetFileSystemNotificationProviderRequest, + GetFileSystemNotificationProviderResponse, + GetIDPByIDRequest, + GetIDPByIDResponse, + GetLabelPolicyRequest, + GetLabelPolicyResponse, + GetLockoutPolicyRequest, + GetLockoutPolicyResponse, + GetLoginPolicyRequest, + GetLoginPolicyResponse, + GetLogNotificationProviderRequest, + GetLogNotificationProviderResponse, + GetOIDCSettingsRequest, + GetOIDCSettingsResponse, + GetPasswordAgePolicyRequest, + GetPasswordAgePolicyResponse, + GetPasswordComplexityPolicyRequest, + GetPasswordComplexityPolicyResponse, + GetPreviewLabelPolicyRequest, + GetPreviewLabelPolicyResponse, + GetPrivacyPolicyRequest, + GetPrivacyPolicyResponse, + GetSecretGeneratorRequest, + GetSecretGeneratorResponse, + GetSMSProviderRequest, + GetSMSProviderResponse, + GetSMTPConfigRequest, + GetSMTPConfigResponse, + GetSupportedLanguagesRequest, + GetSupportedLanguagesResponse, + IDPQuery, + ListFailedEventsRequest, + ListFailedEventsResponse, + ListIAMMemberRolesRequest, + ListIAMMemberRolesResponse, + ListIAMMembersRequest, + ListIAMMembersResponse, + ListIDPsRequest, + ListIDPsResponse, + ListLoginPolicyIDPsRequest, + ListLoginPolicyIDPsResponse, + ListLoginPolicyMultiFactorsRequest, + ListLoginPolicyMultiFactorsResponse, + ListLoginPolicySecondFactorsRequest, + ListLoginPolicySecondFactorsResponse, + ListSecretGeneratorsRequest, + ListSecretGeneratorsResponse, + ListSMSProvidersRequest, + ListSMSProvidersResponse, + ListViewsRequest, + ListViewsResponse, + ReactivateIDPRequest, + ReactivateIDPResponse, + RemoveFailedEventRequest, + RemoveFailedEventResponse, + RemoveIAMMemberRequest, + RemoveIAMMemberResponse, + RemoveIDPFromLoginPolicyRequest, + RemoveIDPFromLoginPolicyResponse, + RemoveIDPRequest, + RemoveIDPResponse, + RemoveLabelPolicyFontRequest, + RemoveLabelPolicyFontResponse, + RemoveLabelPolicyIconDarkRequest, + RemoveLabelPolicyIconDarkResponse, + RemoveLabelPolicyIconRequest, + RemoveLabelPolicyIconResponse, + RemoveLabelPolicyLogoDarkRequest, + RemoveLabelPolicyLogoDarkResponse, + RemoveLabelPolicyLogoRequest, + RemoveLabelPolicyLogoResponse, + RemoveMultiFactorFromLoginPolicyRequest, + RemoveMultiFactorFromLoginPolicyResponse, + RemoveSecondFactorFromLoginPolicyRequest, + RemoveSecondFactorFromLoginPolicyResponse, + RemoveSMSProviderRequest, + RemoveSMSProviderResponse, + ResetCustomDomainPolicyToDefaultRequest, + ResetCustomDomainPolicyToDefaultResponse, + ResetCustomLoginTextsToDefaultRequest, + ResetCustomLoginTextsToDefaultResponse, + SetCustomLoginTextsRequest, + SetCustomLoginTextsResponse, + SetDefaultDomainClaimedMessageTextRequest, + SetDefaultDomainClaimedMessageTextResponse, + SetDefaultInitMessageTextRequest, + SetDefaultInitMessageTextResponse, + SetDefaultLanguageRequest, + SetDefaultLanguageResponse, + SetDefaultPasswordlessRegistrationMessageTextRequest, + SetDefaultPasswordlessRegistrationMessageTextResponse, + SetDefaultPasswordResetMessageTextRequest, + SetDefaultPasswordResetMessageTextResponse, + SetDefaultVerifyEmailMessageTextRequest, + SetDefaultVerifyEmailMessageTextResponse, + SetDefaultVerifyPhoneMessageTextRequest, + SetDefaultVerifyPhoneMessageTextResponse, + SetUpOrgRequest, + SetUpOrgResponse, + UpdateCustomDomainPolicyRequest, + UpdateCustomDomainPolicyResponse, + UpdateDomainPolicyRequest, + UpdateDomainPolicyResponse, + UpdateIAMMemberRequest, + UpdateIAMMemberResponse, + UpdateIDPJWTConfigRequest, + UpdateIDPJWTConfigResponse, + UpdateIDPOIDCConfigRequest, + UpdateIDPOIDCConfigResponse, + UpdateIDPRequest, + UpdateIDPResponse, + UpdateLabelPolicyRequest, + UpdateLabelPolicyResponse, + UpdateLockoutPolicyRequest, + UpdateLockoutPolicyResponse, + UpdateLoginPolicyRequest, + UpdateLoginPolicyResponse, + UpdateOIDCSettingsRequest, + UpdateOIDCSettingsResponse, + UpdatePasswordAgePolicyRequest, + UpdatePasswordAgePolicyResponse, + UpdatePasswordComplexityPolicyRequest, + UpdatePasswordComplexityPolicyResponse, + UpdatePrivacyPolicyRequest, + UpdatePrivacyPolicyResponse, + UpdateSecretGeneratorRequest, + UpdateSecretGeneratorResponse, + UpdateSMSProviderTwilioRequest, + UpdateSMSProviderTwilioResponse, + UpdateSMSProviderTwilioTokenRequest, + UpdateSMSProviderTwilioTokenResponse, + UpdateSMTPConfigPasswordRequest, + UpdateSMTPConfigPasswordResponse, + UpdateSMTPConfigRequest, + UpdateSMTPConfigResponse, } from '../proto/generated/zitadel/admin_pb'; import { SearchQuery } from '../proto/generated/zitadel/member_pb'; import { ListQuery } from '../proto/generated/zitadel/object_pb'; @@ -504,6 +510,24 @@ export class AdminService { return this.grpcService.admin.updateSMSProviderTwilio(req, null).then((resp) => resp.toObject()); } + public removeSMSProvider(id: string): Promise { + const req = new RemoveSMSProviderRequest(); + req.setId(id); + return this.grpcService.admin.removeSMSProvider(req, null).then((resp) => resp.toObject()); + } + + public activateSMSProvider(id: string): Promise { + const req = new ActivateSMSProviderRequest(); + req.setId(id); + return this.grpcService.admin.activateSMSProvider(req, null).then((resp) => resp.toObject()); + } + + public deactivateSMSProvider(id: string): Promise { + const req = new DeactivateSMSProviderRequest(); + req.setId(id); + return this.grpcService.admin.deactivateSMSProvider(req, null).then((resp) => resp.toObject()); + } + public updateSMSProviderTwilioToken( req: UpdateSMSProviderTwilioTokenRequest, ): Promise { diff --git a/console/src/assets/i18n/de.json b/console/src/assets/i18n/de.json index 37ff10fc84..63fbc0806c 100644 --- a/console/src/assets/i18n/de.json +++ b/console/src/assets/i18n/de.json @@ -106,6 +106,7 @@ "FINISHED": "Fertig", "CHANGE": "Ändern", "REACTIVATE": "Aktivieren", + "ACTIVATE": "Aktivieren", "DEACTIVATE": "Deaktivieren", "REFRESH": "Aktualisieren", "LOGIN": "Einloggen", @@ -896,11 +897,21 @@ "PROVIDER": "SMS Anbieter", "ADDPROVIDER": "Anbieter hinzufügen", "ADDPROVIDERDESCRIPTION": "Wählen Sie einen der verfügbaren Anbieter und geben Sie die erforderlichen Daten ein.", + "REMOVEPROVIDER": "Anbieter entfernen", + "REMOVEPROVIDER_DESC": "Sie sind im Begriff eine Konfiguration zu löschen. Wollen Sie fortfahren?", + "SMSPROVIDERSTATE": { + "0": "Unbekannt", + "1": "Aktiv", + "2": "Inaktiv" + }, + "ACTIVATED": "Anbieter aktiviert.", + "DEACTIVATED": "Anbieter deaktiviert.", "TWILIO": { "SID": "Sid", "TOKEN": "Token", "SENDERNUMBER": "Sender Number", "ADDED": "Twilio erfolgreich hinzugefügt.", + "REMOVED": "Twilio entfernt", "CHANGETOKEN": "Token ändern", "SETTOKEN": "Token setzen", "TOKENSET": "Token erfolgreich gesetzt." diff --git a/console/src/assets/i18n/en.json b/console/src/assets/i18n/en.json index fee717fb4c..fce53f87d2 100644 --- a/console/src/assets/i18n/en.json +++ b/console/src/assets/i18n/en.json @@ -106,6 +106,7 @@ "FINISHED": "Close", "CHANGE": "Change", "REACTIVATE": "Reactivate", + "ACTIVATE": "Activate", "DEACTIVATE": "Deactivate", "REFRESH": "Refresh", "LOGIN": "Login", @@ -874,7 +875,8 @@ "LANGUAGE": { "de": "Deutsch", "it": "Italiano", - "en": "English" + "en": "English", + "fr": "Français" }, "SMTP": { "TITLE": "SMTP Settings", @@ -895,11 +897,21 @@ "PROVIDER": "SMS Provider", "ADDPROVIDER": "Add SMS Provider", "ADDPROVIDERDESCRIPTION": "Choose one of the available providers and enter the required data.", + "REMOVEPROVIDER": "Remove Provider", + "REMOVEPROVIDER_DESC": "You are about to delete a provider configuration. Do you want to continue?", + "SMSPROVIDERSTATE": { + "0": "Unspecified", + "1": "Active", + "2": "Inactive" + }, + "ACTIVATED": "Provider activated.", + "DEACTIVATED": "Provider deactivated.", "TWILIO": { "SID": "Sid", "TOKEN": "Token", "SENDERNUMBER": "Sender Number", "ADDED": "Twilio added successfully.", + "REMOVED": "Twilio removed", "CHANGETOKEN": "Change Token", "SETTOKEN": "Set Token", "TOKENSET": "Token successfully set." diff --git a/console/src/assets/i18n/fr.json b/console/src/assets/i18n/fr.json index 0bb2e712f6..e441ec3b8c 100644 --- a/console/src/assets/i18n/fr.json +++ b/console/src/assets/i18n/fr.json @@ -106,6 +106,7 @@ "FINISHED": "Fermer", "CHANGE": "Modifier", "REACTIVATE": "Réactiver", + "ACTIVATE": "Activer", "DEACTIVATE": "Désactiver", "REFRESH": "Rafraîchir", "LOGIN": "Connexion", @@ -896,11 +897,21 @@ "PROVIDER": "Fournisseur de SMS", "ADDPROVIDER": "Ajouter un fournisseur de SMS", "ADDPROVIDERDESCRIPTION": "Choisissez l'un des fournisseurs disponibles et saisissez les données requises.", + "REMOVEPROVIDER": "Supprimer le fournisseur", + "REMOVEPROVIDER_DESC": "Vous êtes sur le point de supprimer une configuration de fournisseur. Voulez-vous continuer", + "SMSPROVIDERSTATE": { + "0": "non spécifié", + "1": "Actif", + "2": "Inactif" + }, + "ACTIVATED": "Fournisseur actif.", + "DEACTIVATED": "Fournisseur inactif.", "TWILIO": { "SID": "Sid", "TOKEN": "Jeton", "SENDERNUMBER": "Numéro d'expéditeur", "ADDED": "Twilio a été ajouté avec succès.", + "REMOVED": "Twilio a été supprimé avec succès", "CHANGETOKEN": "Changer de Token", "SETTOKEN": "Définir le jeton", "TOKENSET": "Le jeton a été défini avec succès." diff --git a/console/src/assets/i18n/it.json b/console/src/assets/i18n/it.json index 09ce165504..b8629f3a67 100644 --- a/console/src/assets/i18n/it.json +++ b/console/src/assets/i18n/it.json @@ -106,6 +106,7 @@ "FINISHED": "Chiudi", "CHANGE": "Cambia", "REACTIVATE": "Riattiva", + "ACTIVATE": "Attiva", "DEACTIVATE": "Disattiva", "REFRESH": "Aggiorna", "LOGIN": "Accedi", @@ -896,11 +897,21 @@ "PROVIDER": "Fornitore SMS", "ADDPROVIDER": "Aggiungi fornitore SMS", "ADDPROVIDERDESCRIPTION": "Scegli uno dei provider disponibili e inserisci i dati richiesti.", + "REMOVEPROVIDER": "Elimina configurazione", + "REMOVEPROVIDER_DESC": "Stai per eliminare una configurazione. Vuoi continuare?", + "SMSPROVIDERSTATE": { + "0": "Non specificato", + "1": "Attivo", + "2": "Inattivo" + }, + "ACTIVATED": "Fornitore attivato.", + "DEACTIVATED": "Fornitore disattivato.", "TWILIO": { "SID": "Sid", "TOKEN": "Token", "SENDERNUMBER": "Sender Number", "ADDED": "Twilio aggiunto con successo.", + "REMOVED": "Twilio rimosso con successo.", "CHANGETOKEN": "Cambia Token", "SETTOKEN": "Cambia Token", "TOKENSET": "Token cambiato con successo."