started to add application support for roles
This commit is contained in:
@ -8,6 +8,7 @@ package de.muehlencord.shared.account.business.account.boundary;
|
||||
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.ApplicationRoleEntity;
|
||||
import de.muehlencord.shared.account.business.application.entity.ApplicationEntity;
|
||||
import java.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@ -37,8 +38,9 @@ public class ApplicationRoleControl implements Serializable {
|
||||
@PersistenceContext
|
||||
EntityManager em;
|
||||
|
||||
public List<ApplicationRoleEntity> getAllRoles() {
|
||||
public List<ApplicationRoleEntity> getAllRoles(ApplicationEntity application) {
|
||||
Query query = em.createNamedQuery("ApplicationRoleEntity.findAll");
|
||||
query.setParameter ("application", application);
|
||||
|
||||
List<ApplicationRoleEntity> roles = query.getResultList();
|
||||
if (roles == null) {
|
||||
@ -49,25 +51,35 @@ public class ApplicationRoleControl implements Serializable {
|
||||
}
|
||||
|
||||
@Transactional
|
||||
public void createOrUpdate(String name, String description) {
|
||||
public void createOrUpdate(ApplicationEntity application, String name, String description) {
|
||||
ApplicationRoleEntity role = findByName(name);
|
||||
if (role == null) {
|
||||
role = new ApplicationRoleEntity(name, description);
|
||||
role = new ApplicationRoleEntity(application, name, description);
|
||||
em.persist(role);
|
||||
} else {
|
||||
role.setRoleDescription(description);
|
||||
em.merge(role);
|
||||
}
|
||||
}
|
||||
|
||||
public void delete(ApplicationRoleEntity permission) throws AccountException {
|
||||
ApplicationRoleEntity existingPermission = attach(permission);
|
||||
em.remove(existingPermission);
|
||||
|
||||
@Transactional
|
||||
public void create(ApplicationRoleEntity role) {
|
||||
em.persist(role);
|
||||
}
|
||||
|
||||
@Transactional
|
||||
public void update (ApplicationRoleEntity role) {
|
||||
em.merge(role);
|
||||
}
|
||||
|
||||
public ApplicationRoleEntity attach(ApplicationRoleEntity permission) throws AccountException {
|
||||
public void delete(ApplicationRoleEntity role) throws AccountException {
|
||||
ApplicationRoleEntity existingRole = attach(role);
|
||||
em.remove(existingRole);
|
||||
}
|
||||
|
||||
public ApplicationRoleEntity attach(ApplicationRoleEntity role) throws AccountException {
|
||||
try {
|
||||
return em.merge(permission);
|
||||
return em.merge(role);
|
||||
} catch (OptimisticLockException ex) {
|
||||
throw new AccountException("Entity updated / deleted, please reload", true);
|
||||
}
|
||||
|
||||
@ -31,9 +31,9 @@ import org.hibernate.annotations.Type;
|
||||
@Table(name = "application_role")
|
||||
@XmlRootElement
|
||||
@NamedQueries({
|
||||
@NamedQuery(name = "ApplicationRoleEntity.findAll", query = "SELECT a FROM ApplicationRoleEntity a ORDER BY a.roleName")
|
||||
, @NamedQuery(name = "ApplicationRoleEntity.findByRoleName", query = "SELECT a FROM ApplicationRoleEntity a WHERE a.roleName = :roleName")
|
||||
, @NamedQuery(name = "ApplicationRoleEntity.findByRoleDescription", query = "SELECT a FROM ApplicationRoleEntity a WHERE a.roleDescription = :roleDescription")})
|
||||
@NamedQuery(name = "ApplicationRoleEntity.findAll", query = "SELECT a FROM ApplicationRoleEntity a WHERE a.application = :application ORDER BY a.roleName"),
|
||||
@NamedQuery(name = "ApplicationRoleEntity.findByRoleName", query = "SELECT a FROM ApplicationRoleEntity a WHERE a.application = :application AND a.roleName = :roleName"),
|
||||
@NamedQuery(name = "ApplicationRoleEntity.findByRoleDescription", query = "SELECT a FROM ApplicationRoleEntity a WHERE a.application = :application AND a.roleDescription = :roleDescription")})
|
||||
|
||||
public class ApplicationRoleEntity implements Serializable {
|
||||
|
||||
@ -66,23 +66,28 @@ public class ApplicationRoleEntity implements Serializable {
|
||||
private List<ApplicationPermissionEntity> applicationPermissionList;
|
||||
@JoinColumn(name = "application", referencedColumnName = "id")
|
||||
@ManyToOne(optional = false)
|
||||
private ApplicationEntity application;
|
||||
private ApplicationEntity application;
|
||||
|
||||
public ApplicationRoleEntity() {
|
||||
}
|
||||
|
||||
public ApplicationRoleEntity(UUID id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public ApplicationRoleEntity(String roleName, String roleDescription) {
|
||||
|
||||
public ApplicationRoleEntity(ApplicationEntity application) {
|
||||
this.id = null;
|
||||
this.application = application;
|
||||
this.roleName = null;
|
||||
this.roleDescription = null;
|
||||
}
|
||||
|
||||
public ApplicationRoleEntity(ApplicationEntity application, String roleName, String roleDescription) {
|
||||
this.id = null;
|
||||
this.application = application;
|
||||
this.roleName = roleName;
|
||||
this.roleDescription = roleDescription;
|
||||
}
|
||||
|
||||
public ApplicationRoleEntity(UUID id, String roleName, String roleDescription) {
|
||||
public ApplicationRoleEntity(UUID id, ApplicationEntity application, String roleName, String roleDescription) {
|
||||
this.id = id;
|
||||
this.application = application;
|
||||
this.roleName = roleName;
|
||||
this.roleDescription = roleDescription;
|
||||
}
|
||||
@ -128,14 +133,14 @@ public class ApplicationRoleEntity implements Serializable {
|
||||
public void setApplicationPermissionList(List<ApplicationPermissionEntity> applicationPermissionList) {
|
||||
this.applicationPermissionList = applicationPermissionList;
|
||||
}
|
||||
|
||||
|
||||
public ApplicationEntity getApplication() {
|
||||
return application;
|
||||
}
|
||||
|
||||
public void setApplication(ApplicationEntity application) {
|
||||
this.application = application;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
|
||||
Reference in New Issue
Block a user