1 21 package com.jaspersoft.jasperserver.api.engine.scheduling.security; 22 23 import org.acegisecurity.acl.basic.AclObjectIdentity; 24 import org.acegisecurity.acl.basic.BasicAclDao; 25 import org.acegisecurity.acl.basic.BasicAclEntry; 26 import org.acegisecurity.acl.basic.NamedEntityObjectIdentity; 27 import org.acegisecurity.acl.basic.SimpleAclEntry; 28 import org.apache.commons.logging.Log; 29 import org.apache.commons.logging.LogFactory; 30 31 import com.jaspersoft.jasperserver.api.engine.scheduling.ReportJobsInternalService; 32 33 37 public class ReportJobAclDao implements BasicAclDao { 38 39 private static final Log log = LogFactory.getLog(ReportJobAclDao.class); 40 41 private ReportJobsInternalService reportJobsInternalService; 42 private String administratorRole; 43 44 public BasicAclEntry[] getAcls(AclObjectIdentity objectIdentity) { 45 if (log.isDebugEnabled()) { 46 log.debug("Retrieving ACLs for " + objectIdentity); 47 } 48 49 NamedEntityObjectIdentity namedId = (NamedEntityObjectIdentity) objectIdentity; 50 long jobId = Long.parseLong(namedId.getId()); 51 String jobOwner = getReportJobsInternalService().getJobOwner(jobId); 52 SimpleAclEntry userReadEntry = new SimpleAclEntry(jobOwner, objectIdentity, null, SimpleAclEntry.READ_WRITE_DELETE); 53 54 SimpleAclEntry admReadEntry = new SimpleAclEntry(getAdministratorRole(), objectIdentity, null, SimpleAclEntry.ADMINISTRATION); 55 56 return new BasicAclEntry[]{userReadEntry, admReadEntry}; 57 } 58 59 public String getAdministratorRole() { 60 return administratorRole; 61 } 62 63 public void setAdministratorRole(String administratorRole) { 64 this.administratorRole = administratorRole; 65 } 66 67 public ReportJobsInternalService getReportJobsInternalService() { 68 return reportJobsInternalService; 69 } 70 71 public void setReportJobsInternalService( 72 ReportJobsInternalService reportJobsInternalService) { 73 this.reportJobsInternalService = reportJobsInternalService; 74 } 75 76 } 77 | Popular Tags |