]>
git.argeo.org Git - lgpl/argeo-commons.git/blob - InitUserHome.java
6bc5dff9f3db95507c1644d93da05b0693aa1598
1 package org
.argeo
.eclipse
.ui
.jcr
.commands
;
4 import javax
.jcr
.Session
;
6 import org
.argeo
.eclipse
.ui
.dialogs
.Error
;
7 import org
.argeo
.jcr
.ArgeoNames
;
8 import org
.argeo
.jcr
.ArgeoTypes
;
9 import org
.eclipse
.core
.commands
.AbstractHandler
;
10 import org
.eclipse
.core
.commands
.ExecutionEvent
;
11 import org
.eclipse
.core
.commands
.ExecutionException
;
13 /** Init the user home directory within the node */
14 public class InitUserHome
extends AbstractHandler
{
15 private Session session
;
17 private String defaultHome
= "home";
19 public Object
execute(ExecutionEvent event
) throws ExecutionException
{
20 String userID
= "<not yet logged in>";
22 userID
= session
.getUserID();
23 Node rootNode
= session
.getRootNode();
25 if (!rootNode
.hasNode(defaultHome
)) {
26 homeNode
= rootNode
.addNode(defaultHome
, ArgeoTypes
.ARGEO_HOME
);
28 homeNode
= rootNode
.getNode(defaultHome
);
31 if (!homeNode
.hasNode(userID
)) {
32 Node userHome
= homeNode
.addNode(userID
);
33 userHome
.addMixin(ArgeoTypes
.ARGEO_USER_HOME
);
34 userHome
.setProperty(ArgeoNames
.ARGEO_USER_ID
, userID
);
37 } catch (Exception e
) {
38 Error
.show("Cannot initialize home for user '" + userID
+ "'", e
);
43 public void setSession(Session session
) {
44 this.session
= session
;