Skip to content

Commit b42ad3c

Browse files
committed
CLOUDSTACK-6533: IAM - Templates - Public templates do not have
permissions to be used by ROOT group.
1 parent 4f45c97 commit b42ad3c

2 files changed

Lines changed: 6 additions & 1 deletion

File tree

services/iam/plugin/src/org/apache/cloudstack/iam/IAMApiServiceImpl.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -257,7 +257,10 @@ public void onPublishMessage(String senderAddress, String subject, Object obj) {
257257
public void onPublishMessage(String senderAddress, String subject, Object obj) {
258258
Long templateId = (Long)obj;
259259
if (templateId != null) {
260-
s_logger.debug("MessageBus message: new public template registered: " + templateId + ", grant permission to domain admin and normal user policies");
260+
s_logger.debug("MessageBus message: new public template registered: " + templateId
261+
+ ", grant permission to default root admin, domain admin and normal user policies");
262+
_iamSrv.addIAMPermissionToIAMPolicy(new Long(Account.ACCOUNT_TYPE_ADMIN + 1), VirtualMachineTemplate.class.getSimpleName(),
263+
PermissionScope.RESOURCE.toString(), templateId, "listTemplates", AccessType.UseEntry.toString(), Permission.Allow, false);
261264
_iamSrv.addIAMPermissionToIAMPolicy(new Long(Account.ACCOUNT_TYPE_DOMAIN_ADMIN + 1), VirtualMachineTemplate.class.getSimpleName(),
262265
PermissionScope.RESOURCE.toString(), templateId, "listTemplates", AccessType.UseEntry.toString(), Permission.Allow, false);
263266
_iamSrv.addIAMPermissionToIAMPolicy(new Long(Account.ACCOUNT_TYPE_NORMAL + 1), VirtualMachineTemplate.class.getSimpleName(),

services/iam/plugin/src/org/apache/cloudstack/iam/RoleBasedAPIAccessChecker.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,8 @@ public boolean start() {
132132
// add permissions for public templates
133133
List<VMTemplateVO> pTmplts = _templateDao.listByPublic();
134134
for (VMTemplateVO tmpl : pTmplts){
135+
_iamSrv.addIAMPermissionToIAMPolicy(new Long(Account.ACCOUNT_TYPE_ADMIN + 1), VirtualMachineTemplate.class.getSimpleName(),
136+
PermissionScope.RESOURCE.toString(), tmpl.getId(), "listTemplates", AccessType.UseEntry.toString(), Permission.Allow, false);
135137
_iamSrv.addIAMPermissionToIAMPolicy(new Long(Account.ACCOUNT_TYPE_DOMAIN_ADMIN + 1), VirtualMachineTemplate.class.getSimpleName(),
136138
PermissionScope.RESOURCE.toString(), tmpl.getId(), "listTemplates", AccessType.UseEntry.toString(), Permission.Allow, false);
137139
_iamSrv.addIAMPermissionToIAMPolicy(new Long(Account.ACCOUNT_TYPE_NORMAL + 1), VirtualMachineTemplate.class.getSimpleName(),

0 commit comments

Comments
 (0)