Mercurial > dive4elements > framework
diff artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java @ 160:dc687827439f
Enabled the artifact database to store and load roles of users.
artifacts/trunk@1385 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Thu, 03 Mar 2011 12:17:27 +0000 |
parents | db0d20440b92 |
children | 4ac91485b4e0 |
line wrap: on
line diff
--- a/artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java Thu Mar 03 12:13:24 2011 +0000 +++ b/artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java Thu Mar 03 12:17:27 2011 +0000 @@ -37,6 +37,8 @@ import java.util.HashSet; import java.util.List; +import javax.xml.xpath.XPathConstants; + import org.apache.commons.codec.binary.Base64; import org.apache.commons.codec.binary.Hex; @@ -44,6 +46,7 @@ import org.w3c.dom.Document; import org.w3c.dom.Element; +import org.w3c.dom.Node; /** * The core implementation of artifact database. This layer exposes @@ -1005,8 +1008,14 @@ ec.addAttr(ue, "uuid", user.identifier()); ec.addAttr(ue, "name", user.getName()); - // TODO append the role of the user. + Document role = user.getRole(); + + if (role != null) { + ue.appendChild(result.importNode(role.getFirstChild(), true)); + } + root.appendChild(ue); + } return result; @@ -1029,9 +1038,19 @@ throw new ArtifactDatabaseException(NO_USERNAME); } - // TODO Extract the role is contained as node in the xml document. + Node tmp = (Node) XMLUtils.xpath( + data, + XPATH_USERROLE, + XPathConstants.NODE, + ArtifactNamespaceContext.INSTANCE); + Document role = XMLUtils.newDocument(); + if (tmp != null) { + Node clone = role.importNode(tmp, true); + role.appendChild(clone); + } + User newUser = null; try {