fix(console): SMS provider (#3949)

fix: console twilio

Co-authored-by: Livio Spring <livio.a@gmail.com>
This commit is contained in:
Max Peintner 2022-07-22 13:23:13 +02:00 committed by GitHub
parent aed7010508
commit 3855ec2ab5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 368 additions and 214 deletions

View File

@ -8,7 +8,7 @@
<input cnslInput name="sid" formControlName="sid" /> <input cnslInput name="sid" formControlName="sid" />
</cnsl-form-field> </cnsl-form-field>
<cnsl-form-field class="sms-form-field" label="Token"> <cnsl-form-field *ngIf="token" class="sms-form-field" label="Token">
<cnsl-label>{{ 'SETTING.SMS.TWILIO.TOKEN' | translate }}</cnsl-label> <cnsl-label>{{ 'SETTING.SMS.TWILIO.TOKEN' | translate }}</cnsl-label>
<input cnslInput name="token" formControlName="token" /> <input cnslInput name="token" formControlName="token" />
</cnsl-form-field> </cnsl-form-field>

View File

@ -1,10 +1,10 @@
import { Component, Inject } from '@angular/core'; 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 { MAT_DIALOG_DATA, MatDialog, MatDialogRef } from '@angular/material/dialog';
import { import {
AddSMSProviderTwilioRequest, AddSMSProviderTwilioRequest,
UpdateSMSProviderTwilioRequest, UpdateSMSProviderTwilioRequest,
UpdateSMSProviderTwilioTokenRequest, UpdateSMSProviderTwilioTokenRequest,
} from 'src/app/proto/generated/zitadel/admin_pb'; } from 'src/app/proto/generated/zitadel/admin_pb';
import { SMSProvider, TwilioConfig } from 'src/app/proto/generated/zitadel/settings_pb'; import { SMSProvider, TwilioConfig } from 'src/app/proto/generated/zitadel/settings_pb';
import { AdminService } from 'src/app/services/admin.service'; import { AdminService } from 'src/app/services/admin.service';
@ -41,13 +41,14 @@ export class DialogAddSMSProviderComponent {
) { ) {
this.twilioForm = this.fb.group({ this.twilioForm = this.fb.group({
sid: ['', [Validators.required]], sid: ['', [Validators.required]],
token: ['', [Validators.required]],
senderNumber: ['', [Validators.required]], senderNumber: ['', [Validators.required]],
}); });
this.smsProviders = data.smsProviders; this.smsProviders = data.smsProviders;
if (!!this.twilio) { if (!!this.twilio) {
this.twilioForm.patchValue(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) => { dialogRef.afterClosed().subscribe((token: string) => {
if (token) { if (token && this.twilioProvider?.id) {
const tokenReq = new UpdateSMSProviderTwilioTokenRequest(); const tokenReq = new UpdateSMSProviderTwilioTokenRequest();
tokenReq.setToken(token); tokenReq.setToken(token);
tokenReq.setId(this.twilioProvider.id);
this.service this.service
.updateSMSProviderTwilioToken(tokenReq) .updateSMSProviderTwilioToken(tokenReq)
.then(() => { .then(() => {
this.toast.showInfo('SETTING.SMS.TWILIO.TOKENSET', true); this.toast.showInfo('SETTING.SMS.TWILIO.TOKENSET', true);
this.dialogRef.close();
}) })
.catch((error) => { .catch((error) => {
this.toast.showError(error); this.toast.showError(error);
@ -110,6 +113,15 @@ export class DialogAddSMSProviderComponent {
return this.twilioForm.get('sid'); 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 { public get twilio(): TwilioConfig.AsObject | undefined {
const twilioProvider: SMSProvider.AsObject | undefined = this.smsProviders.find((p) => p.twilio); const twilioProvider: SMSProvider.AsObject | undefined = this.smsProviders.find((p) => p.twilio);
if (twilioProvider && !!twilioProvider.twilio) { if (twilioProvider && !!twilioProvider.twilio) {

View File

@ -75,9 +75,32 @@
active: twilio?.state === SMSProviderConfigState.SMS_PROVIDER_CONFIG_ACTIVE, active: twilio?.state === SMSProviderConfigState.SMS_PROVIDER_CONFIG_ACTIVE,
inactive: twilio?.state === SMSProviderConfigState.SMS_PROVIDER_CONFIG_INACTIVE inactive: twilio?.state === SMSProviderConfigState.SMS_PROVIDER_CONFIG_INACTIVE
}" }"
></span> >{{ 'SETTING.SMS.SMSPROVIDERSTATE.' + twilio?.state | translate }}</span
>
<span class="fill-space"></span> <span class="fill-space"></span>
<button
*ngIf="twilio && twilio.id"
[disabled]="(['iam.write'] | hasRole | async) === false"
mat-stroked-button
(click)="toggleSMSProviderState(twilio.id)"
>
<span *ngIf="twilio.state === SMSProviderConfigState.SMS_PROVIDER_CONFIG_ACTIVE">{{
'ACTIONS.DEACTIVATE' | translate
}}</span>
<span *ngIf="twilio.state === SMSProviderConfigState.SMS_PROVIDER_CONFIG_INACTIVE">{{
'ACTIONS.ACTIVATE' | translate
}}</span>
</button>
<button
*ngIf="twilio && twilio.id"
color="warn"
[disabled]="(['iam.write'] | hasRole | async) === false"
mat-icon-button
(click)="removeSMSProvider(twilio.id)"
>
<i class="las la-trash"></i>
</button>
<button [disabled]="(['iam.write'] | hasRole | async) === false" mat-icon-button (click)="editSMSProvider()"> <button [disabled]="(['iam.write'] | hasRole | async) === false" mat-icon-button (click)="editSMSProvider()">
<i class="las la-pen"></i> <i class="las la-pen"></i>
</button> </button>

View File

@ -49,6 +49,7 @@
display: flex; display: flex;
flex-direction: row; flex-direction: row;
align-items: center; align-items: center;
width: 350px;
.title { .title {
font-size: 16px; font-size: 16px;

View File

@ -3,12 +3,12 @@ import { AbstractControl, UntypedFormBuilder, UntypedFormGroup, Validators } fro
import { MatDialog } from '@angular/material/dialog'; import { MatDialog } from '@angular/material/dialog';
import { take } from 'rxjs'; import { take } from 'rxjs';
import { import {
AddSMSProviderTwilioRequest, AddSMSProviderTwilioRequest,
AddSMTPConfigRequest, AddSMTPConfigRequest,
UpdateSMSProviderTwilioRequest, UpdateSMSProviderTwilioRequest,
UpdateSMTPConfigPasswordRequest, UpdateSMTPConfigPasswordRequest,
UpdateSMTPConfigPasswordResponse, UpdateSMTPConfigPasswordResponse,
UpdateSMTPConfigRequest, UpdateSMTPConfigRequest,
} from 'src/app/proto/generated/zitadel/admin_pb'; } from 'src/app/proto/generated/zitadel/admin_pb';
import { DebugNotificationProvider, SMSProvider, SMSProviderConfigState } from 'src/app/proto/generated/zitadel/settings_pb'; import { DebugNotificationProvider, SMSProvider, SMSProviderConfigState } from 'src/app/proto/generated/zitadel/settings_pb';
import { AdminService } from 'src/app/services/admin.service'; 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 { ToastService } from 'src/app/services/toast.service';
import { InfoSectionType } from '../../info-section/info-section.component'; import { InfoSectionType } from '../../info-section/info-section.component';
import { WarnDialogComponent } from '../../warn-dialog/warn-dialog.component';
import { PolicyComponentServiceType } from '../policy-component-types.enum'; import { PolicyComponentServiceType } from '../policy-component-types.enum';
import { DialogAddSMSProviderComponent } from './dialog-add-sms-provider/dialog-add-sms-provider.component'; import { DialogAddSMSProviderComponent } from './dialog-add-sms-provider/dialog-add-sms-provider.component';
import { PasswordDialogComponent } from './password-dialog/password-dialog.component'; import { PasswordDialogComponent } from './password-dialog/password-dialog.component';
@ -185,11 +186,12 @@ export class NotificationSettingsComponent implements OnInit {
dialogRef.afterClosed().subscribe((req: AddSMSProviderTwilioRequest | UpdateSMSProviderTwilioRequest) => { dialogRef.afterClosed().subscribe((req: AddSMSProviderTwilioRequest | UpdateSMSProviderTwilioRequest) => {
if (req) { if (req) {
if (this.hasTwilio) { if (!!this.twilio) {
this.service this.service
.updateSMSProviderTwilio(req as UpdateSMSProviderTwilioRequest) .updateSMSProviderTwilio(req as UpdateSMSProviderTwilioRequest)
.then(() => { .then(() => {
this.toast.showInfo('SETTING.SMS.TWILIO.ADDED', true); this.toast.showInfo('SETTING.SMS.TWILIO.ADDED', true);
this.fetchData();
}) })
.catch((error) => { .catch((error) => {
this.toast.showError(error); this.toast.showError(error);
@ -199,6 +201,7 @@ export class NotificationSettingsComponent implements OnInit {
.addSMSProviderTwilio(req as AddSMSProviderTwilioRequest) .addSMSProviderTwilio(req as AddSMSProviderTwilioRequest)
.then(() => { .then(() => {
this.toast.showInfo('SETTING.SMS.TWILIO.ADDED', true); this.toast.showInfo('SETTING.SMS.TWILIO.ADDED', true);
this.fetchData();
}) })
.catch((error) => { .catch((error) => {
this.toast.showError(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 { public get twilio(): SMSProvider.AsObject | undefined {
return this.smsProviders.find((p) => p.twilio); return this.smsProviders.find((p) => p.twilio);
} }
@ -257,13 +313,4 @@ export class NotificationSettingsComponent implements OnInit {
public get host(): AbstractControl | null { public get host(): AbstractControl | null {
return this.form.get('host'); 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;
}
}
} }

View File

@ -13,6 +13,7 @@ import { CardModule } from '../../card/card.module';
import { FormFieldModule } from '../../form-field/form-field.module'; import { FormFieldModule } from '../../form-field/form-field.module';
import { InfoSectionModule } from '../../info-section/info-section.module'; import { InfoSectionModule } from '../../info-section/info-section.module';
import { InputModule } from '../../input/input.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 { DialogAddSMSProviderComponent } from './dialog-add-sms-provider/dialog-add-sms-provider.component';
import { NotificationSettingsComponent } from './notification-settings.component'; import { NotificationSettingsComponent } from './notification-settings.component';
import { PasswordDialogComponent } from './password-dialog/password-dialog.component'; import { PasswordDialogComponent } from './password-dialog/password-dialog.component';
@ -31,6 +32,7 @@ import { PasswordDialogComponent } from './password-dialog/password-dialog.compo
InputModule, InputModule,
MatIconModule, MatIconModule,
FormFieldModule, FormFieldModule,
WarnDialogModule,
MatSelectModule, MatSelectModule,
MatProgressSpinnerModule, MatProgressSpinnerModule,
MatSelectModule, MatSelectModule,

View File

@ -1,195 +1,201 @@
import { Injectable } from '@angular/core'; import { Injectable } from '@angular/core';
import { import {
ActivateLabelPolicyRequest, ActivateLabelPolicyRequest,
ActivateLabelPolicyResponse, ActivateLabelPolicyResponse,
AddCustomDomainPolicyRequest, ActivateSMSProviderRequest,
AddCustomOrgIAMPolicyResponse, ActivateSMSProviderResponse,
AddIAMMemberRequest, AddCustomDomainPolicyRequest,
AddIAMMemberResponse, AddCustomOrgIAMPolicyResponse,
AddIDPToLoginPolicyRequest, AddIAMMemberRequest,
AddIDPToLoginPolicyResponse, AddIAMMemberResponse,
AddJWTIDPRequest, AddIDPToLoginPolicyRequest,
AddJWTIDPResponse, AddIDPToLoginPolicyResponse,
AddMultiFactorToLoginPolicyRequest, AddJWTIDPRequest,
AddMultiFactorToLoginPolicyResponse, AddJWTIDPResponse,
AddOIDCIDPRequest, AddMultiFactorToLoginPolicyRequest,
AddOIDCIDPResponse, AddMultiFactorToLoginPolicyResponse,
AddSecondFactorToLoginPolicyRequest, AddOIDCIDPRequest,
AddSecondFactorToLoginPolicyResponse, AddOIDCIDPResponse,
AddSMSProviderTwilioRequest, AddSecondFactorToLoginPolicyRequest,
AddSMSProviderTwilioResponse, AddSecondFactorToLoginPolicyResponse,
AddSMTPConfigRequest, AddSMSProviderTwilioRequest,
AddSMTPConfigResponse, AddSMSProviderTwilioResponse,
DeactivateIDPRequest, AddSMTPConfigRequest,
DeactivateIDPResponse, AddSMTPConfigResponse,
GetCustomDomainClaimedMessageTextRequest, DeactivateIDPRequest,
GetCustomDomainClaimedMessageTextResponse, DeactivateIDPResponse,
GetCustomDomainPolicyRequest, DeactivateSMSProviderRequest,
GetCustomDomainPolicyResponse, DeactivateSMSProviderResponse,
GetCustomInitMessageTextRequest, GetCustomDomainClaimedMessageTextRequest,
GetCustomInitMessageTextResponse, GetCustomDomainClaimedMessageTextResponse,
GetCustomLoginTextsRequest, GetCustomDomainPolicyRequest,
GetCustomLoginTextsResponse, GetCustomDomainPolicyResponse,
GetCustomPasswordlessRegistrationMessageTextRequest, GetCustomInitMessageTextRequest,
GetCustomPasswordlessRegistrationMessageTextResponse, GetCustomInitMessageTextResponse,
GetCustomPasswordResetMessageTextRequest, GetCustomLoginTextsRequest,
GetCustomPasswordResetMessageTextResponse, GetCustomLoginTextsResponse,
GetCustomVerifyEmailMessageTextRequest, GetCustomPasswordlessRegistrationMessageTextRequest,
GetCustomVerifyEmailMessageTextResponse, GetCustomPasswordlessRegistrationMessageTextResponse,
GetCustomVerifyPhoneMessageTextRequest, GetCustomPasswordResetMessageTextRequest,
GetCustomVerifyPhoneMessageTextResponse, GetCustomPasswordResetMessageTextResponse,
GetDefaultDomainClaimedMessageTextRequest, GetCustomVerifyEmailMessageTextRequest,
GetDefaultDomainClaimedMessageTextResponse, GetCustomVerifyEmailMessageTextResponse,
GetDefaultInitMessageTextRequest, GetCustomVerifyPhoneMessageTextRequest,
GetDefaultInitMessageTextResponse, GetCustomVerifyPhoneMessageTextResponse,
GetDefaultLanguageRequest, GetDefaultDomainClaimedMessageTextRequest,
GetDefaultLanguageResponse, GetDefaultDomainClaimedMessageTextResponse,
GetDefaultLoginTextsRequest, GetDefaultInitMessageTextRequest,
GetDefaultLoginTextsResponse, GetDefaultInitMessageTextResponse,
GetDefaultPasswordlessRegistrationMessageTextRequest, GetDefaultLanguageRequest,
GetDefaultPasswordlessRegistrationMessageTextResponse, GetDefaultLanguageResponse,
GetDefaultPasswordResetMessageTextRequest, GetDefaultLoginTextsRequest,
GetDefaultPasswordResetMessageTextResponse, GetDefaultLoginTextsResponse,
GetDefaultVerifyEmailMessageTextRequest, GetDefaultPasswordlessRegistrationMessageTextRequest,
GetDefaultVerifyEmailMessageTextResponse, GetDefaultPasswordlessRegistrationMessageTextResponse,
GetDefaultVerifyPhoneMessageTextRequest, GetDefaultPasswordResetMessageTextRequest,
GetDefaultVerifyPhoneMessageTextResponse, GetDefaultPasswordResetMessageTextResponse,
GetDomainPolicyRequest, GetDefaultVerifyEmailMessageTextRequest,
GetDomainPolicyResponse, GetDefaultVerifyEmailMessageTextResponse,
GetFileSystemNotificationProviderRequest, GetDefaultVerifyPhoneMessageTextRequest,
GetFileSystemNotificationProviderResponse, GetDefaultVerifyPhoneMessageTextResponse,
GetIDPByIDRequest, GetDomainPolicyRequest,
GetIDPByIDResponse, GetDomainPolicyResponse,
GetLabelPolicyRequest, GetFileSystemNotificationProviderRequest,
GetLabelPolicyResponse, GetFileSystemNotificationProviderResponse,
GetLockoutPolicyRequest, GetIDPByIDRequest,
GetLockoutPolicyResponse, GetIDPByIDResponse,
GetLoginPolicyRequest, GetLabelPolicyRequest,
GetLoginPolicyResponse, GetLabelPolicyResponse,
GetLogNotificationProviderRequest, GetLockoutPolicyRequest,
GetLogNotificationProviderResponse, GetLockoutPolicyResponse,
GetOIDCSettingsRequest, GetLoginPolicyRequest,
GetOIDCSettingsResponse, GetLoginPolicyResponse,
GetPasswordAgePolicyRequest, GetLogNotificationProviderRequest,
GetPasswordAgePolicyResponse, GetLogNotificationProviderResponse,
GetPasswordComplexityPolicyRequest, GetOIDCSettingsRequest,
GetPasswordComplexityPolicyResponse, GetOIDCSettingsResponse,
GetPreviewLabelPolicyRequest, GetPasswordAgePolicyRequest,
GetPreviewLabelPolicyResponse, GetPasswordAgePolicyResponse,
GetPrivacyPolicyRequest, GetPasswordComplexityPolicyRequest,
GetPrivacyPolicyResponse, GetPasswordComplexityPolicyResponse,
GetSecretGeneratorRequest, GetPreviewLabelPolicyRequest,
GetSecretGeneratorResponse, GetPreviewLabelPolicyResponse,
GetSMSProviderRequest, GetPrivacyPolicyRequest,
GetSMSProviderResponse, GetPrivacyPolicyResponse,
GetSMTPConfigRequest, GetSecretGeneratorRequest,
GetSMTPConfigResponse, GetSecretGeneratorResponse,
GetSupportedLanguagesRequest, GetSMSProviderRequest,
GetSupportedLanguagesResponse, GetSMSProviderResponse,
IDPQuery, GetSMTPConfigRequest,
ListFailedEventsRequest, GetSMTPConfigResponse,
ListFailedEventsResponse, GetSupportedLanguagesRequest,
ListIAMMemberRolesRequest, GetSupportedLanguagesResponse,
ListIAMMemberRolesResponse, IDPQuery,
ListIAMMembersRequest, ListFailedEventsRequest,
ListIAMMembersResponse, ListFailedEventsResponse,
ListIDPsRequest, ListIAMMemberRolesRequest,
ListIDPsResponse, ListIAMMemberRolesResponse,
ListLoginPolicyIDPsRequest, ListIAMMembersRequest,
ListLoginPolicyIDPsResponse, ListIAMMembersResponse,
ListLoginPolicyMultiFactorsRequest, ListIDPsRequest,
ListLoginPolicyMultiFactorsResponse, ListIDPsResponse,
ListLoginPolicySecondFactorsRequest, ListLoginPolicyIDPsRequest,
ListLoginPolicySecondFactorsResponse, ListLoginPolicyIDPsResponse,
ListSecretGeneratorsRequest, ListLoginPolicyMultiFactorsRequest,
ListSecretGeneratorsResponse, ListLoginPolicyMultiFactorsResponse,
ListSMSProvidersRequest, ListLoginPolicySecondFactorsRequest,
ListSMSProvidersResponse, ListLoginPolicySecondFactorsResponse,
ListViewsRequest, ListSecretGeneratorsRequest,
ListViewsResponse, ListSecretGeneratorsResponse,
ReactivateIDPRequest, ListSMSProvidersRequest,
ReactivateIDPResponse, ListSMSProvidersResponse,
RemoveFailedEventRequest, ListViewsRequest,
RemoveFailedEventResponse, ListViewsResponse,
RemoveIAMMemberRequest, ReactivateIDPRequest,
RemoveIAMMemberResponse, ReactivateIDPResponse,
RemoveIDPFromLoginPolicyRequest, RemoveFailedEventRequest,
RemoveIDPFromLoginPolicyResponse, RemoveFailedEventResponse,
RemoveIDPRequest, RemoveIAMMemberRequest,
RemoveIDPResponse, RemoveIAMMemberResponse,
RemoveLabelPolicyFontRequest, RemoveIDPFromLoginPolicyRequest,
RemoveLabelPolicyFontResponse, RemoveIDPFromLoginPolicyResponse,
RemoveLabelPolicyIconDarkRequest, RemoveIDPRequest,
RemoveLabelPolicyIconDarkResponse, RemoveIDPResponse,
RemoveLabelPolicyIconRequest, RemoveLabelPolicyFontRequest,
RemoveLabelPolicyIconResponse, RemoveLabelPolicyFontResponse,
RemoveLabelPolicyLogoDarkRequest, RemoveLabelPolicyIconDarkRequest,
RemoveLabelPolicyLogoDarkResponse, RemoveLabelPolicyIconDarkResponse,
RemoveLabelPolicyLogoRequest, RemoveLabelPolicyIconRequest,
RemoveLabelPolicyLogoResponse, RemoveLabelPolicyIconResponse,
RemoveMultiFactorFromLoginPolicyRequest, RemoveLabelPolicyLogoDarkRequest,
RemoveMultiFactorFromLoginPolicyResponse, RemoveLabelPolicyLogoDarkResponse,
RemoveSecondFactorFromLoginPolicyRequest, RemoveLabelPolicyLogoRequest,
RemoveSecondFactorFromLoginPolicyResponse, RemoveLabelPolicyLogoResponse,
ResetCustomDomainPolicyToDefaultRequest, RemoveMultiFactorFromLoginPolicyRequest,
ResetCustomDomainPolicyToDefaultResponse, RemoveMultiFactorFromLoginPolicyResponse,
ResetCustomLoginTextsToDefaultRequest, RemoveSecondFactorFromLoginPolicyRequest,
ResetCustomLoginTextsToDefaultResponse, RemoveSecondFactorFromLoginPolicyResponse,
SetCustomLoginTextsRequest, RemoveSMSProviderRequest,
SetCustomLoginTextsResponse, RemoveSMSProviderResponse,
SetDefaultDomainClaimedMessageTextRequest, ResetCustomDomainPolicyToDefaultRequest,
SetDefaultDomainClaimedMessageTextResponse, ResetCustomDomainPolicyToDefaultResponse,
SetDefaultInitMessageTextRequest, ResetCustomLoginTextsToDefaultRequest,
SetDefaultInitMessageTextResponse, ResetCustomLoginTextsToDefaultResponse,
SetDefaultLanguageRequest, SetCustomLoginTextsRequest,
SetDefaultLanguageResponse, SetCustomLoginTextsResponse,
SetDefaultPasswordlessRegistrationMessageTextRequest, SetDefaultDomainClaimedMessageTextRequest,
SetDefaultPasswordlessRegistrationMessageTextResponse, SetDefaultDomainClaimedMessageTextResponse,
SetDefaultPasswordResetMessageTextRequest, SetDefaultInitMessageTextRequest,
SetDefaultPasswordResetMessageTextResponse, SetDefaultInitMessageTextResponse,
SetDefaultVerifyEmailMessageTextRequest, SetDefaultLanguageRequest,
SetDefaultVerifyEmailMessageTextResponse, SetDefaultLanguageResponse,
SetDefaultVerifyPhoneMessageTextRequest, SetDefaultPasswordlessRegistrationMessageTextRequest,
SetDefaultVerifyPhoneMessageTextResponse, SetDefaultPasswordlessRegistrationMessageTextResponse,
SetUpOrgRequest, SetDefaultPasswordResetMessageTextRequest,
SetUpOrgResponse, SetDefaultPasswordResetMessageTextResponse,
UpdateCustomDomainPolicyRequest, SetDefaultVerifyEmailMessageTextRequest,
UpdateCustomDomainPolicyResponse, SetDefaultVerifyEmailMessageTextResponse,
UpdateDomainPolicyRequest, SetDefaultVerifyPhoneMessageTextRequest,
UpdateDomainPolicyResponse, SetDefaultVerifyPhoneMessageTextResponse,
UpdateIAMMemberRequest, SetUpOrgRequest,
UpdateIAMMemberResponse, SetUpOrgResponse,
UpdateIDPJWTConfigRequest, UpdateCustomDomainPolicyRequest,
UpdateIDPJWTConfigResponse, UpdateCustomDomainPolicyResponse,
UpdateIDPOIDCConfigRequest, UpdateDomainPolicyRequest,
UpdateIDPOIDCConfigResponse, UpdateDomainPolicyResponse,
UpdateIDPRequest, UpdateIAMMemberRequest,
UpdateIDPResponse, UpdateIAMMemberResponse,
UpdateLabelPolicyRequest, UpdateIDPJWTConfigRequest,
UpdateLabelPolicyResponse, UpdateIDPJWTConfigResponse,
UpdateLockoutPolicyRequest, UpdateIDPOIDCConfigRequest,
UpdateLockoutPolicyResponse, UpdateIDPOIDCConfigResponse,
UpdateLoginPolicyRequest, UpdateIDPRequest,
UpdateLoginPolicyResponse, UpdateIDPResponse,
UpdateOIDCSettingsRequest, UpdateLabelPolicyRequest,
UpdateOIDCSettingsResponse, UpdateLabelPolicyResponse,
UpdatePasswordAgePolicyRequest, UpdateLockoutPolicyRequest,
UpdatePasswordAgePolicyResponse, UpdateLockoutPolicyResponse,
UpdatePasswordComplexityPolicyRequest, UpdateLoginPolicyRequest,
UpdatePasswordComplexityPolicyResponse, UpdateLoginPolicyResponse,
UpdatePrivacyPolicyRequest, UpdateOIDCSettingsRequest,
UpdatePrivacyPolicyResponse, UpdateOIDCSettingsResponse,
UpdateSecretGeneratorRequest, UpdatePasswordAgePolicyRequest,
UpdateSecretGeneratorResponse, UpdatePasswordAgePolicyResponse,
UpdateSMSProviderTwilioRequest, UpdatePasswordComplexityPolicyRequest,
UpdateSMSProviderTwilioResponse, UpdatePasswordComplexityPolicyResponse,
UpdateSMSProviderTwilioTokenRequest, UpdatePrivacyPolicyRequest,
UpdateSMSProviderTwilioTokenResponse, UpdatePrivacyPolicyResponse,
UpdateSMTPConfigPasswordRequest, UpdateSecretGeneratorRequest,
UpdateSMTPConfigPasswordResponse, UpdateSecretGeneratorResponse,
UpdateSMTPConfigRequest, UpdateSMSProviderTwilioRequest,
UpdateSMTPConfigResponse, UpdateSMSProviderTwilioResponse,
UpdateSMSProviderTwilioTokenRequest,
UpdateSMSProviderTwilioTokenResponse,
UpdateSMTPConfigPasswordRequest,
UpdateSMTPConfigPasswordResponse,
UpdateSMTPConfigRequest,
UpdateSMTPConfigResponse,
} from '../proto/generated/zitadel/admin_pb'; } from '../proto/generated/zitadel/admin_pb';
import { SearchQuery } from '../proto/generated/zitadel/member_pb'; import { SearchQuery } from '../proto/generated/zitadel/member_pb';
import { ListQuery } from '../proto/generated/zitadel/object_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()); return this.grpcService.admin.updateSMSProviderTwilio(req, null).then((resp) => resp.toObject());
} }
public removeSMSProvider(id: string): Promise<RemoveSMSProviderResponse.AsObject> {
const req = new RemoveSMSProviderRequest();
req.setId(id);
return this.grpcService.admin.removeSMSProvider(req, null).then((resp) => resp.toObject());
}
public activateSMSProvider(id: string): Promise<ActivateSMSProviderResponse.AsObject> {
const req = new ActivateSMSProviderRequest();
req.setId(id);
return this.grpcService.admin.activateSMSProvider(req, null).then((resp) => resp.toObject());
}
public deactivateSMSProvider(id: string): Promise<DeactivateSMSProviderResponse.AsObject> {
const req = new DeactivateSMSProviderRequest();
req.setId(id);
return this.grpcService.admin.deactivateSMSProvider(req, null).then((resp) => resp.toObject());
}
public updateSMSProviderTwilioToken( public updateSMSProviderTwilioToken(
req: UpdateSMSProviderTwilioTokenRequest, req: UpdateSMSProviderTwilioTokenRequest,
): Promise<UpdateSMSProviderTwilioTokenResponse.AsObject> { ): Promise<UpdateSMSProviderTwilioTokenResponse.AsObject> {

View File

@ -106,6 +106,7 @@
"FINISHED": "Fertig", "FINISHED": "Fertig",
"CHANGE": "Ändern", "CHANGE": "Ändern",
"REACTIVATE": "Aktivieren", "REACTIVATE": "Aktivieren",
"ACTIVATE": "Aktivieren",
"DEACTIVATE": "Deaktivieren", "DEACTIVATE": "Deaktivieren",
"REFRESH": "Aktualisieren", "REFRESH": "Aktualisieren",
"LOGIN": "Einloggen", "LOGIN": "Einloggen",
@ -896,11 +897,21 @@
"PROVIDER": "SMS Anbieter", "PROVIDER": "SMS Anbieter",
"ADDPROVIDER": "Anbieter hinzufügen", "ADDPROVIDER": "Anbieter hinzufügen",
"ADDPROVIDERDESCRIPTION": "Wählen Sie einen der verfügbaren Anbieter und geben Sie die erforderlichen Daten ein.", "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": { "TWILIO": {
"SID": "Sid", "SID": "Sid",
"TOKEN": "Token", "TOKEN": "Token",
"SENDERNUMBER": "Sender Number", "SENDERNUMBER": "Sender Number",
"ADDED": "Twilio erfolgreich hinzugefügt.", "ADDED": "Twilio erfolgreich hinzugefügt.",
"REMOVED": "Twilio entfernt",
"CHANGETOKEN": "Token ändern", "CHANGETOKEN": "Token ändern",
"SETTOKEN": "Token setzen", "SETTOKEN": "Token setzen",
"TOKENSET": "Token erfolgreich gesetzt." "TOKENSET": "Token erfolgreich gesetzt."

View File

@ -106,6 +106,7 @@
"FINISHED": "Close", "FINISHED": "Close",
"CHANGE": "Change", "CHANGE": "Change",
"REACTIVATE": "Reactivate", "REACTIVATE": "Reactivate",
"ACTIVATE": "Activate",
"DEACTIVATE": "Deactivate", "DEACTIVATE": "Deactivate",
"REFRESH": "Refresh", "REFRESH": "Refresh",
"LOGIN": "Login", "LOGIN": "Login",
@ -874,7 +875,8 @@
"LANGUAGE": { "LANGUAGE": {
"de": "Deutsch", "de": "Deutsch",
"it": "Italiano", "it": "Italiano",
"en": "English" "en": "English",
"fr": "Français"
}, },
"SMTP": { "SMTP": {
"TITLE": "SMTP Settings", "TITLE": "SMTP Settings",
@ -895,11 +897,21 @@
"PROVIDER": "SMS Provider", "PROVIDER": "SMS Provider",
"ADDPROVIDER": "Add SMS Provider", "ADDPROVIDER": "Add SMS Provider",
"ADDPROVIDERDESCRIPTION": "Choose one of the available providers and enter the required data.", "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": { "TWILIO": {
"SID": "Sid", "SID": "Sid",
"TOKEN": "Token", "TOKEN": "Token",
"SENDERNUMBER": "Sender Number", "SENDERNUMBER": "Sender Number",
"ADDED": "Twilio added successfully.", "ADDED": "Twilio added successfully.",
"REMOVED": "Twilio removed",
"CHANGETOKEN": "Change Token", "CHANGETOKEN": "Change Token",
"SETTOKEN": "Set Token", "SETTOKEN": "Set Token",
"TOKENSET": "Token successfully set." "TOKENSET": "Token successfully set."

View File

@ -106,6 +106,7 @@
"FINISHED": "Fermer", "FINISHED": "Fermer",
"CHANGE": "Modifier", "CHANGE": "Modifier",
"REACTIVATE": "Réactiver", "REACTIVATE": "Réactiver",
"ACTIVATE": "Activer",
"DEACTIVATE": "Désactiver", "DEACTIVATE": "Désactiver",
"REFRESH": "Rafraîchir", "REFRESH": "Rafraîchir",
"LOGIN": "Connexion", "LOGIN": "Connexion",
@ -896,11 +897,21 @@
"PROVIDER": "Fournisseur de SMS", "PROVIDER": "Fournisseur de SMS",
"ADDPROVIDER": "Ajouter un fournisseur de SMS", "ADDPROVIDER": "Ajouter un fournisseur de SMS",
"ADDPROVIDERDESCRIPTION": "Choisissez l'un des fournisseurs disponibles et saisissez les données requises.", "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": { "TWILIO": {
"SID": "Sid", "SID": "Sid",
"TOKEN": "Jeton", "TOKEN": "Jeton",
"SENDERNUMBER": "Numéro d'expéditeur", "SENDERNUMBER": "Numéro d'expéditeur",
"ADDED": "Twilio a été ajouté avec succès.", "ADDED": "Twilio a été ajouté avec succès.",
"REMOVED": "Twilio a été supprimé avec succès",
"CHANGETOKEN": "Changer de Token", "CHANGETOKEN": "Changer de Token",
"SETTOKEN": "Définir le jeton", "SETTOKEN": "Définir le jeton",
"TOKENSET": "Le jeton a été défini avec succès." "TOKENSET": "Le jeton a été défini avec succès."

View File

@ -106,6 +106,7 @@
"FINISHED": "Chiudi", "FINISHED": "Chiudi",
"CHANGE": "Cambia", "CHANGE": "Cambia",
"REACTIVATE": "Riattiva", "REACTIVATE": "Riattiva",
"ACTIVATE": "Attiva",
"DEACTIVATE": "Disattiva", "DEACTIVATE": "Disattiva",
"REFRESH": "Aggiorna", "REFRESH": "Aggiorna",
"LOGIN": "Accedi", "LOGIN": "Accedi",
@ -896,11 +897,21 @@
"PROVIDER": "Fornitore SMS", "PROVIDER": "Fornitore SMS",
"ADDPROVIDER": "Aggiungi fornitore SMS", "ADDPROVIDER": "Aggiungi fornitore SMS",
"ADDPROVIDERDESCRIPTION": "Scegli uno dei provider disponibili e inserisci i dati richiesti.", "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": { "TWILIO": {
"SID": "Sid", "SID": "Sid",
"TOKEN": "Token", "TOKEN": "Token",
"SENDERNUMBER": "Sender Number", "SENDERNUMBER": "Sender Number",
"ADDED": "Twilio aggiunto con successo.", "ADDED": "Twilio aggiunto con successo.",
"REMOVED": "Twilio rimosso con successo.",
"CHANGETOKEN": "Cambia Token", "CHANGETOKEN": "Cambia Token",
"SETTOKEN": "Cambia Token", "SETTOKEN": "Cambia Token",
"TOKENSET": "Token cambiato con successo." "TOKENSET": "Token cambiato con successo."