added missing transactional annotation
This commit is contained in:
@ -1,101 +1,102 @@
|
|||||||
package de.muehlencord.shared.account.business.application.control;
|
package de.muehlencord.shared.account.business.application.control;
|
||||||
|
|
||||||
import de.muehlencord.shared.account.business.account.entity.AccountException;
|
import de.muehlencord.shared.account.business.account.entity.AccountException;
|
||||||
import de.muehlencord.shared.account.business.account.entity.ApplicationPermissionEntity;
|
import de.muehlencord.shared.account.business.account.entity.ApplicationPermissionEntity;
|
||||||
import de.muehlencord.shared.account.business.application.entity.ApplicationEntity;
|
import de.muehlencord.shared.account.business.application.entity.ApplicationEntity;
|
||||||
import de.muehlencord.shared.account.util.AccountPU;
|
import de.muehlencord.shared.account.util.AccountPU;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import javax.ejb.Stateless;
|
import javax.ejb.Stateless;
|
||||||
import javax.persistence.EntityManager;
|
import javax.persistence.EntityManager;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import javax.persistence.OptimisticLockException;
|
import javax.persistence.OptimisticLockException;
|
||||||
import javax.persistence.Query;
|
import javax.persistence.Query;
|
||||||
import javax.transaction.Transactional;
|
import javax.transaction.Transactional;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @author Joern Muehlencord <joern at muehlencord.de>
|
* @author Joern Muehlencord <joern at muehlencord.de>
|
||||||
*/
|
*/
|
||||||
@Stateless
|
@Stateless
|
||||||
public class ApplicationPermissionControl implements Serializable {
|
public class ApplicationPermissionControl implements Serializable {
|
||||||
|
|
||||||
private static final long serialVersionUID = -3761100587901739481L;
|
private static final long serialVersionUID = -3761100587901739481L;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
@AccountPU
|
@AccountPU
|
||||||
EntityManager em;
|
EntityManager em;
|
||||||
|
|
||||||
public List<ApplicationPermissionEntity> getApplicationPermissions(ApplicationEntity app) {
|
public List<ApplicationPermissionEntity> getApplicationPermissions(ApplicationEntity app) {
|
||||||
Query query = em.createNamedQuery("ApplicationPermissionEntity.findAll");
|
Query query = em.createNamedQuery("ApplicationPermissionEntity.findAll");
|
||||||
query.setParameter("application", app);
|
query.setParameter("application", app);
|
||||||
List<ApplicationPermissionEntity> permissionList = query.getResultList();
|
List<ApplicationPermissionEntity> permissionList = query.getResultList();
|
||||||
if (permissionList == null) {
|
if (permissionList == null) {
|
||||||
return new ArrayList<>();
|
return new ArrayList<>();
|
||||||
} else {
|
} else {
|
||||||
return permissionList;
|
return permissionList;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public ApplicationPermissionEntity findPermissionByName(ApplicationEntity application, String permissionName) {
|
public ApplicationPermissionEntity findPermissionByName(ApplicationEntity application, String permissionName) {
|
||||||
Query query = em.createNamedQuery("ApplicationPermissionEntity.findByPermissionName");
|
Query query = em.createNamedQuery("ApplicationPermissionEntity.findByPermissionName");
|
||||||
query.setParameter("application", application);
|
query.setParameter("application", application);
|
||||||
query.setParameter("permissionName", permissionName);
|
query.setParameter("permissionName", permissionName);
|
||||||
List<ApplicationPermissionEntity> resultList = query.getResultList();
|
List<ApplicationPermissionEntity> resultList = query.getResultList();
|
||||||
if ((resultList == null) || (resultList.isEmpty())) {
|
if ((resultList == null) || (resultList.isEmpty())) {
|
||||||
return null;
|
return null;
|
||||||
} else {
|
} else {
|
||||||
return resultList.get(0);
|
return resultList.get(0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
public void create(ApplicationEntity application, String name, String description) {
|
public void create(ApplicationEntity application, String name, String description) {
|
||||||
ApplicationPermissionEntity permission = new ApplicationPermissionEntity(application, name, description);
|
ApplicationPermissionEntity permission = new ApplicationPermissionEntity(application, name, description);
|
||||||
em.persist(permission);
|
em.persist(permission);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
public void update(ApplicationPermissionEntity permission) throws AccountException {
|
public void update(ApplicationPermissionEntity permission) throws AccountException {
|
||||||
ApplicationPermissionEntity existing = attach(permission);
|
ApplicationPermissionEntity existing = attach(permission);
|
||||||
em.merge(existing);
|
em.merge(existing);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
public void createOrUpdate(ApplicationEntity application, String name, String description) {
|
public void createOrUpdate(ApplicationEntity application, String name, String description) {
|
||||||
ApplicationPermissionEntity permission = findByName(application, name);
|
ApplicationPermissionEntity permission = findByName(application, name);
|
||||||
if (permission == null) {
|
if (permission == null) {
|
||||||
permission = new ApplicationPermissionEntity(name, description);
|
permission = new ApplicationPermissionEntity(name, description);
|
||||||
em.persist(permission);
|
em.persist(permission);
|
||||||
} else {
|
} else {
|
||||||
permission.setPermissionDescription(description);
|
permission.setPermissionDescription(description);
|
||||||
em.merge(permission);
|
em.merge(permission);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void delete(ApplicationPermissionEntity permission) throws AccountException {
|
@Transactional
|
||||||
ApplicationPermissionEntity existingPermission = attach(permission);
|
public void delete(ApplicationPermissionEntity permission) throws AccountException {
|
||||||
em.remove(existingPermission);
|
ApplicationPermissionEntity existingPermission = attach(permission);
|
||||||
}
|
em.remove(existingPermission);
|
||||||
|
}
|
||||||
public ApplicationPermissionEntity attach(ApplicationPermissionEntity permission) throws AccountException {
|
|
||||||
try {
|
public ApplicationPermissionEntity attach(ApplicationPermissionEntity permission) throws AccountException {
|
||||||
return em.merge(permission);
|
try {
|
||||||
} catch (OptimisticLockException ex) {
|
return em.merge(permission);
|
||||||
throw new AccountException("Entity updated / deleted, please reload", true);
|
} catch (OptimisticLockException ex) {
|
||||||
}
|
throw new AccountException("Entity updated / deleted, please reload", true);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
private ApplicationPermissionEntity findByName(ApplicationEntity application, String name) {
|
|
||||||
Query query = em.createNamedQuery("ApplicationPermissionEntity.findByPermissionName");
|
private ApplicationPermissionEntity findByName(ApplicationEntity application, String name) {
|
||||||
query.setParameter("application", application);
|
Query query = em.createNamedQuery("ApplicationPermissionEntity.findByPermissionName");
|
||||||
query.setParameter("permissionName", name);
|
query.setParameter("application", application);
|
||||||
List<ApplicationPermissionEntity> permissions = query.getResultList();
|
query.setParameter("permissionName", name);
|
||||||
if ((permissions == null) || (permissions.isEmpty())) {
|
List<ApplicationPermissionEntity> permissions = query.getResultList();
|
||||||
return null;
|
if ((permissions == null) || (permissions.isEmpty())) {
|
||||||
} else {
|
return null;
|
||||||
return permissions.get(0);
|
} else {
|
||||||
}
|
return permissions.get(0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user