rhtyd commented on a change in pull request #3241: [WIP DO NOT MERGE] Allow 
users to share templates with Accounts or Projects through the
URL: https://github.com/apache/cloudstack/pull/3241#discussion_r294171766
 
 

 ##########
 File path: server/src/main/java/com/cloud/template/TemplateManagerImpl.java
 ##########
 @@ -1541,14 +1539,23 @@ public boolean 
updateTemplateOrIsoPermissions(BaseUpdateTemplateOrIsoPermissions
         //Derive the domain id from the template owner as 
updateTemplatePermissions is not cross domain operation
         Account owner = _accountMgr.getAccount(ownerId);
         final Domain domain = _domainDao.findById(owner.getDomainId());
+        final boolean isCallerRootAdmin = 
_accountMgr.isRootAdmin(caller.getAccountId());
         if ("add".equalsIgnoreCase(operation)) {
             final List<String> accountNamesFinal = accountNames;
             final List<Long> accountIds = new ArrayList<Long>();
             Transaction.execute(new TransactionCallbackNoReturn() {
                 @Override
                 public void doInTransactionWithoutResult(TransactionStatus 
status) {
                     for (String accountName : accountNamesFinal) {
-                        Account permittedAccount = 
_accountDao.findActiveAccount(accountName, domain.getId());
+                        Account permittedAccount = null;
+                        if (isCallerRootAdmin) {
+                            List<AccountVO> accountsWthName = 
_accountDao.findAccountsLike(accountName);
+                            if (accountsWthName.size() > 0) {
+                                permittedAccount = accountsWthName.get(0);
 
 Review comment:
   @anuragaw could this cause regression or issues, this is always picking up 
the first account in the list; should it be something like - if user is root 
admin, then all enable/permit for all accounts matching the name using 
something like `accountIds.add(permittedAccount.getId());` in the if block; and 
refactor suitably?

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services

Reply via email to