diff --git a/plugins/user-authenticators/ldap/src/main/java/org/apache/cloudstack/api/command/LinkAccountToLdapCmd.java b/plugins/user-authenticators/ldap/src/main/java/org/apache/cloudstack/api/command/LinkAccountToLdapCmd.java
index d3ab463cffb2..dbf61c006eb7 100644
--- a/plugins/user-authenticators/ldap/src/main/java/org/apache/cloudstack/api/command/LinkAccountToLdapCmd.java
+++ b/plugins/user-authenticators/ldap/src/main/java/org/apache/cloudstack/api/command/LinkAccountToLdapCmd.java
@@ -79,7 +79,7 @@ public void execute() throws ServerApiException {
if (admin != null) {
LdapUser ldapUser = null;
try {
- ldapUser = _ldapManager.getUser(admin, type, ldapDomain, domainId);
+ ldapUser = _ldapManager.getUser(admin, getType(), ldapDomain, domainId);
} catch (NoLdapUserMatchingQueryException e) {
logger.debug("no ldap user matching username {} in the given group/ou", admin, e);
}
@@ -120,7 +120,7 @@ public Long getDomainId() {
}
public String getType() {
- return type;
+ return type == null ? LdapManager.LinkType.GROUP.name() : type;
}
public String getLdapDomain() {
diff --git a/plugins/user-authenticators/ldap/src/test/java/org/apache/cloudstack/api/command/LinkAccountToLdapCmdTest.java b/plugins/user-authenticators/ldap/src/test/java/org/apache/cloudstack/api/command/LinkAccountToLdapCmdTest.java
index e616bd573789..5816da8f6c42 100644
--- a/plugins/user-authenticators/ldap/src/test/java/org/apache/cloudstack/api/command/LinkAccountToLdapCmdTest.java
+++ b/plugins/user-authenticators/ldap/src/test/java/org/apache/cloudstack/api/command/LinkAccountToLdapCmdTest.java
@@ -100,4 +100,12 @@ public void execute() throws Exception {
assertEquals("accountId", String.valueOf(accountId), result.getAdminId());
assertEquals("accountName", String.valueOf(accountName), result.getAccountName());
}
+
+ @Test
+ public void getTypeDefaultsToGroup() throws Exception {
+ assertEquals("GROUP", linkAccountToLdapCmd.getType());
+
+ setHiddenField(linkAccountToLdapCmd, "type", "OU");
+ assertEquals("OU", linkAccountToLdapCmd.getType());
+ }
}
diff --git a/ui/public/locales/ar.json b/ui/public/locales/ar.json
index e8e4db66cb59..1509eebd5413 100644
--- a/ui/public/locales/ar.json
+++ b/ui/public/locales/ar.json
@@ -12,6 +12,8 @@
"label.account.id": "Account ID",
"label.account.name": "Account Name",
"label.account.specific": "Account-Specific",
+"label.account.type.domain.admin": "مسؤول النطاق",
+"label.account.type.normal": "عادي (مستخدم)",
"label.accounts": "Accounts",
"label.accounttype": "Account Type",
"label.acl.export": "Export ACL rules",
@@ -650,6 +652,7 @@
"label.ldap.group.name": "LDAP Group",
"label.level": "Level",
"label.limitcpuuse": "CPU Cap",
+"label.link.account.to.ldap": "Link Account to LDAP",
"label.link.domain.to.ldap": "Link Domain to LDAP",
"label.linklocalip": "Control IP Address",
"label.load.balancer": "Load Balancer",
diff --git a/ui/public/locales/ca.json b/ui/public/locales/ca.json
index d3e417eb821e..9bb8d9ff0d0e 100644
--- a/ui/public/locales/ca.json
+++ b/ui/public/locales/ca.json
@@ -12,6 +12,8 @@
"label.account.id": "Account ID",
"label.account.name": "Account Name",
"label.account.specific": "Account-Specific",
+"label.account.type.domain.admin": "Administrador de domini",
+"label.account.type.normal": "Normal (Usuari)",
"label.accounts": "Accounts",
"label.accounttype": "Account Type",
"label.acl.export": "Export ACL rules",
@@ -650,6 +652,7 @@
"label.ldap.group.name": "LDAP Group",
"label.level": "Level",
"label.limitcpuuse": "CPU Cap",
+"label.link.account.to.ldap": "Link Account to LDAP",
"label.link.domain.to.ldap": "Link Domain to LDAP",
"label.linklocalip": "Control IP Address",
"label.load.balancer": "Load Balancer",
diff --git a/ui/public/locales/de_DE.json b/ui/public/locales/de_DE.json
index 2fee92021638..fc0265135631 100644
--- a/ui/public/locales/de_DE.json
+++ b/ui/public/locales/de_DE.json
@@ -24,6 +24,8 @@
"label.account.id": "Benutzerkonto-ID",
"label.account.name": "Benutzerkonto-Name",
"label.account.specific": "Besonderheiten des Benutzerkontos",
+"label.account.type.domain.admin": "Domänen-Administrator",
+"label.account.type.normal": "Normal (Benutzer)",
"label.accounts": "Benutzerkonten",
"label.accounttype": "Benutzerkontotyp",
"label.acl.export": "Export ACL rules",
@@ -836,6 +838,7 @@
"label.limit": "Limit",
"label.limitcpuuse": "CPU Obergrenze",
"label.limits": "Limits konfigurieren",
+"label.link.account.to.ldap": "Verbinde Benutzerkonto mit LDAP",
"label.link.domain.to.ldap": "Verbinde Domain mit LDAP",
"label.linklocalip": "Link-Local IP-Adresse",
"label.linux": "Linux",
diff --git a/ui/public/locales/el_GR.json b/ui/public/locales/el_GR.json
index c55063837529..ea86c1ad13ae 100644
--- a/ui/public/locales/el_GR.json
+++ b/ui/public/locales/el_GR.json
@@ -39,6 +39,8 @@
"label.account.id": "Αναγνωριστικό λογαριασμού",
"label.account.name": "Όνομα λογαριασμού",
"label.account.specific": "Ανά λογαριασμό",
+"label.account.type.domain.admin": "Διαχειριστής Τομέα",
+"label.account.type.normal": "Κανονικός (Χρήστης)",
"label.accounts": "Λογαριασμοί",
"label.accountstate": "Κατάσταση λογαριασμού",
"label.accounttype": "Τύπος λογαριασμού",
@@ -1630,6 +1632,7 @@
"label.limits": "Όρια",
"label.limits.configure": "Ρύθμιση ορίων",
"label.link": "Σύνδεσμος",
+"label.link.account.to.ldap": "Σύνδεση λογαριασμού με LDAP",
"label.link.domain.to.ldap": "Σύνδεση τομέα με LDAP",
"label.linklocalip": "Διεύθυνση IP Link-local/ελέγχου",
"label.linux": "Linux",
diff --git a/ui/public/locales/en.json b/ui/public/locales/en.json
index 0acafc3b8015..cbc284ec4c70 100644
--- a/ui/public/locales/en.json
+++ b/ui/public/locales/en.json
@@ -40,6 +40,8 @@
"label.account.id": "Account ID",
"label.account.name": "Account name",
"label.account.specific": "Account-specific",
+"label.account.type.domain.admin": "Domain Admin",
+"label.account.type.normal": "Normal (User)",
"label.accounts": "Accounts",
"label.accountstate": "Account state",
"label.accounttype": "Account type",
@@ -1625,6 +1627,7 @@
"label.limits": "Limits",
"label.limits.configure": "Configure limits",
"label.link": "Link",
+"label.link.account.to.ldap": "Link account to LDAP",
"label.link.domain.to.ldap": "Link domain to LDAP",
"label.linklocalip": "Link-local/Control IP address",
"label.linux": "Linux",
diff --git a/ui/public/locales/es.json b/ui/public/locales/es.json
index b7a409adad1e..33e346873514 100644
--- a/ui/public/locales/es.json
+++ b/ui/public/locales/es.json
@@ -12,6 +12,8 @@
"label.account.id": "ID de la cuenta",
"label.account.name": "Nombre de cuenta",
"label.account.specific": "espec\u00edficas de la cuenta",
+"label.account.type.domain.admin": "Administrador de dominio",
+"label.account.type.normal": "Normal (Usuario)",
"label.accounts": "Cuentas",
"label.accounttype": "Tipo de Cuenta",
"label.acl.export": "Export ACL rules",
@@ -667,6 +669,7 @@
"label.ldap.group.name": "Grupo LDAP",
"label.level": "Nivel",
"label.limitcpuuse": "CPU Cap",
+"label.link.account.to.ldap": "Enlazar Cuenta a LDAP",
"label.link.domain.to.ldap": "Enlazar Dominio a LDAP",
"label.linklocalip": "Direcci\u00f3n IP de Enlace Local",
"label.load.balancer": "Balanceador de carga",
diff --git a/ui/public/locales/fr_FR.json b/ui/public/locales/fr_FR.json
index 424f4749aa35..63fefbc049fb 100644
--- a/ui/public/locales/fr_FR.json
+++ b/ui/public/locales/fr_FR.json
@@ -12,6 +12,8 @@
"label.account.id": "ID de compte",
"label.account.name": "Nom de compte",
"label.account.specific": "Sp\u00e9cifique au compte",
+"label.account.type.domain.admin": "Administrateur de domaine",
+"label.account.type.normal": "Normal (Utilisateur)",
"label.accounts": "Comptes",
"label.accounttype": "Type Compte",
"label.acl.export": "Export ACL rules",
@@ -650,6 +652,7 @@
"label.ldap.group.name": "Groupe LDAP",
"label.level": "Niveau",
"label.limitcpuuse": "Limitation CPU",
+"label.link.account.to.ldap": "Lien Compte vers LDAP",
"label.link.domain.to.ldap": "Lien Domaine vers LDAP",
"label.linklocalip": "Adresse IP lien local",
"label.load.balancer": "R\u00e9partiteur de charge",
diff --git a/ui/public/locales/hi.json b/ui/public/locales/hi.json
index 9d7440b92626..9a04301378ae 100644
--- a/ui/public/locales/hi.json
+++ b/ui/public/locales/hi.json
@@ -3,6 +3,8 @@
"label.access": "एक्सेस",
"label.accesskey": "एक्सेस की",
"label.account": "खाता",
+"label.account.type.domain.admin": "डोमेन व्यवस्थापक",
+"label.account.type.normal": "सामान्य (उपयोगकर्ता)",
"label.accounts": "लेखा",
"label.accounttype": "खाता प्रकार",
"label.aclid": "ACL",
diff --git a/ui/public/locales/hu.json b/ui/public/locales/hu.json
index ae58379d343c..c22d5c521e6a 100644
--- a/ui/public/locales/hu.json
+++ b/ui/public/locales/hu.json
@@ -12,6 +12,8 @@
"label.account.id": "Sz\u00e1mla azonos\u00edt\u00f3",
"label.account.name": "Sz\u00e1mla n\u00e9v",
"label.account.specific": "Sz\u00e1mla-specifikus",
+"label.account.type.domain.admin": "Tartomány rendszergazda",
+"label.account.type.normal": "Normál (Felhasználó)",
"label.accounts": "Sz\u00e1ml\u00e1k",
"label.accounttype": "Sz\u00e1mla t\u00edpus",
"label.acl.export": "Export ACL rules",
@@ -650,6 +652,7 @@
"label.ldap.group.name": "LDAP csoport",
"label.level": "Szint",
"label.limitcpuuse": "CPU Cap",
+"label.link.account.to.ldap": "Link Account to LDAP",
"label.link.domain.to.ldap": "Link Domain to LDAP",
"label.linklocalip": "Control IP Address",
"label.load.balancer": "Terhel\u00e9seloszt\u00f3",
diff --git a/ui/public/locales/it_IT.json b/ui/public/locales/it_IT.json
index a2907b71f235..7bb3ed88ac3b 100644
--- a/ui/public/locales/it_IT.json
+++ b/ui/public/locales/it_IT.json
@@ -12,6 +12,8 @@
"label.account.id": "ID dell'Account",
"label.account.name": "Nome Account",
"label.account.specific": "Specifico dell'Account",
+"label.account.type.domain.admin": "Amministratore di dominio",
+"label.account.type.normal": "Normale (Utente)",
"label.accounts": "Utenti",
"label.accounttype": "Account Type",
"label.acl.export": "Export ACL rules",
@@ -650,6 +652,7 @@
"label.ldap.group.name": "LDAP Group",
"label.level": "Livello",
"label.limitcpuuse": "Limite CPU",
+"label.link.account.to.ldap": "Link Account to LDAP",
"label.link.domain.to.ldap": "Link Domain to LDAP",
"label.linklocalip": "Control IP Address",
"label.load.balancer": "Load Balancer",
diff --git a/ui/public/locales/ja_JP.json b/ui/public/locales/ja_JP.json
index b7f32d7a2e12..3272c52d9822 100644
--- a/ui/public/locales/ja_JP.json
+++ b/ui/public/locales/ja_JP.json
@@ -53,6 +53,8 @@
"label.account.id": "アカウントID",
"label.account.name": "アカウント名",
"label.account.specific": "アカウント固有",
+ "label.account.type.domain.admin": "ドメイン管理者",
+ "label.account.type.normal": "通常 (ユーザー)",
"label.accounts": "アカウント",
"label.accounttype": "アカウントタイプ",
"label.access.kubernetes.nodes": "Kubernetesノードに接続",
@@ -1316,6 +1318,7 @@
"label.limit": "制限",
"label.limitcpuuse": "CPUキャップ",
"label.limits": "制限設定",
+ "label.link.account.to.ldap": "アカウントをLDAPにリンクする",
"label.link.domain.to.ldap": "ドメインをLDAPにリンクする",
"label.linklocalip": "リンクローカルIPアドレス",
"label.linux": "Linux",
diff --git a/ui/public/locales/ko_KR.json b/ui/public/locales/ko_KR.json
index a951b859b48e..fd1aeb13301e 100644
--- a/ui/public/locales/ko_KR.json
+++ b/ui/public/locales/ko_KR.json
@@ -28,6 +28,8 @@
"label.account.id": "\uacc4\uc815 ID",
"label.account.name": "\uacc4\uc815 \uc774\ub984",
"label.account.specific": "\uace0\uc720 \uacc4\uc815",
+"label.account.type.domain.admin": "도메인 관리자",
+"label.account.type.normal": "일반 (사용자)",
"label.accounts": "\uacc4\uc815",
"label.accounttype": "\uacc4\uc815 \uc720\ud615",
"label.acl.export": "ACL \ub0b4\ubcf4\ub0b4\uae30",
@@ -868,6 +870,7 @@
"label.limit": "\uc81c\ud55c",
"label.limitcpuuse": "CPU \uc81c\ud55c",
"label.limits": "\uc81c\ud55c \uad6c\uc131",
+"label.link.account.to.ldap": "LDAP에 계정 연결",
"label.link.domain.to.ldap": "LDAP\uc5d0 \ub3c4\uba54\uc778 \uc5f0\uacb0",
"label.linklocalip": "\ub85c\uceec \uc5f0\uacb0 IP \uc8fc\uc18c",
"label.linux": "Linux",
diff --git a/ui/public/locales/nb_NO.json b/ui/public/locales/nb_NO.json
index 586d1fc5b259..d3828ed91a58 100644
--- a/ui/public/locales/nb_NO.json
+++ b/ui/public/locales/nb_NO.json
@@ -12,6 +12,8 @@
"label.account.id": "Konto ID",
"label.account.name": "Kontonavn",
"label.account.specific": "Kontospesifikk",
+"label.account.type.domain.admin": "Domeneadministrator",
+"label.account.type.normal": "Normal (Bruker)",
"label.accounts": "Kontoer",
"label.accounttype": "Kontotype",
"label.acl.export": "Export ACL rules",
@@ -650,6 +652,7 @@
"label.ldap.group.name": "LDAP Gruppe",
"label.level": "Niv\u00e5",
"label.limitcpuuse": "CPU begrensning",
+"label.link.account.to.ldap": "Knytt konto til LDAP",
"label.link.domain.to.ldap": "Knytt domene til LDAP",
"label.linklocalip": "Link-lokal IP-adresse",
"label.load.balancer": "Lastbalanserer",
diff --git a/ui/public/locales/nl_NL.json b/ui/public/locales/nl_NL.json
index 15b1bbb13941..758bdb2ee00f 100644
--- a/ui/public/locales/nl_NL.json
+++ b/ui/public/locales/nl_NL.json
@@ -12,6 +12,8 @@
"label.account.id": "Account ID",
"label.account.name": "Account Naam",
"label.account.specific": "Account-specifiek",
+"label.account.type.domain.admin": "Domeinbeheerder",
+"label.account.type.normal": "Normaal (Gebruiker)",
"label.accounts": "Accounts",
"label.accounttype": "Account type",
"label.acl.export": "Export ACL rules",
@@ -651,6 +653,7 @@
"label.ldap.group.name": "LDAP Groep",
"label.level": "Level",
"label.limitcpuuse": "CPU Cap",
+"label.link.account.to.ldap": "link account aan LDAP",
"label.link.domain.to.ldap": "link domein aan LDAP",
"label.linklocalip": "Control IP Adres",
"label.load.balancer": "Load Balancer",
diff --git a/ui/public/locales/pl.json b/ui/public/locales/pl.json
index fbbbf612bc1d..f089b6cd441e 100644
--- a/ui/public/locales/pl.json
+++ b/ui/public/locales/pl.json
@@ -12,6 +12,8 @@
"label.account.id": "ID konta",
"label.account.name": "Nazwa konta",
"label.account.specific": "Account-Specific",
+"label.account.type.domain.admin": "Administrator domeny",
+"label.account.type.normal": "Zwykły (Użytkownik)",
"label.accounts": "Konta",
"label.accounttype": "Account Type",
"label.acl.export": "Export ACL rules",
@@ -650,6 +652,7 @@
"label.ldap.group.name": "LDAP Group",
"label.level": "Poziom",
"label.limitcpuuse": "CPU Cap",
+"label.link.account.to.ldap": "Link Account to LDAP",
"label.link.domain.to.ldap": "Link Domain to LDAP",
"label.linklocalip": "Control IP Address",
"label.load.balancer": "Load Balancer",
diff --git a/ui/public/locales/pt_BR.json b/ui/public/locales/pt_BR.json
index 1efd99f40d16..154c046099db 100644
--- a/ui/public/locales/pt_BR.json
+++ b/ui/public/locales/pt_BR.json
@@ -36,6 +36,8 @@
"label.account.id": "ID da conta",
"label.account.name": "Nome da conta",
"label.account.specific": "Espec\u00edfico da conta",
+"label.account.type.domain.admin": "Administrador de domínio",
+"label.account.type.normal": "Normal (Usuário)",
"label.accounts": "Contas",
"label.accountstate": "Estado da conta",
"label.accounttype": "Tipo de conta",
@@ -1388,6 +1390,7 @@
"label.limits": "Configurar limites",
"label.limits.configure": "Configurar limites",
"label.link": "Link",
+"label.link.account.to.ldap": "Link conta para LDAP",
"label.link.domain.to.ldap": "Link dom\u00ednio para LDAP",
"label.linklocalip": "Endere\u00e7o IP do Control",
"label.linux": "Linux",
diff --git a/ui/public/locales/ru_RU.json b/ui/public/locales/ru_RU.json
index 4fb3788bc511..0a7da67a902d 100644
--- a/ui/public/locales/ru_RU.json
+++ b/ui/public/locales/ru_RU.json
@@ -12,6 +12,8 @@
"label.account.id": "ID \u0443\u0447\u0451\u0442\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438",
"label.account.name": "\u0418\u043c\u044f \u0443\u0447\u0451\u0442\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438",
"label.account.specific": "\u0421\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430 \u0430\u043a\u043a\u0430\u0443\u043d\u043d\u0442\u0430",
+"label.account.type.domain.admin": "Администратор домена",
+"label.account.type.normal": "Обычный (Пользователь)",
"label.accounts": "\u0423\u0447\u0451\u0442\u043d\u044b\u0435 \u0437\u0430\u043f\u0438\u0441\u0438",
"label.accounttype": "Account Type",
"label.acl.export": "Export ACL rules",
@@ -649,6 +651,7 @@
"label.ldap.group.name": "LDAP Group",
"label.level": "\u0423\u0440\u043e\u0432\u0435\u043d\u044c",
"label.limitcpuuse": "CPU Cap",
+"label.link.account.to.ldap": "Link Account to LDAP",
"label.link.domain.to.ldap": "Link Domain to LDAP",
"label.linklocalip": "\u041b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439 IP \u0430\u0434\u0440\u0435\u0441",
"label.load.balancer": "\u0411\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438",
diff --git a/ui/public/locales/te.json b/ui/public/locales/te.json
index 0c332af53aee..e298a5352d13 100644
--- a/ui/public/locales/te.json
+++ b/ui/public/locales/te.json
@@ -37,6 +37,8 @@
"label.account.id": "ఖాతా ID",
"label.account.name": "ఖాతా పేరు",
"label.account.specific": "ఖాతా-నిర్దిష్ట",
+ "label.account.type.domain.admin": "డొమైన్ నిర్వాహకుడు",
+ "label.account.type.normal": "సాధారణ (వినియోగదారు)",
"label.accounts": "ఖాతాలు",
"label.accountstate": "ఖాతా స్థితి",
"label.accounttype": "ఖాతా రకం",
@@ -1327,6 +1329,7 @@
"label.limits": "పరిమితులు",
"label.limits.configure": "పరిమితులను కాన్ఫిగర్ చేయండి",
"label.link": "లింక్",
+ "label.link.account.to.ldap": "ఖాతాను LDAPకి లింక్ చేయండి",
"label.link.domain.to.ldap": "డొమైన్ను LDAPకి లింక్ చేయండి",
"label.linklocalip": "లింక్-స్థానిక/నియంత్రణ IP చిరునామా",
"label.linux": "Linux",
diff --git a/ui/public/locales/zh_CN.json b/ui/public/locales/zh_CN.json
index 9536bab7ee43..689b026cb427 100644
--- a/ui/public/locales/zh_CN.json
+++ b/ui/public/locales/zh_CN.json
@@ -61,6 +61,8 @@
"label.account.id": "\u5E10\u6237\u6807\u8BC6\u7801",
"label.account.name": "\u5E10\u6237\u540D\u79F0",
"label.account.specific": "\u5E10\u6237\u4E13\u7528",
+ "label.account.type.domain.admin": "域管理员",
+ "label.account.type.normal": "普通(用户)",
"label.accounts": "\u5E10\u6237",
"label.accounttype": "\u5E10\u53F7\u7C7B\u578B",
@@ -1515,6 +1517,7 @@
"label.limit": "\u9650\u5236",
"label.limitcpuuse": "CPU \u4E0A\u9650",
"label.limits": "\u914D\u7F6E\u9650\u5236",
+ "label.link.account.to.ldap": "帐户链接至 LDAP",
"label.link.domain.to.ldap": "\u57DF\u94FE\u63A5\u81F3 LDAP",
"label.linklocalip": "\u672C\u5730\u5730\u5740",
"label.linux": "Linux",
diff --git a/ui/src/config/section/account.js b/ui/src/config/section/account.js
index 5766fd8a0f92..d04c683817e5 100644
--- a/ui/src/config/section/account.js
+++ b/ui/src/config/section/account.js
@@ -121,6 +121,34 @@ export default {
},
component: shallowRef(defineAsyncComponent(() => import('@/views/iam/AddLdapAccount.vue')))
},
+ {
+ api: 'linkAccountToLdap',
+ icon: 'LinkOutlined',
+ label: 'label.link.account.to.ldap',
+ docHelp: 'adminguide/accounts.html#using-an-ldap-server-for-user-authentication',
+ dataView: true,
+ show: (record, store) => {
+ return store.isLdapEnabled
+ },
+ args: ['type', 'domainid', 'ldapdomain', 'account', 'accounttype', 'roleid', 'admin'],
+ mapping: {
+ type: {
+ options: ['GROUP', 'OU']
+ },
+ accounttype: {
+ options: [
+ { id: '0', description: 'label.account.type.normal' },
+ { id: '2', description: 'label.account.type.domain.admin' }
+ ]
+ },
+ domainid: {
+ value: (record) => { return record.domainid }
+ },
+ account: {
+ value: (record) => { return record.name }
+ }
+ }
+ },
{
api: 'updateAccount',
icon: 'edit-outlined',
diff --git a/ui/src/config/section/domain.js b/ui/src/config/section/domain.js
index 706cbf805cfa..db1e72fac203 100644
--- a/ui/src/config/section/domain.js
+++ b/ui/src/config/section/domain.js
@@ -150,7 +150,10 @@ export default {
options: ['GROUP', 'OU']
},
accounttype: {
- options: ['0', '2']
+ options: [
+ { id: '0', description: 'label.account.type.normal' },
+ { id: '2', description: 'label.account.type.domain.admin' }
+ ]
},
domainid: {
value: (record) => { return record.id }
diff --git a/ui/src/views/AutogenView.vue b/ui/src/views/AutogenView.vue
index 264ba0040afe..889e9bdcaa44 100644
--- a/ui/src/views/AutogenView.vue
+++ b/ui/src/views/AutogenView.vue
@@ -339,9 +339,9 @@
- {{ opt }}
+ {{ opt.description ? $t(opt.description) : opt }}
-
- {{ opt }}
+
+ {{ opt.description ? $t(opt.description) : opt }}
AutogenView.vue', () => {
done()
})
+ it('API should be called with the option id when currentAction.mapping option is an {id, description} object', async (done) => {
+ originalFunc.handleResponse = wrapper.vm.handleResponse
+ originalFunc.shouldNavigateBack = wrapper.vm.shouldNavigateBack
+ originalFunc.fetchData = wrapper.vm.fetchData
+ wrapper.vm.handleResponse = jest.fn(async (json, resourceName, action) => { return Promise.resolve() })
+ wrapper.vm.shouldNavigateBack = jest.fn((args) => { return false })
+ wrapper.vm.fetchData = jest.fn()
+ wrapper.vm.form = { column1: 1 }
+
+ const event = document.createEvent('Event')
+ await mockAxios.mockResolvedValue({})
+ await wrapper.setData({
+ showAction: true,
+ currentAction: {
+ api: 'testApiNameCase1',
+ label: 'label.name',
+ params: [{ name: 'column1', type: 'list' }],
+ paramFields: [{ name: 'column1', type: 'list' }],
+ mapping: {
+ column1: {
+ options: [
+ { id: 'column-id-1', description: 'label.column.value.one' },
+ { id: 'column-id-2', description: 'label.column.value.two' }
+ ]
+ }
+ }
+ },
+ resource: {}
+ })
+ await wrapper.vm.execSubmit(event)
+ await flushPromises()
+
+ expect(mockAxios).toHaveBeenCalled()
+ expect(mockAxios).toHaveBeenLastCalledWith({
+ url: '/',
+ method: 'POST',
+ data: common.createDataParams({
+ command: 'testApiNameCase1',
+ response: 'json',
+ column1: 'column-id-2'
+ })
+ })
+ done()
+ })
+
it('API should be called when form has input key not exist in currentAction.mapping, type is list and currentAction.params[input] has id', async (done) => {
originalFunc.handleResponse = wrapper.vm.handleResponse
originalFunc.shouldNavigateBack = wrapper.vm.shouldNavigateBack