diff --git a/server/src/main/java/com/cloud/user/AccountManagerImpl.java b/server/src/main/java/com/cloud/user/AccountManagerImpl.java index 19eba061e13..db79323ed1e 100644 --- a/server/src/main/java/com/cloud/user/AccountManagerImpl.java +++ b/server/src/main/java/com/cloud/user/AccountManagerImpl.java @@ -1579,16 +1579,20 @@ public class AccountManagerImpl extends ManagerBase implements AccountManager, M public void verifyCallerPrivilegeForUserOrAccountOperations(Account userAccount) { logger.debug(String.format("Verifying whether the caller has the correct privileges based on the user's role type and API permissions: %s", userAccount)); - checkCallerRoleTypeAllowedForUserOrAccountOperations(userAccount, null); - checkCallerApiPermissionsForUserOrAccountOperations(userAccount); + if (!Account.Type.PROJECT.equals(userAccount.getType())) { + checkCallerRoleTypeAllowedForUserOrAccountOperations(userAccount, null); + checkCallerApiPermissionsForUserOrAccountOperations(userAccount); + } } protected void verifyCallerPrivilegeForUserOrAccountOperations(User user) { logger.debug(String.format("Verifying whether the caller has the correct privileges based on the user's role type and API permissions: %s", user)); Account userAccount = getAccount(user.getAccountId()); - checkCallerRoleTypeAllowedForUserOrAccountOperations(userAccount, user); - checkCallerApiPermissionsForUserOrAccountOperations(userAccount); + if (!Account.Type.PROJECT.equals(userAccount.getType())) { + checkCallerRoleTypeAllowedForUserOrAccountOperations(userAccount, user); + checkCallerApiPermissionsForUserOrAccountOperations(userAccount); + } } protected void checkCallerRoleTypeAllowedForUserOrAccountOperations(Account userAccount, User user) { @@ -1597,7 +1601,7 @@ public class AccountManagerImpl extends ManagerBase implements AccountManager, M RoleType userAccountRoleType = getRoleType(userAccount); if (RoleType.Unknown == callerRoleType || RoleType.Unknown == userAccountRoleType) { - String errMsg = String.format("The role type of account [%s, %s] or [%s, %s] is unknown", + String errMsg = String.format("The role type of caller account [%s, %s] or target account [%s, %s] is unknown", callingAccount.getName(), callingAccount.getUuid(), userAccount.getName(), userAccount.getUuid()); throw new PermissionDeniedException(errMsg); } @@ -2707,10 +2711,8 @@ public class AccountManagerImpl extends ManagerBase implements AccountManager, M } } - if (!Account.Type.PROJECT.equals(accountType)) { - AccountVO newAccount = new AccountVO(accountName, domainId, networkDomain, accountType, roleId, uuid); - verifyCallerPrivilegeForUserOrAccountOperations(newAccount); - } + AccountVO newAccount = new AccountVO(accountName, domainId, networkDomain, accountType, roleId, uuid); + verifyCallerPrivilegeForUserOrAccountOperations(newAccount); // Create the account return Transaction.execute(new TransactionCallback<>() { diff --git a/tools/appliance/systemvmtemplate/template-base_aarch64-target_aarch64.json b/tools/appliance/systemvmtemplate/template-base_aarch64-target_aarch64.json index 2165b571576..a3507c3a091 100644 --- a/tools/appliance/systemvmtemplate/template-base_aarch64-target_aarch64.json +++ b/tools/appliance/systemvmtemplate/template-base_aarch64-target_aarch64.json @@ -32,8 +32,8 @@ "format": "qcow2", "headless": true, "http_directory": "http", - "iso_checksum": "sha512:022895e699231c94abf7012f86cabc587dc576f07f856c87609d5d40c1f921d805a5a862cba94c1a47d09aaa565ec445222e338e73d1fa1affc4fc5908bb50ad", - "iso_url": "https://cdimage.debian.org/mirror/cdimage/release/12.10.0/arm64/iso-cd/debian-12.10.0-arm64-netinst.iso", + "iso_checksum": "sha512:892cf1185a214d16ff62a18c6b89cdcd58719647c99916f6214bfca6f9915275d727b666c0b8fbf022c425ef18647e9759974abf7fc440431c39b50c296a98d3", + "iso_url": "https://cdimage.debian.org/mirror/cdimage/release/12.11.0/arm64/iso-cd/debian-12.11.0-arm64-netinst.iso", "net_device": "virtio-net", "output_directory": "../dist", "qemu_binary": "qemu-system-aarch64", diff --git a/tools/appliance/systemvmtemplate/template-base_x86_64-target_aarch64.json b/tools/appliance/systemvmtemplate/template-base_x86_64-target_aarch64.json index 7f1b5c4befa..0ee62f1fd4b 100644 --- a/tools/appliance/systemvmtemplate/template-base_x86_64-target_aarch64.json +++ b/tools/appliance/systemvmtemplate/template-base_x86_64-target_aarch64.json @@ -31,8 +31,8 @@ "format": "qcow2", "headless": true, "http_directory": "http", - "iso_checksum": "sha512:022895e699231c94abf7012f86cabc587dc576f07f856c87609d5d40c1f921d805a5a862cba94c1a47d09aaa565ec445222e338e73d1fa1affc4fc5908bb50ad", - "iso_url": "https://cdimage.debian.org/mirror/cdimage/release/12.10.0/arm64/iso-cd/debian-12.10.0-arm64-netinst.iso", + "iso_checksum": "sha512:892cf1185a214d16ff62a18c6b89cdcd58719647c99916f6214bfca6f9915275d727b666c0b8fbf022c425ef18647e9759974abf7fc440431c39b50c296a98d3", + "iso_url": "https://cdimage.debian.org/mirror/cdimage/release/12.11.0/arm64/iso-cd/debian-12.11.0-arm64-netinst.iso", "net_device": "virtio-net", "output_directory": "../dist", "qemu_binary": "qemu-system-aarch64", diff --git a/tools/appliance/systemvmtemplate/template-base_x86_64-target_x86_64.json b/tools/appliance/systemvmtemplate/template-base_x86_64-target_x86_64.json index d74c408cbc3..94d2f5172f7 100644 --- a/tools/appliance/systemvmtemplate/template-base_x86_64-target_x86_64.json +++ b/tools/appliance/systemvmtemplate/template-base_x86_64-target_x86_64.json @@ -27,8 +27,8 @@ "format": "qcow2", "headless": true, "http_directory": "http", - "iso_checksum": "sha512:cb089def0684fd93c9c2fbe45fd16ecc809c949a6fd0c91ee199faefe7d4b82b64658a264a13109d59f1a40ac3080be2f7bd3d8bf3e9cdf509add6d72576a79b", - "iso_url": "https://cdimage.debian.org/mirror/cdimage/release/12.10.0/amd64/iso-cd/debian-12.10.0-amd64-netinst.iso", + "iso_checksum": "sha512:0921d8b297c63ac458d8a06f87cd4c353f751eb5fe30fd0d839ca09c0833d1d9934b02ee14bbd0c0ec4f8917dde793957801ae1af3c8122cdf28dde8f3c3e0da", + "iso_url": "https://cdimage.debian.org/mirror/cdimage/release/12.11.0/amd64/iso-cd/debian-12.11.0-amd64-netinst.iso", "net_device": "virtio-net", "output_directory": "../dist", "qemuargs": [ diff --git a/ui/src/components/view/InfoCard.vue b/ui/src/components/view/InfoCard.vue index f586d9c2be7..e2f9fb304e7 100644 --- a/ui/src/components/view/InfoCard.vue +++ b/ui/src/components/view/InfoCard.vue @@ -14,20 +14,47 @@ // KIND, either express or implied. See the License for the // specific language governing permissions and limitations // under the License. -// $message.success(`${$t('label.copied.clipboard')} : ${name}`) @@ -876,15 +1107,312 @@ - - {{ $t('label.new.tag') }} - +
+
{{ resource.templateformat === 'ISO'? $t('label.iso') : $t('label.templatename') }}
+
+ + + {{ resource.templatedisplaytext || resource.templatename || resource.templateid }} +
+
+
+
{{ $t('label.isoname') }}
+
+ + + {{ resource.isodisplaytext || resource.isoname || resource.isoid }} +
+
+
+
{{ $t('label.system.offering') }}
+
{{ $t('label.serviceofferingname') }}
+
+ + {{ resource.serviceofferingname || resource.serviceofferingid }} + {{ resource.serviceofferingname || resource.serviceofferingid }} + {{ resource.serviceofferingname || resource.serviceofferingid }} +
+
+
+
{{ $t('label.diskoffering') }}
+
+ +
+ {{ resource.rootdiskofferingdisplaytext }} + {{ resource.rootdiskofferingdisplaytext }} +
+  |  +
+ {{ resource.datadiskofferingdisplaytext }} + {{ resource.datadiskofferingdisplaytext }} +
+
+
+
+
{{ $t('label.backupofferingid') }}
+ + {{ resource.backupofferingname || resource.backupofferingid }} + {{ resource.backupofferingname || resource.backupofferingid }} +
+
+
{{ $t('label.networkofferingid') }}
+
+ + {{ resource.networkofferingname || resource.networkofferingid }} + {{ resource.networkofferingname || resource.networkofferingid }} +
+
+
+
{{ $t('label.vpcoffering') }}
+
+ + {{ resource.vpcofferingname || resource.vpcofferingid }} + {{ resource.vpcofferingname || resource.vpcofferingid }} +
+
+
+
{{ $t('label.storagepool') }}
+
+ + {{ resource.storage || resource.storageid }} + {{ resource.storage || resource.storageid }} + + {{ resource.storagetype }} + +
+
+
+
{{ $t('label.hostname') }}
+
+ + {{ resource.hostname || resource.hostid }} + {{ resource.hostname || resource.hostid }} +
+
+
+
{{ $t('label.clusterid') }}
+
+ + {{ resource.clustername || resource.cluster || resource.clusterid }} + {{ resource.clustername || resource.cluster || resource.clusterid }} +
+
+
+
{{ $t('label.podid') }}
+
+ + {{ resource.podname || resource.pod || resource.podid }} + {{ resource.podname || resource.pod || resource.podid }} +
+
+
+
{{ $t('label.zone') }}
+
+ + + + + {{ resource.zone || resource.zonename || resource.zoneid }} + {{ resource.zone || resource.zonename || resource.zoneid }} + {{ resource.zone || resource.zonename || resource.zoneid }} +
+
+
+
{{ $t('label.userdata') }}
+
+ + {{ resource.userdataname || resource.userdataid }} + {{ resource.userdataname || resource.userdataid }} +
+
+
+
{{ $t('label.owners') }}
+
+ + +
+
+
+
{{ $t('label.account') }}
+
+ + + + + {{ resource.account }} + {{ resource.account }} +
+
+
+
{{ $t('label.role') }}
+
+ + {{ resource.rolename || resource.role || resource.roleid }} + {{ resource.rolename || resource.role || resource.roleid }} +
+
+
+
{{ $t('label.domain') }}
+
+ + + {{ resource.domain || resource.domainid }} + {{ resource.domain || resource.domainid }} +
+
+
+
{{ $t('label.payloadurl') }}
+
+ + {{ resource.payloadurl }} + {{ resource.payloadurl }} +
+
+
+
{{ $t('label.webhook') }}
+
+ + {{ resource.webhookname || resource.webhookid }} + {{ resource.webhookname || resource.webhookid }} +
+
+
+
{{ $t('label.management.servers') }}
+
+ + {{ resource.managementserver || resource.managementserverid }} + {{ resource.managementserver || resource.managementserverid }} +
+
+
+
{{ $t('label.created') }}
+
+ {{ $toLocaleDate(resource.created) }} +
+
+
+
{{ $t('label.last.updated') }}
+
+ {{ $toLocaleDate(resource.lastupdated) }} +
+
- + +
+ +
+ + + + {{ $t('label.view') + ' ' + $t(item.title) }} + + +
+
+ +
+ +
+
+
+
{{ $t('label.apikeyaccess') }}
+
+ +
+
+
+
+
+ + + {{ $t('label.apikey') }} + + +
+ {{ resource.apikey.substring(0, 20) }}... +
+

+
+ + + {{ $t('label.secretkey') }} + + +
+ {{ resource.secretkey.substring(0, 20) }}... +
+
+
+ +
+ + +
{{ $t('label.tags') }}
+
+ + +
+ + + + + + + +
+ + {{ $t('label.new.tag') }} + +
+
+
+ + @@ -938,6 +1466,10 @@ export default { isStatic: { type: Boolean, default: false + }, + footerVisible: { + type: Boolean, + default: false } }, data () { @@ -1273,6 +1805,25 @@ export default { diff --git a/ui/src/views/compute/DeployVnfAppliance.vue b/ui/src/views/compute/DeployVnfAppliance.vue index d68b8fdeeb1..0b8feac8bbc 100644 --- a/ui/src/views/compute/DeployVnfAppliance.vue +++ b/ui/src/views/compute/DeployVnfAppliance.vue @@ -803,36 +803,31 @@ -