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:
[email protected]
With regards,
Apache Git Services