bfg-common 1.5.783 → 1.5.785

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3870,6 +3870,7 @@
3870
3870
  },
3871
3871
  "ssoConfiguration": {
3872
3872
  "twoFactorPolicy": "Палітыка двухфактарнай аўтэнтыфікацыі",
3873
+ "enableTwoFactorPolicy": "Уключыць палітыку двухфактарнай аўтэнтыфікацыі",
3873
3874
  "twoFactorGracePeriodDays": "Дні льготнага перыяду для двухфактарнай аўтэнтыфікацыі",
3874
3875
  "maxIdenticalAdjacentCharacters": "Макс. колькасць аднолькавых суседніх сімвалаў",
3875
3876
  "maxLength": "Макс. даўжыня",
@@ -3874,6 +3874,7 @@
3874
3874
  },
3875
3875
  "ssoConfiguration": {
3876
3876
  "twoFactorPolicy": "Two-factor policy",
3877
+ "enableTwoFactorPolicy": "Enable Two-factor policy",
3877
3878
  "twoFactorGracePeriodDays": "Two factor grace period days",
3878
3879
  "maxIdenticalAdjacentCharacters": "Max identical adjacent characters",
3879
3880
  "maxLength": "Max length",
@@ -3874,6 +3874,7 @@
3874
3874
  },
3875
3875
  "ssoConfiguration": {
3876
3876
  "twoFactorPolicy": "Երկու գործոնի քաղաքականություն",
3877
+ "enableTwoFactorPolicy": "Միացնել երկգործոն նույնականացման քաղաքականությունը",
3877
3878
  "twoFactorGracePeriodDays": "Երկու գործոնի արտոնյալ ժամանակահատվածի օրերը",
3878
3879
  "maxIdenticalAdjacentCharacters": "Առավելագույն նույնական հաջորդական նիշեր",
3879
3880
  "maxLength": "Առավելագույն երկարություն",
@@ -3873,6 +3873,7 @@
3873
3873
  },
3874
3874
  "ssoConfiguration": {
3875
3875
  "twoFactorPolicy": "Екі факторлы саясат",
3876
+ "enableTwoFactorPolicy": "Екі факторлы аутентификация саясатын қосу",
3876
3877
  "twoFactorGracePeriodDays": "Екі факторлы жеңілдік мерзімінің күндері",
3877
3878
  "maxIdenticalAdjacentCharacters": "Қатар тұрған бірдей таңбалардың макс. саны",
3878
3879
  "maxLength": "Максималды ұзындық",
@@ -3873,6 +3873,7 @@
3873
3873
  },
3874
3874
  "ssoConfiguration": {
3875
3875
  "twoFactorPolicy": "Политика двухфакторной аутентификации",
3876
+ "enableTwoFactorPolicy": "Включить политику двухфакторной аутентификации",
3876
3877
  "twoFactorGracePeriodDays": "Дни льготного периода для двухфакторной аутентификации",
3877
3878
  "maxIdenticalAdjacentCharacters": "Макс. количество одинаковых соседних символов",
3878
3879
  "maxLength": "Максимальная длина",
@@ -3871,6 +3871,7 @@
3871
3871
  },
