Improve RAP security
[lgpl/argeo-commons.git] / security / plugins / org.argeo.security.ui.admin / src / main / java / org / argeo / security / ui / admin / editors / ArgeoUserEditorInput.java
index 8812ee36abf126928faac562b7cb8f9e8d1c3586..51aeeef80f314f1937b0d0717b46012ad43f6a5d 100644 (file)
@@ -1,5 +1,12 @@
 package org.argeo.security.ui.admin.editors;
 
+import javax.jcr.Node;
+import javax.jcr.PathNotFoundException;
+import javax.jcr.RepositoryException;
+import javax.jcr.ValueFormatException;
+
+import org.argeo.ArgeoException;
+import org.argeo.jcr.ArgeoNames;
 import org.eclipse.jface.resource.ImageDescriptor;
 import org.eclipse.ui.IEditorInput;
 import org.eclipse.ui.IPersistableElement;
@@ -7,9 +14,23 @@ import org.eclipse.ui.IPersistableElement;
 /** Editor input for an Argeo user. */
 public class ArgeoUserEditorInput implements IEditorInput {
        private final String username;
+       private final Node userHome;
 
+       @Deprecated
        public ArgeoUserEditorInput(String username) {
                this.username = username;
+               this.userHome = null;
+       }
+
+       public ArgeoUserEditorInput(Node userHome) {
+               try {
+                       this.username = userHome.getProperty(ArgeoNames.ARGEO_USER_ID)
+                                       .getString();
+                       this.userHome = userHome;
+               } catch (RepositoryException e) {
+                       throw new ArgeoException("Cannot initialize editor input for "
+                                       + userHome, e);
+               }
        }
 
        public Object getAdapter(@SuppressWarnings("rawtypes") Class adapter) {
@@ -48,4 +69,8 @@ public class ArgeoUserEditorInput implements IEditorInput {
                return username;
        }
 
+       public Node getUserHome() {
+               return userHome;
+       }
+
 }