diff --git a/hsarback/src/de/hsadmin/mods/email/EMailAddressModuleImpl.java b/hsarback/src/de/hsadmin/mods/email/EMailAddressModuleImpl.java index 5dbd112..e8447cd 100644 --- a/hsarback/src/de/hsadmin/mods/email/EMailAddressModuleImpl.java +++ b/hsarback/src/de/hsadmin/mods/email/EMailAddressModuleImpl.java @@ -26,7 +26,8 @@ public class EMailAddressModuleImpl extends AbstractModuleImpl { @Override public AbstractEntity add(AbstractEntity newEntity) throws HSAdminException { - EntityManager em = getTransaction().getEntityManager(); + Transaction tx = getTransaction(); + EntityManager em = tx.getEntityManager(); EMailAddress adr = (EMailAddress) newEntity; if (adr.getTarget() == null || adr.getTarget().length() == 0) { throw new HSAdminException("target required"); @@ -43,6 +44,10 @@ public class EMailAddressModuleImpl extends AbstractModuleImpl { qDomain.setParameter("domName", adr.getDomain().getName()); Domain dom = (Domain) qDomain.getSingleResult(); adr.setDomain(dom); + UnixUser loginUser = tx.getLoginUser(); + if (dom.isPacDomain() && !loginUser.hasHostmasterRole()) { + throw new AuthorisationException(loginUser, "add", adr); + } return super.add(newEntity); }