Skip to content

Commit

Permalink
NAS-130333 / 24.10 / Adds roles for app related api endpoint access e…
Browse files Browse the repository at this point in the history
…lements (#10417)
  • Loading branch information
RehanY147 authored Aug 10, 2024
1 parent fd8fe90 commit 5807570
Show file tree
Hide file tree
Showing 102 changed files with 113 additions and 10 deletions.
2 changes: 2 additions & 0 deletions src/app/enums/role.enum.ts
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,7 @@ export enum Role {
VmWrite = 'VM_WRITE',
DirectoryServiceRead = 'DIRECTORY_SERVICE_READ',
DirectoryServiceWrite = 'DIRECTORY_SERVICE_WRITE',
DockerWrite = 'DOCKER_WRITE',
}

export const roleNames = new Map<Role, string>([
Expand Down Expand Up @@ -209,4 +210,5 @@ export const roleNames = new Map<Role, string>([
[Role.VmWrite, T('VM Write')],
[Role.DirectoryServiceRead, T('Directory Service Read')],
[Role.DirectoryServiceWrite, T('Directory Service Write')],
[Role.DockerWrite, T('Docker Write')],
]);
4 changes: 1 addition & 3 deletions src/app/interfaces/api/api-job-directory.interface.ts
Original file line number Diff line number Diff line change
Expand Up @@ -80,9 +80,7 @@ export interface ApiJobDirectory {
'app.stop': { params: AppStartQueryParams; response: void };
'app.delete': { params: AppDeleteParams; response: boolean };
'app.upgrade': { params: AppUpgradeParams; response: App };

// Chart Release
'chart.release.rollback': { params: [name: string, params: ChartRollbackParams]; response: App };
'app.rollback': { params: [name: string, params: ChartRollbackParams]; response: App };

// CloudBackup
'cloud_backup.sync': { params: [id: number, params?: { dry_run: boolean }]; response: void };
Expand Down
2 changes: 0 additions & 2 deletions src/app/interfaces/app.interface.ts
Original file line number Diff line number Diff line change
Expand Up @@ -298,8 +298,6 @@ export type AppDeleteParams = [
];

export interface ChartRollbackParams {
force_rollback?: boolean;
recreate_resources?: boolean;
rollback_snapshot?: boolean;
app_version: string;
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
</div>
@if (!!(dockerStore.selectedPool$ | async)) {
<button
*ixRequiresRoles="requiredRoles"
mat-button
color="primary"
[ixTest]="[app?.name, 'install']"
Expand All @@ -28,6 +29,7 @@
</button>
} @else {
<button
*ixRequiresRoles="dockerUpdateRequiredRoles"
mat-button
color="primary"
ixTest="setup-pool"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import { TranslateService } from '@ngx-translate/core';
import {
filter, map, Observable, of, switchMap, take,
} from 'rxjs';
import { Role } from 'app/enums/role.enum';
import { AvailableApp } from 'app/interfaces/available-app.interface';
import { DialogService } from 'app/modules/dialog/dialog.service';
import { SelectPoolDialogComponent } from 'app/pages/apps/components/select-pool-dialog/select-pool-dialog.component';
Expand All @@ -26,6 +27,8 @@ import { WebSocketService } from 'app/services/ws.service';
export class AppDetailsHeaderComponent {
@Input() app: AvailableApp;
@Input() isLoading$: Observable<boolean>;
protected requiredRoles = [Role.AppsWrite];
protected readonly dockerUpdateRequiredRoles = [Role.DockerWrite];

constructor(
protected dockerStore: DockerStore,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ import { WebSocketService } from 'app/services/ws.service';
changeDetection: ChangeDetectionStrategy.OnPush,
})
export class AvailableAppsHeaderComponent implements OnInit, AfterViewInit {
protected readonly requiredRoles = [Role.AppsWrite];
protected readonly requiredRoles = [Role.AppsWrite, Role.CatalogWrite];

form = this.fb.group({
sort: [null as AppsFiltersSort],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@

<ix-form-actions>
<button
*ixRequiresRoles="requiredRoles"
mat-button
type="submit"
color="primary"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import {
import { FormBuilder, Validators } from '@angular/forms';
import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
import { switchMap } from 'rxjs';
import { Role } from 'app/enums/role.enum';
import { helptextApps } from 'app/helptext/apps/apps';
import { Catalog, CatalogUpdate } from 'app/interfaces/catalog.interface';
import { IxSlideInRef } from 'app/modules/forms/ix-forms/components/ix-slide-in/ix-slide-in-ref';
Expand All @@ -19,6 +20,7 @@ import { WebSocketService } from 'app/services/ws.service';
})
export class CatalogSettingsComponent implements OnInit {
protected isFormLoading = signal(false);
protected readonly requiredRoles = [Role.AppsWrite, Role.CatalogWrite];

protected form = this.fb.group({
preferred_trains: [[] as string[], Validators.required],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ describe('AppRollbackModalComponent', () => {
},
mockAuth(),
mockWebSocket([
mockJob('chart.release.rollback'),
mockJob('app.rollback'),
]),
mockProvider(DialogService, {
jobDialog: jest.fn(() => ({
Expand Down Expand Up @@ -70,7 +70,7 @@ describe('AppRollbackModalComponent', () => {

expect(spectator.inject(DialogService).jobDialog).toHaveBeenCalled();
expect(spectator.inject(WebSocketService).job).toHaveBeenCalledWith(
'chart.release.rollback',
'app.rollback',
['my-app', { app_version: '0.9.8', rollback_snapshot: true }],
);
expect(spectator.inject(MatDialogRef).close).toHaveBeenCalledWith(true);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ export class AppRollbackModalComponent {
const rollbackParams = this.form.value as Required<ChartRollbackParams>;

this.dialogService.jobDialog(
this.ws.job('chart.release.rollback', [this.app.name, rollbackParams]),
this.ws.job('app.rollback', [this.app.name, rollbackParams]),
{ title: helptextApps.apps.rollback_dialog.job },
)
.afterClosed()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@

<mat-menu #menu="matMenu" overlapTrigger="false">
<button
*ixRequiresRoles="updateDockerRoles"
mat-menu-item
ixTest="choose-pool"
[ixUiSearch]="searchableElements.elements.choosePool"
Expand All @@ -20,6 +21,7 @@

@if (!!(dockerStore.selectedPool$ | async)) {
<button
*ixRequiresRoles="updateDockerRoles"
mat-menu-item
ixTest="unset-pool"
(click)="onUnsetPool()"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import { MatDialog } from '@angular/material/dialog';
import { MatMenuHarness } from '@angular/material/menu/testing';
import { createComponentFactory, mockProvider, Spectator } from '@ngneat/spectator/jest';
import { of } from 'rxjs';
import { mockAuth } from 'app/core/testing/utils/mock-auth.utils';
import { DialogService } from 'app/modules/dialog/dialog.service';
import { AppSettingsButtonComponent } from 'app/pages/apps/components/installed-apps/app-settings-button/app-settings-button.component';
import { SelectPoolDialogComponent } from 'app/pages/apps/components/select-pool-dialog/select-pool-dialog.component';
Expand All @@ -20,6 +21,7 @@ describe('AppSettingsButtonComponent', () => {
const createComponent = createComponentFactory({
component: AppSettingsButtonComponent,
providers: [
mockAuth(),
mockProvider(MatDialog),
mockProvider(IxSlideInService),
mockProvider(DialogService, {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import { MatDialog } from '@angular/material/dialog';
import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
import { TranslateService } from '@ngx-translate/core';
import { filter } from 'rxjs';
import { Role } from 'app/enums/role.enum';
import { helptextApps } from 'app/helptext/apps/apps';
import { DialogService } from 'app/modules/dialog/dialog.service';
import { SnackbarService } from 'app/modules/snackbar/services/snackbar.service';
Expand All @@ -23,6 +24,8 @@ import { IxSlideInService } from 'app/services/ix-slide-in.service';
})
export class AppSettingsButtonComponent {
readonly searchableElements = appSettingsButtonElements;
protected readonly manageCatalogRequiredRoles = [Role.AppsWrite, Role.CatalogWrite];
protected readonly updateDockerRoles = [Role.DockerWrite];

constructor(
private ixSlideInService: IxSlideInService,
Expand Down
1 change: 1 addition & 0 deletions src/assets/i18n/af.json
Original file line number Diff line number Diff line change
Expand Up @@ -1391,6 +1391,7 @@
"Docker Hub Rate Limit Warning": "",
"Docker Image": "",
"Docker Registry Authentication": "",
"Docker Write": "",
"Docs": "",
"Does your business need <a href=\"https://www.ixsystems.com/truenas/?utm_source=truenas+core+ui&utm_medium=os&utm_campaign=welcome\" target=\"_blank\">Enterprise level</a> support and services? Contact <a href=\"https://www.ixsystems.com/quote-form/?utm_source=truenas+core+ui&utm_medium=os&utm_campaign=welcome\"target=\"_blank\">iXsystems</a> for more information.": "",
"Domain": "",
Expand Down
1 change: 1 addition & 0 deletions src/assets/i18n/ar.json
Original file line number Diff line number Diff line change
Expand Up @@ -1391,6 +1391,7 @@
"Docker Hub Rate Limit Warning": "",
"Docker Image": "",
"Docker Registry Authentication": "",
"Docker Write": "",
"Docs": "",
"Does your business need <a href=\"https://www.ixsystems.com/truenas/?utm_source=truenas+core+ui&utm_medium=os&utm_campaign=welcome\" target=\"_blank\">Enterprise level</a> support and services? Contact <a href=\"https://www.ixsystems.com/quote-form/?utm_source=truenas+core+ui&utm_medium=os&utm_campaign=welcome\"target=\"_blank\">iXsystems</a> for more information.": "",
"Domain": "",
Expand Down
1 change: 1 addition & 0 deletions src/assets/i18n/ast.json
Original file line number Diff line number Diff line change
Expand Up @@ -1391,6 +1391,7 @@
"Docker Hub Rate Limit Warning": "",
"Docker Image": "",
"Docker Registry Authentication": "",
"Docker Write": "",
"Docs": "",
"Does your business need <a href=\"https://www.ixsystems.com/truenas/?utm_source=truenas+core+ui&utm_medium=os&utm_campaign=welcome\" target=\"_blank\">Enterprise level</a> support and services? Contact <a href=\"https://www.ixsystems.com/quote-form/?utm_source=truenas+core+ui&utm_medium=os&utm_campaign=welcome\"target=\"_blank\">iXsystems</a> for more information.": "",
"Domain": "",
Expand Down
1 change: 1 addition & 0 deletions src/assets/i18n/az.json
Original file line number Diff line number Diff line change
Expand Up @@ -1391,6 +1391,7 @@
"Docker Hub Rate Limit Warning": "",
"Docker Image": "",
"Docker Registry Authentication": "",
"Docker Write": "",
"Docs": "",
"Does your business need <a href=\"https://www.ixsystems.com/truenas/?utm_source=truenas+core+ui&utm_medium=os&utm_campaign=welcome\" target=\"_blank\">Enterprise level</a> support and services? Contact <a href=\"https://www.ixsystems.com/quote-form/?utm_source=truenas+core+ui&utm_medium=os&utm_campaign=welcome\"target=\"_blank\">iXsystems</a> for more information.": "",
"Domain": "",
Expand Down
1 change: 1 addition & 0 deletions src/assets/i18n/be.json
Original file line number Diff line number Diff line change
Expand Up @@ -1391,6 +1391,7 @@
"Docker Hub Rate Limit Warning": "",
"Docker Image": "",
"Docker Registry Authentication": "",
"Docker Write": "",
"Docs": "",
"Does your business need <a href=\"https://www.ixsystems.com/truenas/?utm_source=truenas+core+ui&utm_medium=os&utm_campaign=welcome\" target=\"_blank\">Enterprise level</a> support and services? Contact <a href=\"https://www.ixsystems.com/quote-form/?utm_source=truenas+core+ui&utm_medium=os&utm_campaign=welcome\"target=\"_blank\">iXsystems</a> for more information.": "",
"Domain": "",
Expand Down
1 change: 1 addition & 0 deletions src/assets/i18n/bg.json
Original file line number Diff line number Diff line change
Expand Up @@ -1391,6 +1391,7 @@
"Docker Hub Rate Limit Warning": "",
"Docker Image": "",
"Docker Registry Authentication": "",
"Docker Write": "",
"Docs": "",
"Does your business need <a href=\"https://www.ixsystems.com/truenas/?utm_source=truenas+core+ui&utm_medium=os&utm_campaign=welcome\" target=\"_blank\">Enterprise level</a> support and services? Contact <a href=\"https://www.ixsystems.com/quote-form/?utm_source=truenas+core+ui&utm_medium=os&utm_campaign=welcome\"target=\"_blank\">iXsystems</a> for more information.": "",
"Domain": "",
Expand Down
1 change: 1 addition & 0 deletions src/assets/i18n/bn.json
Original file line number Diff line number Diff line change
Expand Up @@ -1391,6 +1391,7 @@
"Docker Hub Rate Limit Warning": "",
"Docker Image": "",
"Docker Registry Authentication": "",
"Docker Write": "",
"Docs": "",
"Does your business need <a href=\"https://www.ixsystems.com/truenas/?utm_source=truenas+core+ui&utm_medium=os&utm_campaign=welcome\" target=\"_blank\">Enterprise level</a> support and services? Contact <a href=\"https://www.ixsystems.com/quote-form/?utm_source=truenas+core+ui&utm_medium=os&utm_campaign=welcome\"target=\"_blank\">iXsystems</a> for more information.": "",
"Domain": "",
Expand Down
1 change: 1 addition & 0 deletions src/assets/i18n/br.json
Original file line number Diff line number Diff line change
Expand Up @@ -1391,6 +1391,7 @@
"Docker Hub Rate Limit Warning": "",
"Docker Image": "",
"Docker Registry Authentication": "",
"Docker Write": "",
"Docs": "",
"Does your business need <a href=\"https://www.ixsystems.com/truenas/?utm_source=truenas+core+ui&utm_medium=os&utm_campaign=welcome\" target=\"_blank\">Enterprise level</a> support and services? Contact <a href=\"https://www.ixsystems.com/quote-form/?utm_source=truenas+core+ui&utm_medium=os&utm_campaign=welcome\"target=\"_blank\">iXsystems</a> for more information.": "",
"Domain": "",
Expand Down
1 change: 1 addition & 0 deletions src/assets/i18n/bs.json
Original file line number Diff line number Diff line change
Expand Up @@ -1391,6 +1391,7 @@
"Docker Hub Rate Limit Warning": "",
"Docker Image": "",
"Docker Registry Authentication": "",
"Docker Write": "",
"Docs": "",
"Does your business need <a href=\"https://www.ixsystems.com/truenas/?utm_source=truenas+core+ui&utm_medium=os&utm_campaign=welcome\" target=\"_blank\">Enterprise level</a> support and services? Contact <a href=\"https://www.ixsystems.com/quote-form/?utm_source=truenas+core+ui&utm_medium=os&utm_campaign=welcome\"target=\"_blank\">iXsystems</a> for more information.": "",
"Domain": "",
Expand Down
1 change: 1 addition & 0 deletions src/assets/i18n/ca.json
Original file line number Diff line number Diff line change
Expand Up @@ -1391,6 +1391,7 @@
"Docker Hub Rate Limit Warning": "",
"Docker Image": "",
"Docker Registry Authentication": "",
"Docker Write": "",
"Docs": "",
"Does your business need <a href=\"https://www.ixsystems.com/truenas/?utm_source=truenas+core+ui&utm_medium=os&utm_campaign=welcome\" target=\"_blank\">Enterprise level</a> support and services? Contact <a href=\"https://www.ixsystems.com/quote-form/?utm_source=truenas+core+ui&utm_medium=os&utm_campaign=welcome\"target=\"_blank\">iXsystems</a> for more information.": "",
"Domain": "",
Expand Down
1 change: 1 addition & 0 deletions src/assets/i18n/cs.json
Original file line number Diff line number Diff line change
Expand Up @@ -1305,6 +1305,7 @@
"Docker Hub Rate Limit Warning": "",
"Docker Image": "",
"Docker Registry Authentication": "",
"Docker Write": "",
"Docs": "",
"Does your business need <a href=\"https://www.ixsystems.com/truenas/?utm_source=truenas+core+ui&utm_medium=os&utm_campaign=welcome\" target=\"_blank\">Enterprise level</a> support and services? Contact <a href=\"https://www.ixsystems.com/quote-form/?utm_source=truenas+core+ui&utm_medium=os&utm_campaign=welcome\"target=\"_blank\">iXsystems</a> for more information.": "",
"Domain Account Password": "",
Expand Down
1 change: 1 addition & 0 deletions src/assets/i18n/cy.json
Original file line number Diff line number Diff line change
Expand Up @@ -1391,6 +1391,7 @@
"Docker Hub Rate Limit Warning": "",
"Docker Image": "",
"Docker Registry Authentication": "",
"Docker Write": "",
"Docs": "",
"Does your business need <a href=\"https://www.ixsystems.com/truenas/?utm_source=truenas+core+ui&utm_medium=os&utm_campaign=welcome\" target=\"_blank\">Enterprise level</a> support and services? Contact <a href=\"https://www.ixsystems.com/quote-form/?utm_source=truenas+core+ui&utm_medium=os&utm_campaign=welcome\"target=\"_blank\">iXsystems</a> for more information.": "",
"Domain": "",
Expand Down
1 change: 1 addition & 0 deletions src/assets/i18n/da.json
Original file line number Diff line number Diff line change
Expand Up @@ -1391,6 +1391,7 @@
"Docker Hub Rate Limit Warning": "",
"Docker Image": "",
"Docker Registry Authentication": "",
"Docker Write": "",
"Docs": "",
"Does your business need <a href=\"https://www.ixsystems.com/truenas/?utm_source=truenas+core+ui&utm_medium=os&utm_campaign=welcome\" target=\"_blank\">Enterprise level</a> support and services? Contact <a href=\"https://www.ixsystems.com/quote-form/?utm_source=truenas+core+ui&utm_medium=os&utm_campaign=welcome\"target=\"_blank\">iXsystems</a> for more information.": "",
"Domain": "",
Expand Down
1 change: 1 addition & 0 deletions src/assets/i18n/de.json
Original file line number Diff line number Diff line change
Expand Up @@ -992,6 +992,7 @@
"Docker Hub Rate Limit Warning": "",
"Docker Image": "",
"Docker Registry Authentication": "",
"Docker Write": "",
"Does your business need <a href=\"https://www.ixsystems.com/truenas/?utm_source=truenas+core+ui&utm_medium=os&utm_campaign=welcome\" target=\"_blank\">Enterprise level</a> support and services? Contact <a href=\"https://www.ixsystems.com/quote-form/?utm_source=truenas+core+ui&utm_medium=os&utm_campaign=welcome\"target=\"_blank\">iXsystems</a> for more information.": "",
"Domain Account Password": "",
"Domain Name System": "",
Expand Down
1 change: 1 addition & 0 deletions src/assets/i18n/dsb.json
Original file line number Diff line number Diff line change
Expand Up @@ -1391,6 +1391,7 @@
"Docker Hub Rate Limit Warning": "",
"Docker Image": "",
"Docker Registry Authentication": "",
"Docker Write": "",
"Docs": "",
"Does your business need <a href=\"https://www.ixsystems.com/truenas/?utm_source=truenas+core+ui&utm_medium=os&utm_campaign=welcome\" target=\"_blank\">Enterprise level</a> support and services? Contact <a href=\"https://www.ixsystems.com/quote-form/?utm_source=truenas+core+ui&utm_medium=os&utm_campaign=welcome\"target=\"_blank\">iXsystems</a> for more information.": "",
"Domain": "",
Expand Down
1 change: 1 addition & 0 deletions src/assets/i18n/el.json
Original file line number Diff line number Diff line change
Expand Up @@ -1391,6 +1391,7 @@
"Docker Hub Rate Limit Warning": "",
"Docker Image": "",
"Docker Registry Authentication": "",
"Docker Write": "",
"Docs": "",
"Does your business need <a href=\"https://www.ixsystems.com/truenas/?utm_source=truenas+core+ui&utm_medium=os&utm_campaign=welcome\" target=\"_blank\">Enterprise level</a> support and services? Contact <a href=\"https://www.ixsystems.com/quote-form/?utm_source=truenas+core+ui&utm_medium=os&utm_campaign=welcome\"target=\"_blank\">iXsystems</a> for more information.": "",
"Domain": "",
Expand Down
1 change: 1 addition & 0 deletions src/assets/i18n/en-au.json
Original file line number Diff line number Diff line change
Expand Up @@ -1391,6 +1391,7 @@
"Docker Hub Rate Limit Warning": "",
"Docker Image": "",
"Docker Registry Authentication": "",
"Docker Write": "",
"Docs": "",
"Does your business need <a href=\"https://www.ixsystems.com/truenas/?utm_source=truenas+core+ui&utm_medium=os&utm_campaign=welcome\" target=\"_blank\">Enterprise level</a> support and services? Contact <a href=\"https://www.ixsystems.com/quote-form/?utm_source=truenas+core+ui&utm_medium=os&utm_campaign=welcome\"target=\"_blank\">iXsystems</a> for more information.": "",
"Domain": "",
Expand Down
1 change: 1 addition & 0 deletions src/assets/i18n/en-gb.json
Original file line number Diff line number Diff line change
Expand Up @@ -1391,6 +1391,7 @@
"Docker Hub Rate Limit Warning": "",
"Docker Image": "",
"Docker Registry Authentication": "",
"Docker Write": "",
"Docs": "",
"Does your business need <a href=\"https://www.ixsystems.com/truenas/?utm_source=truenas+core+ui&utm_medium=os&utm_campaign=welcome\" target=\"_blank\">Enterprise level</a> support and services? Contact <a href=\"https://www.ixsystems.com/quote-form/?utm_source=truenas+core+ui&utm_medium=os&utm_campaign=welcome\"target=\"_blank\">iXsystems</a> for more information.": "",
"Domain": "",
Expand Down
1 change: 1 addition & 0 deletions src/assets/i18n/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -1391,6 +1391,7 @@
"Docker Hub Rate Limit Warning": "",
"Docker Image": "",
"Docker Registry Authentication": "",
"Docker Write": "",
"Docs": "",
"Does your business need <a href=\"https://www.ixsystems.com/truenas/?utm_source=truenas+core+ui&utm_medium=os&utm_campaign=welcome\" target=\"_blank\">Enterprise level</a> support and services? Contact <a href=\"https://www.ixsystems.com/quote-form/?utm_source=truenas+core+ui&utm_medium=os&utm_campaign=welcome\"target=\"_blank\">iXsystems</a> for more information.": "",
"Domain": "",
Expand Down
1 change: 1 addition & 0 deletions src/assets/i18n/eo.json
Original file line number Diff line number Diff line change
Expand Up @@ -1391,6 +1391,7 @@
"Docker Hub Rate Limit Warning": "",
"Docker Image": "",
"Docker Registry Authentication": "",
"Docker Write": "",
"Docs": "",
"Does your business need <a href=\"https://www.ixsystems.com/truenas/?utm_source=truenas+core+ui&utm_medium=os&utm_campaign=welcome\" target=\"_blank\">Enterprise level</a> support and services? Contact <a href=\"https://www.ixsystems.com/quote-form/?utm_source=truenas+core+ui&utm_medium=os&utm_campaign=welcome\"target=\"_blank\">iXsystems</a> for more information.": "",
"Domain": "",
Expand Down
1 change: 1 addition & 0 deletions src/assets/i18n/es-ar.json
Original file line number Diff line number Diff line change
Expand Up @@ -734,6 +734,7 @@
"Docker Hub Rate Limit Warning": "",
"Docker Image": "",
"Docker Registry Authentication": "",
"Docker Write": "",
"Docs": "",
"Does your business need <a href=\"https://www.ixsystems.com/truenas/?utm_source=truenas+core+ui&utm_medium=os&utm_campaign=welcome\" target=\"_blank\">Enterprise level</a> support and services? Contact <a href=\"https://www.ixsystems.com/quote-form/?utm_source=truenas+core+ui&utm_medium=os&utm_campaign=welcome\"target=\"_blank\">iXsystems</a> for more information.": "",
"Domain Account Password": "",
Expand Down
1 change: 1 addition & 0 deletions src/assets/i18n/es-co.json
Original file line number Diff line number Diff line change
Expand Up @@ -1391,6 +1391,7 @@
"Docker Hub Rate Limit Warning": "",
"Docker Image": "",
"Docker Registry Authentication": "",
"Docker Write": "",
"Docs": "",
"Does your business need <a href=\"https://www.ixsystems.com/truenas/?utm_source=truenas+core+ui&utm_medium=os&utm_campaign=welcome\" target=\"_blank\">Enterprise level</a> support and services? Contact <a href=\"https://www.ixsystems.com/quote-form/?utm_source=truenas+core+ui&utm_medium=os&utm_campaign=welcome\"target=\"_blank\">iXsystems</a> for more information.": "",
"Domain": "",
Expand Down
1 change: 1 addition & 0 deletions src/assets/i18n/es-mx.json
Original file line number Diff line number Diff line change
Expand Up @@ -1391,6 +1391,7 @@
"Docker Hub Rate Limit Warning": "",
"Docker Image": "",
"Docker Registry Authentication": "",
"Docker Write": "",
"Docs": "",
"Does your business need <a href=\"https://www.ixsystems.com/truenas/?utm_source=truenas+core+ui&utm_medium=os&utm_campaign=welcome\" target=\"_blank\">Enterprise level</a> support and services? Contact <a href=\"https://www.ixsystems.com/quote-form/?utm_source=truenas+core+ui&utm_medium=os&utm_campaign=welcome\"target=\"_blank\">iXsystems</a> for more information.": "",
"Domain": "",
Expand Down
Loading

0 comments on commit 5807570

Please sign in to comment.