3872
3872
  "ssoConfiguration": {
3873
3873
  "twoFactorPolicy": "双因素策略",
3874
+ "enableTwoFactorPolicy": "启用双因素认证策略",
3874
3875
  "twoFactorGracePeriodDays": "双因素宽限期天数",
3875
3876
  "maxIdenticalAdjacentCharacters": "最大相同相邻字符数",
3876
3877
  "maxLength": "最大长度",
@@ -1,7 +1,8 @@
1
1
  import Wizard from '~/node_modules/bfg-uikit/components/ui/wizard/lib/utils/utils'
2
2
  import type { API_UI_I_Error } from '~/lib/models/store/interfaces'
3
3
  import type { UI_T_Project } from '~/lib/models/types'
4
- import { UI_E_Kind } from '~/lib/models/enums'
4
+ import { UI_E_ObjectNodeKind } from '~/lib/models/enums'
5
+ import { checkName } from '~/lib/utils/validation'
5
6
 
6
7
  export const checkValidityName = async ({
7
8
  name,
@@ -17,6 +18,16 @@ export const checkValidityName = async ({
17
18
  datacenterId?: string
18
19
  }): Promise<void> => {
19
20
  wizard.setLoader(true)
21
+
22
+ const asd = checkName(
23
+ name,
24
+ project,
25
+ UI_E_ObjectNodeKind.DATASTORE,
26
+ datacenterId
27
+ )
28
+
29
+ console.log(asd, 'validate datastore name in vizard')
30
+
20
31
  const url = buildValidationUrl(name, project, datacenterId)
21
32
 
22
33
  const { error } = await useMyFetch<null, API_UI_I_Error>(url, {
@@ -45,7 +56,7 @@ const buildValidationUrl = (
45
56
 
46
57
  const params = new URLSearchParams()
47
58
  params.set('name', name)
48
- params.set('kind', String(UI_E_Kind.STORAGE_VALIDATION_NAME))
59
+ params.set('kind', String(UI_E_ObjectNodeKind.DATASTORE))
49
60
  if (datacenterId) params.set('datacenter', datacenterId)
50
61
 
51
62
  return `/ui/object/validate_name_datacenter?${params.toString()}`
@@ -69,5 +69,56 @@ export enum UI_E_DatastoreState {
69
69
  UNHEALTHY,
70
70
  MAINTENANCE,
71
71
  INACCESSIBLE,
72
- UNMOUNTED ,
72
+ UNMOUNTED,
73
+ }
74
+
75
+ export enum UI_E_ObjectNodeKind {
76
+ EMPTY,
77
+ ZONE,
78
+ ZONE_DIR,
79
+ DATACENTER,
80
+ DC_HC_DIR,
81
+ DC_NET_DIR,
82
+ DC_DS_DIR,
83
+ DC_VMT_DIR,
84
+ CLUSTER,
85
+ HOST,
86
+ DATASTORE,
87
+ NETWORK,
88
+ DSWITCH,
89
+ VM,
90
+ VM_TEMPLATE,
91
+ VM_APP,
92
+ BUCKET,
93
+ BACKUP_STORAGE,
94
+ RESOURCE_POOL,
95
+ NAMESPACE,
96
+ DC_BACKUP_DIR,
97
+ ENDSUBTYPES,
98
+ }
99
+
100
+ // Маппинг для названий
101
+ export const UI_E_ObjectKindName: Record<UI_E_ObjectNodeKind, string> = {
102
+ [UI_E_ObjectNodeKind.EMPTY]: 'empty',
103
+ [UI_E_ObjectNodeKind.ZONE]: 'zone',
104
+ [UI_E_ObjectNodeKind.ZONE_DIR]: 'zone_dir',
105
+ [UI_E_ObjectNodeKind.DATACENTER]: 'datacenter',
106
+ [UI_E_ObjectNodeKind.DC_HC_DIR]: 'dc_hc_dir',
107
+ [UI_E_ObjectNodeKind.DC_NET_DIR]: 'dc_net_dir',
108
+ [UI_E_ObjectNodeKind.DC_DS_DIR]: 'dc_ds_dir',
109
+ [UI_E_ObjectNodeKind.DC_VMT_DIR]: 'dc_vmt_dir',
110
+ [UI_E_ObjectNodeKind.CLUSTER]: 'cluster',
111
+ [UI_E_ObjectNodeKind.HOST]: 'host',
112
+ [UI_E_ObjectNodeKind.DATASTORE]: 'datastore',
113
+ [UI_E_ObjectNodeKind.NETWORK]: 'network',
114
+ [UI_E_ObjectNodeKind.DSWITCH]: 'dswitch',
115
+ [UI_E_ObjectNodeKind.VM]: 'vm',
116
+ [UI_E_ObjectNodeKind.VM_TEMPLATE]: 'vm_template',
117
+ [UI_E_ObjectNodeKind.VM_APP]: 'vm_app',
118
+ [UI_E_ObjectNodeKind.BUCKET]: 'bucket',
119
+ [UI_E_ObjectNodeKind.BACKUP_STORAGE]: 'backup_storage',
120
+ [UI_E_ObjectNodeKind.RESOURCE_POOL]: 'resource_pool',
121
+ [UI_E_ObjectNodeKind.NAMESPACE]: 'namespace',
122
+ [UI_E_ObjectNodeKind.DC_BACKUP_DIR]: 'dc_backup_dir',
123
+ [UI_E_ObjectNodeKind.ENDSUBTYPES]: 'endsubtypes',
73
124
  }
@@ -0,0 +1,74 @@
1
+ import type { API_UI_I_Error } from '~/lib/models/store/interfaces'
2
+ import type { UI_T_Project } from '~/lib/models/types'
3
+ import { UI_E_ObjectNodeKind } from '~/lib/models/enums'
4
+
5
+ // const onChangeName = async (name: string): Promise<void> => {
6
+ //
7
+ //
8
+ // isLoading.value = true
9
+ // const { statusCode } = await checkName(name, 'sphere', UI_E_ObjectNodeKind.DATASTORE)
10
+ // isLoading.value = false
11
+ //
12
+ // /* TODO: сделать глобально */
13
+ // switch (statusCode) {
14
+ // case 200: // OK
15
+ // alertErrorText.value = null
16
+ // break
17
+ // case 405: // Invalid kind
18
+ // break
19
+ // case 406: // Invalid name
20
+ // break
21
+ // case 409: // Name exist
22
+ // alertErrorText.value =
23
+ // localization.value.common.datastoreExistsTheSelectedLocation
24
+ // break
25
+ // }
26
+ //
27
+ // if (alertErrorText.value) return
28
+ // onHide()
29
+ // }
30
+
31
+ export const checkName = async (
32
+ name: string,
33
+ project: UI_T_Project,
34
+ kind?: UI_E_ObjectNodeKind,
35
+ datacenterId?: string
36
+ ): Promise<{ statusCode: number; error?: string }> => {
37
+ const url = buildValidationUrl(name, project, kind, datacenterId)
38
+ console.log(url, 'checkName URL')
39
+
40
+ const { error } = await useMyFetch<null, API_UI_I_Error>(url, {
41
+ method: 'GET',
42
+ })
43
+
44
+ if (!error.value) {
45
+ return {
46
+ statusCode: 200,
47
+ }
48
+ }
49
+
50
+ return {
51
+ statusCode: error.value?.statusCode ?? 500,
52
+ error: error.value.data?.error_message || error.value.data,
53
+ }
54
+ }
55
+
56
+ const buildValidationUrl = (
57
+ name: string,
58
+ project: UI_T_Project,
59
+ kind?: UI_E_ObjectNodeKind,
60
+ datacenterId?: string
61
+ ): string => {
62
+ const params = new URLSearchParams({ name }) // URLSearchParams сам закодирует
63
+
64
+ if (project === 'procurator') {
65
+ /* TODO надо исправить для пракуратора, чтобы валидация проходила для всех елементов */
66
+ return `/ui/ds/validate?${params.toString()}`
67
+ }
68
+
69
+ params.set('kind', String(kind))
70
+ if (datacenterId) params.set('datacenter', datacenterId)
71
+
72
+ const endpoint = datacenterId ? 'validate_name_datacenter' : 'validate_name'
73
+ return `/ui/object/${endpoint}?${params.toString()}`
74
+ }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "bfg-common",
3
3
  "private": false,
4
- "version": "1.5.783",
4
+ "version": "1.5.785",
5
5
  "scripts": {
6
6
  "build": "nuxt build",
7
7
  "dev": "nuxt dev --port=3002",