added application support for permissions
This commit is contained in:
@ -6,9 +6,9 @@ import de.muehlencord.shared.jeeutil.FacesUtil;
|
|||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import javax.annotation.PostConstruct;
|
import javax.annotation.PostConstruct;
|
||||||
import javax.enterprise.context.SessionScoped;
|
import javax.faces.bean.ManagedBean;
|
||||||
|
import javax.faces.bean.SessionScoped;
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import javax.inject.Named;
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
@ -16,7 +16,7 @@ import org.slf4j.LoggerFactory;
|
|||||||
*
|
*
|
||||||
* @author Joern Muehlencord <joern at muehlencord.de>
|
* @author Joern Muehlencord <joern at muehlencord.de>
|
||||||
*/
|
*/
|
||||||
@Named(value = "applicationView")
|
@ManagedBean (name="applicationView")
|
||||||
@SessionScoped
|
@SessionScoped
|
||||||
public class ApplicationView implements Serializable {
|
public class ApplicationView implements Serializable {
|
||||||
|
|
||||||
@ -36,7 +36,7 @@ public class ApplicationView implements Serializable {
|
|||||||
getAllApplications();
|
getAllApplications();
|
||||||
if ((applicationList != null) && (!applicationList.isEmpty())) {
|
if ((applicationList != null) && (!applicationList.isEmpty())) {
|
||||||
currentApplication = applicationList.get(0);
|
currentApplication = applicationList.get(0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<ApplicationEntity> getAllApplications() {
|
public List<ApplicationEntity> getAllApplications() {
|
||||||
@ -79,6 +79,21 @@ public class ApplicationView implements Serializable {
|
|||||||
FacesUtil.addGlobalInfoMessage("Info", "Application saved");
|
FacesUtil.addGlobalInfoMessage("Info", "Application saved");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void deleteApplication() {
|
||||||
|
if (currentApplication == null) {
|
||||||
|
FacesUtil.addGlobalErrorMessage("Error", "Need to provide data");
|
||||||
|
} else if (currentApplication.getId() == null) {
|
||||||
|
FacesUtil.addGlobalErrorMessage("Error", "Cannot delete non persistent data");
|
||||||
|
} else {
|
||||||
|
String applicationName = currentApplication.getApplicationName();
|
||||||
|
applicationService.delete (currentApplication);
|
||||||
|
applicationList = null; // force reload to update view
|
||||||
|
currentApplication = null;
|
||||||
|
selectDefaultCurrentApplication();
|
||||||
|
FacesUtil.addGlobalInfoMessage("Info", "Application "+applicationName+" deleted");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* *** getter / setter *** */
|
/* *** getter / setter *** */
|
||||||
public ApplicationEntity getCurrentApplication() {
|
public ApplicationEntity getCurrentApplication() {
|
||||||
|
|||||||
@ -18,12 +18,14 @@ package de.muehlencord.shared.account.web.presentation;
|
|||||||
import de.muehlencord.shared.account.business.account.boundary.ApplicationPermissionControl;
|
import de.muehlencord.shared.account.business.account.boundary.ApplicationPermissionControl;
|
||||||
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.jeeutil.FacesUtil;
|
import de.muehlencord.shared.jeeutil.FacesUtil;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import javax.ejb.EJB;
|
import javax.ejb.EJB;
|
||||||
import javax.enterprise.context.SessionScoped;
|
import javax.faces.bean.ManagedBean;
|
||||||
import javax.inject.Named;
|
import javax.faces.bean.ManagedProperty;
|
||||||
|
import javax.faces.bean.SessionScoped;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
@ -31,23 +33,28 @@ import org.slf4j.LoggerFactory;
|
|||||||
*
|
*
|
||||||
* @author Joern Muehlencord <joern at muehlencord.de>
|
* @author Joern Muehlencord <joern at muehlencord.de>
|
||||||
*/
|
*/
|
||||||
|
@ManagedBean(name = "permissionView")
|
||||||
@SessionScoped
|
@SessionScoped
|
||||||
@Named
|
|
||||||
public class PermissionView implements Serializable {
|
public class PermissionView implements Serializable {
|
||||||
|
|
||||||
private static final long serialVersionUID = -1469453490360990772L;
|
private static final long serialVersionUID = -1469453490360990772L;
|
||||||
private static final Logger LOGGER = LoggerFactory.getLogger(PermissionView.class);
|
private static final Logger LOGGER = LoggerFactory.getLogger(PermissionView.class);
|
||||||
|
|
||||||
|
@ManagedProperty(value = "#{applicationView}")
|
||||||
|
private ApplicationView applicationView;
|
||||||
|
|
||||||
@EJB
|
@EJB
|
||||||
ApplicationPermissionControl applicationPermissionService;
|
ApplicationPermissionControl applicationPermissionService;
|
||||||
private ApplicationPermissionEntity currentPermission;
|
private ApplicationPermissionEntity currentPermission;
|
||||||
|
|
||||||
public List<ApplicationPermissionEntity> getAppPermissions() {
|
public List<ApplicationPermissionEntity> getAppPermissions() {
|
||||||
return applicationPermissionService.getApplicationPermissions();
|
return applicationPermissionService.getApplicationPermissions(applicationView.getCurrentApplication());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void saveEditPermission() throws AccountException {
|
public void saveEditPermission() throws AccountException {
|
||||||
if (currentPermission != null) {
|
if (currentPermission != null) {
|
||||||
|
ApplicationEntity currentApplication = applicationView.getCurrentApplication();
|
||||||
|
String currentApplicationName = currentApplication.getApplicationName();
|
||||||
String newPermissionName = currentPermission.getPermissionName();
|
String newPermissionName = currentPermission.getPermissionName();
|
||||||
String newPermissionDescription = currentPermission.getPermissionDescription();
|
String newPermissionDescription = currentPermission.getPermissionDescription();
|
||||||
if ((newPermissionName == null) || (newPermissionName.trim().length() == 0)) {
|
if ((newPermissionName == null) || (newPermissionName.trim().length() == 0)) {
|
||||||
@ -56,7 +63,7 @@ public class PermissionView implements Serializable {
|
|||||||
FacesUtil.addErrorMessage("editDialogMessages", "Error", "Permission name must not be null");
|
FacesUtil.addErrorMessage("editDialogMessages", "Error", "Permission name must not be null");
|
||||||
} else {
|
} else {
|
||||||
if (currentPermission.getId() == null) {
|
if (currentPermission.getId() == null) {
|
||||||
applicationPermissionService.create(newPermissionName, newPermissionName);
|
applicationPermissionService.create(currentApplicationName, newPermissionName, newPermissionName);
|
||||||
FacesUtil.addGlobalInfoMessage("Info", "Permission " + newPermissionName + " created");
|
FacesUtil.addGlobalInfoMessage("Info", "Permission " + newPermissionName + " created");
|
||||||
// deselectPermission();
|
// deselectPermission();
|
||||||
} else {
|
} else {
|
||||||
@ -68,6 +75,14 @@ public class PermissionView implements Serializable {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ApplicationEntity getCurrentApplication() {
|
||||||
|
if (applicationView.getCurrentApplication() == null) {
|
||||||
|
return null;
|
||||||
|
} else {
|
||||||
|
return applicationView.getCurrentApplication();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void cancelEditPermission() {
|
public void cancelEditPermission() {
|
||||||
this.currentPermission = null;
|
this.currentPermission = null;
|
||||||
}
|
}
|
||||||
@ -100,19 +115,8 @@ public class PermissionView implements Serializable {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// public void selectPermission() {
|
|
||||||
// this.permissionSelected = true;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public void deselectPermission() {
|
|
||||||
// this.permissionSelected = false;
|
|
||||||
// }
|
|
||||||
|
|
||||||
public boolean getCanEdit() {
|
public boolean getCanEdit() {
|
||||||
if (!isPermissionSelected()) {
|
return isPermissionSelected();
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean getCanDelete() {
|
public boolean getCanDelete() {
|
||||||
@ -120,6 +124,16 @@ public class PermissionView implements Serializable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* *** getter / setter *** */
|
/* *** getter / setter *** */
|
||||||
|
/**
|
||||||
|
* required setter for managedProperty
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @param applicationView the injected applicationView
|
||||||
|
*/
|
||||||
|
public void setApplicationView(ApplicationView applicationView) {
|
||||||
|
this.applicationView = applicationView;
|
||||||
|
}
|
||||||
|
|
||||||
public ApplicationPermissionEntity getCurrentPermission() {
|
public ApplicationPermissionEntity getCurrentPermission() {
|
||||||
return currentPermission;
|
return currentPermission;
|
||||||
}
|
}
|
||||||
@ -132,9 +146,4 @@ public class PermissionView implements Serializable {
|
|||||||
public boolean isPermissionSelected() {
|
public boolean isPermissionSelected() {
|
||||||
return currentPermission != null;
|
return currentPermission != null;
|
||||||
}
|
}
|
||||||
|
|
||||||
// public void setPermissionSelected(boolean permissionSelected) {
|
|
||||||
// this.permissionSelected = permissionSelected;
|
|
||||||
// }
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,13 +1,15 @@
|
|||||||
package de.muehlencord.shared.account.web.presentation;
|
package de.muehlencord.shared.account.web.presentation;
|
||||||
|
|
||||||
|
import de.muehlencord.shared.account.business.application.boundary.ApplicationService;
|
||||||
|
import de.muehlencord.shared.account.business.application.entity.ApplicationEntity;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
import javax.ejb.EJB;
|
||||||
|
import javax.faces.application.FacesMessage;
|
||||||
import javax.faces.component.UIComponent;
|
import javax.faces.component.UIComponent;
|
||||||
import javax.faces.context.FacesContext;
|
import javax.faces.context.FacesContext;
|
||||||
import javax.faces.validator.FacesValidator;
|
import javax.faces.validator.FacesValidator;
|
||||||
import javax.faces.validator.Validator;
|
import javax.faces.validator.Validator;
|
||||||
import javax.faces.validator.ValidatorException;
|
import javax.faces.validator.ValidatorException;
|
||||||
import javax.inject.Inject;
|
|
||||||
import javax.persistence.EntityManager;
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
@ -20,17 +22,27 @@ public class UniqueApplicationValidator implements Validator, Serializable {
|
|||||||
|
|
||||||
private static final long serialVersionUID = 2526409681909574670L;
|
private static final long serialVersionUID = 2526409681909574670L;
|
||||||
private static final Logger LOGGER = LoggerFactory.getLogger(UniqueApplicationValidator.class);
|
private static final Logger LOGGER = LoggerFactory.getLogger(UniqueApplicationValidator.class);
|
||||||
|
|
||||||
@Inject
|
@EJB
|
||||||
EntityManager em;
|
ApplicationService applicationService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void validate(FacesContext context, UIComponent component, Object value) throws ValidatorException {
|
public void validate(FacesContext context, UIComponent component, Object value) throws ValidatorException {
|
||||||
String name = (String) value;
|
if (value == null) {
|
||||||
LOGGER.info("Name = {}", name) ;
|
throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR, "Application name invalid", "Application name must not be empty"));
|
||||||
|
}
|
||||||
|
if (value instanceof String) {
|
||||||
|
String applicationname = (String) value;
|
||||||
|
ApplicationEntity existingApplication = applicationService.findByApplicationName(applicationname);
|
||||||
|
if (existingApplication != null) {
|
||||||
|
throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR, "Application name invalid", "Application already exists"));
|
||||||
|
}
|
||||||
|
LOGGER.info("Name = {}", applicationname);
|
||||||
|
} else {
|
||||||
|
throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR, "Application name invalid", "Application name must be a string value"));
|
||||||
|
// TODO add IPRS logger - someone is trying to cheat
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,59 @@
|
|||||||
|
package de.muehlencord.shared.account.web.presentation;
|
||||||
|
|
||||||
|
import de.muehlencord.shared.account.business.account.boundary.ApplicationPermissionControl;
|
||||||
|
import de.muehlencord.shared.account.business.account.entity.ApplicationPermissionEntity;
|
||||||
|
import de.muehlencord.shared.account.business.application.entity.ApplicationEntity;
|
||||||
|
import java.io.Serializable;
|
||||||
|
import javax.ejb.EJB;
|
||||||
|
import javax.faces.application.FacesMessage;
|
||||||
|
import javax.faces.component.UIComponent;
|
||||||
|
import javax.faces.context.FacesContext;
|
||||||
|
import javax.faces.validator.FacesValidator;
|
||||||
|
import javax.faces.validator.Validator;
|
||||||
|
import javax.faces.validator.ValidatorException;
|
||||||
|
import javax.inject.Inject;
|
||||||
|
import javax.persistence.EntityManager;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author Joern Muehlencord <joern at muehlencord.de>
|
||||||
|
*/
|
||||||
|
@FacesValidator("uniquePermissionNameValidator")
|
||||||
|
public class UniquePermissionNameValidator implements Validator, Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 2526409681909574670L;
|
||||||
|
private static final Logger LOGGER = LoggerFactory.getLogger(UniquePermissionNameValidator.class);
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
EntityManager em;
|
||||||
|
|
||||||
|
@EJB
|
||||||
|
ApplicationPermissionControl applicationPermissionControl;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void validate(FacesContext context, UIComponent component, Object value) throws ValidatorException {
|
||||||
|
Object applicationObj = component.getAttributes().get("application");
|
||||||
|
if ((applicationObj != null) && (applicationObj instanceof ApplicationEntity)) {
|
||||||
|
ApplicationEntity application = (ApplicationEntity) applicationObj;
|
||||||
|
if (value == null) {
|
||||||
|
throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR, "Permission name invalid", "Permission name must not be empty"));
|
||||||
|
}
|
||||||
|
if (value instanceof String) {
|
||||||
|
String permissionName = (String) value;
|
||||||
|
ApplicationPermissionEntity existingPermission = applicationPermissionControl.findPermissionByName(application, permissionName);
|
||||||
|
if (existingPermission != null) {
|
||||||
|
throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR, "Permission name invalid", "Permission already exists"));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR, "Permission name invalid", "Permission name must be a string value"));
|
||||||
|
// TODO add IPRS logger - someone is trying to cheat
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR, "Application not set", "Permission name cannot be set if application is unknown"));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -83,7 +83,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="col-sm-12 col-md-3">
|
<div class="col-sm-12 col-md-3">
|
||||||
<p:spacer height="10px" />
|
<p:spacer height="10px" />
|
||||||
<p:commandButton value="Delete" id="deleteButton" icon="fa fa-fw fa-trash-o"
|
<p:commandButton value="Delete" id="deleteButton" icon="fa fa-trash-o"
|
||||||
update=":accountForm:accountTable" action="#{accountView.deleteAccount}" disabled="#{!accountView.accountSelected}" styleClass="btn-danger btn-block">
|
update=":accountForm:accountTable" action="#{accountView.deleteAccount}" disabled="#{!accountView.accountSelected}" styleClass="btn-danger btn-block">
|
||||||
<p:confirm header="Confirmation" message="Are you sure?" icon="fa fa-exclamation-triangle" />
|
<p:confirm header="Confirmation" message="Are you sure?" icon="fa fa-exclamation-triangle" />
|
||||||
</p:commandButton>
|
</p:commandButton>
|
||||||
|
|||||||
@ -23,16 +23,25 @@
|
|||||||
<f:selectItems value="#{applicationView.allApplications}" var="app" itemLabel="#{app.applicationName}" itemValue="#{app}" />
|
<f:selectItems value="#{applicationView.allApplications}" var="app" itemLabel="#{app.applicationName}" itemValue="#{app}" />
|
||||||
</p:selectOneMenu>
|
</p:selectOneMenu>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-12 col-md-3">
|
<div class="col-sm-12 col-md-2">
|
||||||
<p:commandButton value="Select" styleClass="btn-primary btn-solid}" actionListener="#{applicationView.selectApplication}" />
|
<p:commandButton value="Select" styleClass="btn-primary btn-solid}" actionListener="#{applicationView.selectApplication}" />
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-12 col-md-3">
|
<div class="col-sm-12 col-md-2">
|
||||||
<p:commandButton value="New" id="newButton" icon="fa fa-plus"
|
<p:commandButton value="New" id="newButton" icon="fa fa-plus"
|
||||||
update="editDialog" oncomplete="PF('editDialogVar').show();"
|
update="editDialog" oncomplete="PF('editDialogVar').show();"
|
||||||
actionListener="#{applicationView.newApplication}" styleClass="btn-teal btn-block" />
|
actionListener="#{applicationView.newApplication}" styleClass="btn-teal btn-block" />
|
||||||
</div>
|
</div>
|
||||||
|
<div class="col-sm-12 col-md-2">
|
||||||
|
<p:commandButton id="deletePermissionButton" icon="fa fa-trash-o" value="#{msgs.button_delete}" actionListener="#{applicationView.deleteApplication}"
|
||||||
|
update="applicationSelect" styleClass="btn-danger btn-block" >
|
||||||
|
<p:confirm header="Confirmation" message="Are you sure?" icon="fa fa-exclamation-triangle" />
|
||||||
|
</p:commandButton>
|
||||||
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</p:panel>
|
</p:panel>
|
||||||
|
|
||||||
|
<composite:confirmationDialog />
|
||||||
</h:form>
|
</h:form>
|
||||||
|
|
||||||
<p:dialog id="editDialog" widgetVar="editDialogVar" header="Edit account" width="600"
|
<p:dialog id="editDialog" widgetVar="editDialogVar" header="Edit account" width="600"
|
||||||
@ -49,19 +58,18 @@
|
|||||||
<div class="col-sm-12 col-md-6">
|
<div class="col-sm-12 col-md-6">
|
||||||
<p:inputText id="applicationName" value="#{applicationView.editApplication.applicationName}">
|
<p:inputText id="applicationName" value="#{applicationView.editApplication.applicationName}">
|
||||||
<f:validator validatorId="uniqueApplicationValidator"/>
|
<f:validator validatorId="uniqueApplicationValidator"/>
|
||||||
<f:attribute name="applicationName" value="#{applicationView.editApplication.applicationName}" />
|
|
||||||
</p:inputText>
|
</p:inputText>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-12 col-md-3">
|
<div class="col-sm-12 col-md-3">
|
||||||
<p:message for="applicationName"><p:autoUpdate /></p:message>
|
<p:message for="applicationName"><p:autoUpdate /></p:message>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-sm-12 col-md-6">
|
<div class="col-sm-12 col-md-3">
|
||||||
<p:spacer height="10px" />
|
<p:spacer height="10px" />
|
||||||
<p:commandButton value="Save" action="#{applicationView.saveEditApplication}" styleClass="btn-primary btn-block"
|
<p:commandButton value="Save" action="#{applicationView.saveEditApplication}" styleClass="btn-primary btn-block"
|
||||||
oncomplete="if (args && !args.validationFailed) PF('editDialogVar').hide();" update=":applicationForm" />
|
oncomplete="if (args && !args.validationFailed) PF('editDialogVar').hide();" update=":applicationForm" />
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-12 col-md-6">
|
<div class="col-sm-12 col-md-3">
|
||||||
<p:spacer height="10px" />
|
<p:spacer height="10px" />
|
||||||
<p:commandButton value="Cancel" action="#{applicationView.cancelEditApplication}" immediate="true" styleClass="btn-teal btn-block"
|
<p:commandButton value="Cancel" action="#{applicationView.cancelEditApplication}" immediate="true" styleClass="btn-teal btn-block"
|
||||||
oncomplete="PF('editDialogVar').hide();" />
|
oncomplete="PF('editDialogVar').hide();" />
|
||||||
|
|||||||
@ -44,7 +44,7 @@
|
|||||||
<div class="ui-g-12 ui-md-2">
|
<div class="ui-g-12 ui-md-2">
|
||||||
<p:commandButton id="deletePermissionButton" icon="fa fa-trash-o" value="#{msgs.button_delete}" actionListener="#{permissionView.deletePermission}"
|
<p:commandButton id="deletePermissionButton" icon="fa fa-trash-o" value="#{msgs.button_delete}" actionListener="#{permissionView.deletePermission}"
|
||||||
update="permissionForm" styleClass="btn-danger btn-block" disabled="#{!permissionView.canDelete}">
|
update="permissionForm" styleClass="btn-danger btn-block" disabled="#{!permissionView.canDelete}">
|
||||||
<p:confirm header="Confirmation" message="Are you sure?" icon="fa fa-fw fa-exclamation-triangle" />
|
<p:confirm header="Confirmation" message="Are you sure?" icon="fa fa-exclamation-triangle" />
|
||||||
</p:commandButton>
|
</p:commandButton>
|
||||||
</div>
|
</div>
|
||||||
</f:facet>
|
</f:facet>
|
||||||
@ -66,7 +66,11 @@
|
|||||||
<div class="ui-g-12 ui-md-3">
|
<div class="ui-g-12 ui-md-3">
|
||||||
<div class="ui-inputgroup">
|
<div class="ui-inputgroup">
|
||||||
<span class="ui-inputgroup-addon"><i style="font-size: 20px" class="fa fa-edit"></i></span>
|
<span class="ui-inputgroup-addon"><i style="font-size: 20px" class="fa fa-edit"></i></span>
|
||||||
<p:inputText id="newName" value="#{permissionView.currentPermission.permissionName}" maxlength="80" size="30" placeholder="#{msgs.label_name}" />
|
<p:inputText id="newName" value="#{permissionView.currentPermission.permissionName}" maxlength="80" size="30" placeholder="#{msgs.label_name}" >
|
||||||
|
<f:validator validatorId="uniquePermissionNameValidator"/>
|
||||||
|
<!--<f:attribute name="permissionName" value="#{permissionView.currentPermission.permissionName}" />-->
|
||||||
|
<f:attribute name="application" value="#{permissionView.currentApplication}" />
|
||||||
|
</p:inputText>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-12 col-md-9">
|
<div class="col-sm-12 col-md-9">
|
||||||
|
|||||||
@ -33,14 +33,14 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="ui-g-12 ui-md-2">
|
<div class="ui-g-12 ui-md-2">
|
||||||
<p:commandButton icon="fa fa-fw fa-plus" value="#{msgs.button_save}" action="#{groupView.newRole}" update="groupForm" styleClass="btn-primary btn-block"/>
|
<p:commandButton icon="fa fa-plus" value="#{msgs.button_save}" action="#{groupView.newRole}" update="groupForm" styleClass="btn-primary btn-block"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="ui-g-12 ui-md-2">
|
<div class="ui-g-12 ui-md-2">
|
||||||
<p:commandButton icon="fa fa-fw fa-pencil" value="#{msgs.button_edit}" action="#{groupView.editRole}" update="groupForm" styleClass="btn-teal btn-block"/>
|
<p:commandButton icon="fa fa-pencil" value="#{msgs.button_edit}" action="#{groupView.editRole}" update="groupForm" styleClass="btn-teal btn-block"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="ui-g-12 ui-md-2">
|
<div class="ui-g-12 ui-md-2">
|
||||||
<p:commandButton icon="fa fa-fw fa-trash-o" value="#{msgs.button_delete}" action="#{groupView.deleteRole}" update="groupForm" styleClass="btn-danger btn-block">
|
<p:commandButton icon="fa fa-trash-o" value="#{msgs.button_delete}" action="#{groupView.deleteRole}" update="groupForm" styleClass="btn-danger btn-block">
|
||||||
<p:confirm header="Confirmation" message="Are you sure?" icon="fa fa-fw fa-exclamation-triangle" />
|
<p:confirm header="Confirmation" message="Are you sure?" icon="fa fa-exclamation-triangle" />
|
||||||
</p:commandButton>
|
</p:commandButton>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -82,7 +82,7 @@
|
|||||||
<p:commandButton id="deletePermissionButton" icon="fa fa-trash-o" value="Delete" update=":groupForm:groupTable,:groupForm:permissionTable"
|
<p:commandButton id="deletePermissionButton" icon="fa fa-trash-o" value="Delete" update=":groupForm:groupTable,:groupForm:permissionTable"
|
||||||
action="#{groupView.removeRolePermission}" styleClass="btn-danger btn-block"
|
action="#{groupView.removeRolePermission}" styleClass="btn-danger btn-block"
|
||||||
disabled="#{!groupView.isPermissionSelected}" >
|
disabled="#{!groupView.isPermissionSelected}" >
|
||||||
<p:confirm header="Confirmation" message="Are you sure?" icon="fa fa-fw fa-exclamation-triangle" />
|
<p:confirm header="Confirmation" message="Are you sure?" icon="fa fa-exclamation-triangle" />
|
||||||
</p:commandButton>
|
</p:commandButton>
|
||||||
</div>
|
</div>
|
||||||
</f:facet>
|
</f:facet>
|
||||||
|
|||||||
@ -2,12 +2,15 @@ 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.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.boundary.ApplicationService;
|
||||||
|
import de.muehlencord.shared.account.business.application.entity.ApplicationEntity;
|
||||||
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 javax.persistence.PersistenceContext;
|
import javax.persistence.PersistenceContext;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import javax.ejb.EJB;
|
||||||
import javax.persistence.OptimisticLockException;
|
import javax.persistence.OptimisticLockException;
|
||||||
import javax.persistence.Query;
|
import javax.persistence.Query;
|
||||||
import javax.transaction.Transactional;
|
import javax.transaction.Transactional;
|
||||||
@ -21,11 +24,16 @@ public class ApplicationPermissionControl implements Serializable {
|
|||||||
|
|
||||||
private static final long serialVersionUID = -3761100587901739481L;
|
private static final long serialVersionUID = -3761100587901739481L;
|
||||||
|
|
||||||
|
@EJB
|
||||||
|
ApplicationService applicationService;
|
||||||
|
|
||||||
@PersistenceContext
|
@PersistenceContext
|
||||||
EntityManager em;
|
EntityManager em;
|
||||||
|
|
||||||
public List getApplicationPermissions() {
|
public List<ApplicationPermissionEntity> getApplicationPermissions(ApplicationEntity application) {
|
||||||
List<ApplicationPermissionEntity> permissionList = em.createNamedQuery("ApplicationPermissionEntity.findAll").getResultList();
|
Query query = em.createNamedQuery("ApplicationPermissionEntity.findAll");
|
||||||
|
query.setParameter("application", application);
|
||||||
|
List<ApplicationPermissionEntity> permissionList = query.getResultList();
|
||||||
if (permissionList == null) {
|
if (permissionList == null) {
|
||||||
return new ArrayList<>();
|
return new ArrayList<>();
|
||||||
} else {
|
} else {
|
||||||
@ -33,15 +41,29 @@ public class ApplicationPermissionControl implements Serializable {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ApplicationPermissionEntity findPermissionByName(ApplicationEntity application, String permissionName) {
|
||||||
|
Query query = em.createNamedQuery("ApplicationPermissionEntity.findByPermissionName");
|
||||||
|
query.setParameter("application", application);
|
||||||
|
query.setParameter("permissionName", permissionName);
|
||||||
|
List<ApplicationPermissionEntity> resultList = query.getResultList();
|
||||||
|
if ((resultList == null) || (resultList.isEmpty())) {
|
||||||
|
return null;
|
||||||
|
} else {
|
||||||
|
return resultList.get(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
public void create(String name, String description) {
|
public void create(String applicationName, String name, String description) {
|
||||||
ApplicationPermissionEntity permission = new ApplicationPermissionEntity(name, description);
|
ApplicationEntity application = applicationService.findByApplicationName(applicationName);
|
||||||
|
// TODO add error handling if not found
|
||||||
|
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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -94,7 +94,7 @@ public class ApplicationRoleControl implements Serializable {
|
|||||||
public List<ApplicationPermissionEntity> getNotAssignedApplicationPermissions(ApplicationRoleEntity role) {
|
public List<ApplicationPermissionEntity> getNotAssignedApplicationPermissions(ApplicationRoleEntity role) {
|
||||||
try {
|
try {
|
||||||
List<ApplicationPermissionEntity> rolePermissions = getRolePermissions(role);
|
List<ApplicationPermissionEntity> rolePermissions = getRolePermissions(role);
|
||||||
List<ApplicationPermissionEntity> allPermssions = applicationPermissionControl.getApplicationPermissions();
|
List<ApplicationPermissionEntity> allPermssions = applicationPermissionControl.getApplicationPermissions(role.getApplication());
|
||||||
|
|
||||||
List<ApplicationPermissionEntity> missingPermissions = new ArrayList<>();
|
List<ApplicationPermissionEntity> missingPermissions = new ArrayList<>();
|
||||||
allPermssions.stream().filter((perm) -> (!rolePermissions.contains(perm))).forEachOrdered((perm) -> {
|
allPermssions.stream().filter((perm) -> (!rolePermissions.contains(perm))).forEachOrdered((perm) -> {
|
||||||
|
|||||||
@ -1,136 +1,158 @@
|
|||||||
package de.muehlencord.shared.account.business.account.entity;
|
package de.muehlencord.shared.account.business.account.entity;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import de.muehlencord.shared.account.business.application.entity.ApplicationEntity;
|
||||||
import java.util.List;
|
import java.io.Serializable;
|
||||||
import java.util.UUID;
|
import java.util.List;
|
||||||
import javax.persistence.Basic;
|
import java.util.UUID;
|
||||||
import javax.persistence.Column;
|
import javax.persistence.Basic;
|
||||||
import javax.persistence.Entity;
|
import javax.persistence.Column;
|
||||||
import javax.persistence.GeneratedValue;
|
import javax.persistence.Entity;
|
||||||
import javax.persistence.Id;
|
import javax.persistence.GeneratedValue;
|
||||||
import javax.persistence.ManyToMany;
|
import javax.persistence.Id;
|
||||||
import javax.persistence.NamedQueries;
|
import javax.persistence.JoinColumn;
|
||||||
import javax.persistence.NamedQuery;
|
import javax.persistence.ManyToMany;
|
||||||
import javax.persistence.Table;
|
import javax.persistence.ManyToOne;
|
||||||
import javax.validation.constraints.NotNull;
|
import javax.persistence.NamedQueries;
|
||||||
import javax.validation.constraints.Size;
|
import javax.persistence.NamedQuery;
|
||||||
import javax.xml.bind.annotation.XmlRootElement;
|
import javax.persistence.Table;
|
||||||
import javax.xml.bind.annotation.XmlTransient;
|
import javax.validation.constraints.NotNull;
|
||||||
import org.hibernate.annotations.GenericGenerator;
|
import javax.validation.constraints.Size;
|
||||||
import org.hibernate.annotations.Type;
|
import javax.xml.bind.annotation.XmlRootElement;
|
||||||
|
import javax.xml.bind.annotation.XmlTransient;
|
||||||
/**
|
import org.hibernate.annotations.GenericGenerator;
|
||||||
*
|
import org.hibernate.annotations.Type;
|
||||||
* @author joern.muehlencord
|
|
||||||
*/
|
/**
|
||||||
@Entity
|
*
|
||||||
@Table(name = "application_permission")
|
* @author joern.muehlencord
|
||||||
@XmlRootElement
|
*/
|
||||||
@NamedQueries({
|
@Entity
|
||||||
@NamedQuery(name = "ApplicationPermissionEntity.findAll", query = "SELECT a FROM ApplicationPermissionEntity a order by a.permissionName"),
|
@Table(name = "application_permission")
|
||||||
@NamedQuery(name = "ApplicationPermissionEntity.findNotAssigned", query = "SELECT a FROM ApplicationPermissionEntity a LEFT OUTER JOIN a.applicationRoleList r WHERE r NOT IN :permissions"),
|
@XmlRootElement
|
||||||
@NamedQuery(name = "ApplicationPermissionEntity.findByPermissionName", query = "SELECT a FROM ApplicationPermissionEntity a WHERE a.permissionName = :permissionName"),
|
@NamedQueries({
|
||||||
@NamedQuery(name = "ApplicationPermissionEntity.findByPermissionDescription", query = "SELECT a FROM ApplicationPermissionEntity a WHERE a.permissionDescription = :permissionDescription")})
|
@NamedQuery(name = "ApplicationPermissionEntity.findAll", query = "SELECT a FROM ApplicationPermissionEntity a WHERE a.application=:application order by a.permissionName"),
|
||||||
public class ApplicationPermissionEntity implements Serializable {
|
@NamedQuery(name = "ApplicationPermissionEntity.findNotAssigned", query = "SELECT a FROM ApplicationPermissionEntity a LEFT OUTER JOIN a.applicationRoles r WHERE a.application=:application AND r NOT IN :permissions"),
|
||||||
|
@NamedQuery(name = "ApplicationPermissionEntity.findByPermissionName", query = "SELECT a FROM ApplicationPermissionEntity a WHERE a.application=:application AND a.permissionName = :permissionName"),
|
||||||
private static final long serialVersionUID = -8985982754544829534L;
|
@NamedQuery(name = "ApplicationPermissionEntity.findByPermissionDescription", query = "SELECT a FROM ApplicationPermissionEntity a WHERE a.application=:application AND a.permissionDescription = :permissionDescription")})
|
||||||
|
public class ApplicationPermissionEntity implements Serializable {
|
||||||
@Id
|
|
||||||
@Basic(optional = false)
|
private static final long serialVersionUID = -8985982754544829534L;
|
||||||
@NotNull
|
|
||||||
@Column(name = "id")
|
@Id
|
||||||
@GeneratedValue(generator = "uuid2")
|
@Basic(optional = false)
|
||||||
@GenericGenerator(name = "uuid2", strategy = "uuid2")
|
@NotNull
|
||||||
@Type(type = "pg-uuid")
|
@Column(name = "id")
|
||||||
private UUID id;
|
@GeneratedValue(generator = "uuid2")
|
||||||
@Basic(optional = false)
|
@GenericGenerator(name = "uuid2", strategy = "uuid2")
|
||||||
@NotNull
|
@Type(type = "pg-uuid")
|
||||||
@Size(min = 1, max = 80)
|
private UUID id;
|
||||||
@Column(name = "permission_name")
|
@Basic(optional = false)
|
||||||
private String permissionName;
|
@NotNull
|
||||||
@Basic(optional = false)
|
@Size(min = 1, max = 80)
|
||||||
@NotNull
|
@Column(name = "permission_name")
|
||||||
@Size(min = 1, max = 200)
|
private String permissionName;
|
||||||
@Column(name = "permission_description")
|
@Basic(optional = false)
|
||||||
private String permissionDescription;
|
@NotNull
|
||||||
@ManyToMany(mappedBy = "applicationPermissionList")
|
@Size(min = 1, max = 200)
|
||||||
private List<ApplicationRoleEntity> applicationRoleList;
|
@Column(name = "permission_description")
|
||||||
|
private String permissionDescription;
|
||||||
public ApplicationPermissionEntity() {
|
@JoinColumn(name = "application", referencedColumnName = "id")
|
||||||
}
|
@ManyToOne(optional = false)
|
||||||
|
private ApplicationEntity application;
|
||||||
public ApplicationPermissionEntity(UUID id) {
|
@ManyToMany(mappedBy = "applicationPermissionList")
|
||||||
this.id = id;
|
private List<ApplicationRoleEntity> applicationRoles;
|
||||||
}
|
|
||||||
|
public ApplicationPermissionEntity() {
|
||||||
public ApplicationPermissionEntity(String permissionName, String permissionDescription) {
|
}
|
||||||
this.id = null;
|
|
||||||
this.permissionName = permissionName;
|
public ApplicationPermissionEntity(UUID id) {
|
||||||
this.permissionDescription = permissionDescription;
|
this.id = id;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ApplicationPermissionEntity(UUID id, String permissionName, String permissionDescription) {
|
public ApplicationPermissionEntity(String permissionName, String permissionDescription) {
|
||||||
this.id = id;
|
this.id = null;
|
||||||
this.permissionName = permissionName;
|
this.permissionName = permissionName;
|
||||||
this.permissionDescription = permissionDescription;
|
this.permissionDescription = permissionDescription;
|
||||||
}
|
}
|
||||||
|
|
||||||
public UUID getId() {
|
public ApplicationPermissionEntity(ApplicationEntity application, String permissionName, String permissionDescription) {
|
||||||
return id;
|
this.id = null;
|
||||||
}
|
this.application = application;
|
||||||
|
this.permissionName = permissionName;
|
||||||
public void setId(UUID id) {
|
this.permissionDescription = permissionDescription;
|
||||||
this.id = id;
|
}
|
||||||
}
|
|
||||||
|
public ApplicationPermissionEntity(UUID id, ApplicationEntity application, String permissionName, String permissionDescription) {
|
||||||
public String getPermissionName() {
|
this.id = id;
|
||||||
return permissionName;
|
this.application = application;
|
||||||
}
|
this.permissionName = permissionName;
|
||||||
|
this.permissionDescription = permissionDescription;
|
||||||
public void setPermissionName(String permissionName) {
|
}
|
||||||
this.permissionName = permissionName;
|
|
||||||
}
|
public UUID getId() {
|
||||||
|
return id;
|
||||||
public String getPermissionDescription() {
|
}
|
||||||
return permissionDescription;
|
|
||||||
}
|
public void setId(UUID id) {
|
||||||
|
this.id = id;
|
||||||
public void setPermissionDescription(String permissionDescription) {
|
}
|
||||||
this.permissionDescription = permissionDescription;
|
|
||||||
}
|
public String getPermissionName() {
|
||||||
|
return permissionName;
|
||||||
@XmlTransient
|
}
|
||||||
public List<ApplicationRoleEntity> getApplicationRoleList() {
|
|
||||||
return applicationRoleList;
|
public void setPermissionName(String permissionName) {
|
||||||
}
|
this.permissionName = permissionName;
|
||||||
|
}
|
||||||
public void setApplicationRoleList(List<ApplicationRoleEntity> applicationRoleList) {
|
|
||||||
this.applicationRoleList = applicationRoleList;
|
public String getPermissionDescription() {
|
||||||
}
|
return permissionDescription;
|
||||||
|
}
|
||||||
@Override
|
|
||||||
public int hashCode() {
|
public void setPermissionDescription(String permissionDescription) {
|
||||||
int hash = 0;
|
this.permissionDescription = permissionDescription;
|
||||||
hash += (id != null ? id.hashCode() : 0);
|
}
|
||||||
return hash;
|
|
||||||
}
|
@XmlTransient
|
||||||
|
public List<ApplicationRoleEntity> getApplicationRoles() {
|
||||||
@Override
|
return applicationRoles;
|
||||||
public boolean equals(Object object) {
|
}
|
||||||
// TODO: Warning - this method won't work in the case the id fields are not set
|
|
||||||
if (!(object instanceof ApplicationPermissionEntity)) {
|
public void setApplicationRoles(List<ApplicationRoleEntity> applicationRoles) {
|
||||||
return false;
|
this.applicationRoles = applicationRoles;
|
||||||
}
|
}
|
||||||
ApplicationPermissionEntity other = (ApplicationPermissionEntity) object;
|
|
||||||
if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
|
@Override
|
||||||
return false;
|
public int hashCode() {
|
||||||
}
|
int hash = 0;
|
||||||
return true;
|
hash += (id != null ? id.hashCode() : 0);
|
||||||
}
|
return hash;
|
||||||
|
}
|
||||||
@Override
|
|
||||||
public String toString() {
|
@Override
|
||||||
return "de.muehlencord.shared.account.entity.ApplicationPermission[ id=" + id + " ]";
|
public boolean equals(Object object) {
|
||||||
}
|
// TODO: Warning - this method won't work in the case the id fields are not set
|
||||||
|
if (!(object instanceof ApplicationPermissionEntity)) {
|
||||||
}
|
return false;
|
||||||
|
}
|
||||||
|
ApplicationPermissionEntity other = (ApplicationPermissionEntity) object;
|
||||||
|
if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "de.muehlencord.shared.account.entity.ApplicationPermission[ id=" + id + " ]";
|
||||||
|
}
|
||||||
|
|
||||||
|
public ApplicationEntity getApplication() {
|
||||||
|
return application;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setApplication(ApplicationEntity application) {
|
||||||
|
this.application = application;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|||||||
@ -46,14 +46,14 @@ public class ApplicationService implements Serializable {
|
|||||||
ApplicationEntity returnValue = findByApplicationName(app.getApplicationName());
|
ApplicationEntity returnValue = findByApplicationName(app.getApplicationName());
|
||||||
if (LOGGER.isDebugEnabled()) {
|
if (LOGGER.isDebugEnabled()) {
|
||||||
LOGGER.debug("Application {} created", app.getApplicationName());
|
LOGGER.debug("Application {} created", app.getApplicationName());
|
||||||
}
|
}
|
||||||
|
|
||||||
return returnValue;
|
return returnValue;
|
||||||
} else {
|
} else {
|
||||||
ApplicationEntity returnValue = em.merge(app);
|
ApplicationEntity returnValue = em.merge(app);
|
||||||
if (LOGGER.isDebugEnabled()) {
|
if (LOGGER.isDebugEnabled()) {
|
||||||
LOGGER.debug("Applicateion {} updated", app.getApplicationName());
|
LOGGER.debug("Applicateion {} updated", app.getApplicationName());
|
||||||
}
|
}
|
||||||
return returnValue;
|
return returnValue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -70,4 +70,13 @@ public class ApplicationService implements Serializable {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Transactional
|
||||||
|
public void delete(ApplicationEntity app) {
|
||||||
|
ApplicationEntity attachedApp = em.find(ApplicationEntity.class, app.getId());
|
||||||
|
em.remove(attachedApp);
|
||||||
|
if (LOGGER.isDebugEnabled()) {
|
||||||
|
LOGGER.debug("Application {} deleted", app.getApplicationName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
package de.muehlencord.shared.account.business.application.entity;
|
package de.muehlencord.shared.account.business.application.entity;
|
||||||
|
|
||||||
|
import de.muehlencord.shared.account.business.account.entity.ApplicationPermissionEntity;
|
||||||
import de.muehlencord.shared.account.business.account.entity.ApplicationRoleEntity;
|
import de.muehlencord.shared.account.business.account.entity.ApplicationRoleEntity;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -50,6 +51,8 @@ public class ApplicationEntity implements Serializable {
|
|||||||
private String applicationName;
|
private String applicationName;
|
||||||
@OneToMany(cascade = CascadeType.ALL, mappedBy = "application")
|
@OneToMany(cascade = CascadeType.ALL, mappedBy = "application")
|
||||||
private List<ApplicationRoleEntity> applicationRoleEntityList;
|
private List<ApplicationRoleEntity> applicationRoleEntityList;
|
||||||
|
@OneToMany(cascade = CascadeType.ALL, mappedBy = "application")
|
||||||
|
private List<ApplicationPermissionEntity> applicationPermissions;
|
||||||
|
|
||||||
public ApplicationEntity() {
|
public ApplicationEntity() {
|
||||||
}
|
}
|
||||||
@ -104,4 +107,13 @@ public class ApplicationEntity implements Serializable {
|
|||||||
return "de.muehlencord.shared.account.business.application.entity.ApplicationEntity[ id=" + id + " ]";
|
return "de.muehlencord.shared.account.business.application.entity.ApplicationEntity[ id=" + id + " ]";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@XmlTransient
|
||||||
|
public List<ApplicationPermissionEntity> getApplicationPermissions() {
|
||||||
|
return applicationPermissions;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setApplicationPermissions(List<ApplicationPermissionEntity> applicationPermissions) {
|
||||||
|
this.applicationPermissions = applicationPermissions;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user