[Minor] better writing of privilege XML on persist

This commit is contained in:
Robert von Burg 2015-10-08 22:08:39 +02:00
parent 471cc1f37f
commit 6a62864331
1 changed files with 32 additions and 22 deletions

View File

@ -26,6 +26,7 @@ import ch.eitchnet.privilege.helper.XmlConstants;
import ch.eitchnet.privilege.model.IPrivilege; import ch.eitchnet.privilege.model.IPrivilege;
import ch.eitchnet.privilege.model.internal.Role; import ch.eitchnet.privilege.model.internal.Role;
import ch.eitchnet.privilege.model.internal.User; import ch.eitchnet.privilege.model.internal.User;
import ch.eitchnet.utils.helper.StringHelper;
import ch.eitchnet.utils.helper.XmlHelper; import ch.eitchnet.utils.helper.XmlHelper;
/** /**
@ -57,7 +58,7 @@ public class PrivilegeModelDomWriter {
Element usersElement = doc.createElement(XmlConstants.XML_USERS); Element usersElement = doc.createElement(XmlConstants.XML_USERS);
rootElement.appendChild(usersElement); rootElement.appendChild(usersElement);
for (User user : this.users) { this.users.stream().sorted((u1, u2) -> u1.getUserId().compareTo(u2.getUserId())).forEach(user -> {
// create the user element // create the user element
Element userElement = doc.createElement(XmlConstants.XML_USER); Element userElement = doc.createElement(XmlConstants.XML_USER);
@ -65,17 +66,22 @@ public class PrivilegeModelDomWriter {
userElement.setAttribute(XmlConstants.XML_ATTR_USER_ID, user.getUserId()); userElement.setAttribute(XmlConstants.XML_ATTR_USER_ID, user.getUserId());
userElement.setAttribute(XmlConstants.XML_ATTR_USERNAME, user.getUsername()); userElement.setAttribute(XmlConstants.XML_ATTR_USERNAME, user.getUsername());
userElement.setAttribute(XmlConstants.XML_ATTR_PASSWORD, user.getPassword()); if (StringHelper.isNotEmpty(user.getPassword()))
userElement.setAttribute(XmlConstants.XML_ATTR_PASSWORD, user.getPassword());
// add first name element // add first name element
Element firstnameElement = doc.createElement(XmlConstants.XML_FIRSTNAME); if (StringHelper.isNotEmpty(user.getFirstname())) {
firstnameElement.setTextContent(user.getFirstname()); Element firstnameElement = doc.createElement(XmlConstants.XML_FIRSTNAME);
userElement.appendChild(firstnameElement); firstnameElement.setTextContent(user.getFirstname());
userElement.appendChild(firstnameElement);
}
// add lastname element // add last name element
Element lastnameElement = doc.createElement(XmlConstants.XML_LASTNAME); if (StringHelper.isNotEmpty(user.getLastname())) {
lastnameElement.setTextContent(user.getLastname()); Element lastnameElement = doc.createElement(XmlConstants.XML_LASTNAME);
userElement.appendChild(lastnameElement); lastnameElement.setTextContent(user.getLastname());
userElement.appendChild(lastnameElement);
}
// add state element // add state element
Element stateElement = doc.createElement(XmlConstants.XML_STATE); Element stateElement = doc.createElement(XmlConstants.XML_STATE);
@ -97,20 +103,22 @@ public class PrivilegeModelDomWriter {
} }
// add the parameters // add the parameters
Element parametersElement = doc.createElement(XmlConstants.XML_PARAMETERS); if (!user.getProperties().isEmpty()) {
userElement.appendChild(parametersElement); Element parametersElement = doc.createElement(XmlConstants.XML_PARAMETERS);
for (Entry<String, String> entry : user.getProperties().entrySet()) { userElement.appendChild(parametersElement);
Element paramElement = doc.createElement(XmlConstants.XML_PARAMETER); for (Entry<String, String> entry : user.getProperties().entrySet()) {
paramElement.setAttribute(XmlConstants.XML_ATTR_NAME, entry.getKey()); Element paramElement = doc.createElement(XmlConstants.XML_PARAMETER);
paramElement.setAttribute(XmlConstants.XML_ATTR_VALUE, entry.getValue()); paramElement.setAttribute(XmlConstants.XML_ATTR_NAME, entry.getKey());
parametersElement.appendChild(paramElement); paramElement.setAttribute(XmlConstants.XML_ATTR_VALUE, entry.getValue());
parametersElement.appendChild(paramElement);
}
} }
} });
Element rolesElement = doc.createElement(XmlConstants.XML_ROLES); Element rolesElement = doc.createElement(XmlConstants.XML_ROLES);
rootElement.appendChild(rolesElement); rootElement.appendChild(rolesElement);
for (Role role : this.roles) { this.roles.stream().sorted((r1, r2) -> r1.getName().compareTo(r2.getName())).forEach(role -> {
// create the role element // create the role element
Element roleElement = doc.createElement(XmlConstants.XML_ROLE); Element roleElement = doc.createElement(XmlConstants.XML_ROLE);
@ -129,9 +137,11 @@ public class PrivilegeModelDomWriter {
privilegeElement.setAttribute(XmlConstants.XML_ATTR_POLICY, privilege.getPolicy()); privilegeElement.setAttribute(XmlConstants.XML_ATTR_POLICY, privilege.getPolicy());
// add the all allowed element // add the all allowed element
Element allAllowedElement = doc.createElement(XmlConstants.XML_ALL_ALLOWED); if (privilege.isAllAllowed()) {
allAllowedElement.setTextContent(Boolean.toString(privilege.isAllAllowed())); Element allAllowedElement = doc.createElement(XmlConstants.XML_ALL_ALLOWED);
privilegeElement.appendChild(allAllowedElement); allAllowedElement.setTextContent(Boolean.toString(privilege.isAllAllowed()));
privilegeElement.appendChild(allAllowedElement);
}
// add all the deny values // add all the deny values
for (String denyValue : privilege.getDenyList()) { for (String denyValue : privilege.getDenyList()) {
@ -147,7 +157,7 @@ public class PrivilegeModelDomWriter {
privilegeElement.appendChild(allowValueElement); privilegeElement.appendChild(allowValueElement);
} }
} }
} });
// write the container file to disk // write the container file to disk
XmlHelper.writeDocument(doc, this.modelFile); XmlHelper.writeDocument(doc, this.modelFile);