X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=security%2Fplugins%2Forg.argeo.security.ui.admin%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fsecurity%2Fui%2Fadmin%2Feditors%2FArgeoUserEditor.java;h=ebc08319e797e3475dbfaef09b348d3b0336d218;hb=516bd52dc17e93fff2a1b858f3eb34ee99f76992;hp=fab34323af2bfd93f5ebd805b14cca6230df46c8;hpb=2c4852dcd20d4cde88776c527ae935f242ae1e77;p=lgpl%2Fargeo-commons.git diff --git a/security/plugins/org.argeo.security.ui.admin/src/main/java/org/argeo/security/ui/admin/editors/ArgeoUserEditor.java b/security/plugins/org.argeo.security.ui.admin/src/main/java/org/argeo/security/ui/admin/editors/ArgeoUserEditor.java index fab34323a..ebc08319e 100644 --- a/security/plugins/org.argeo.security.ui.admin/src/main/java/org/argeo/security/ui/admin/editors/ArgeoUserEditor.java +++ b/security/plugins/org.argeo.security.ui.admin/src/main/java/org/argeo/security/ui/admin/editors/ArgeoUserEditor.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2007-2012 Mathieu Baudier + * Copyright (C) 2007-2012 Argeo GmbH * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,12 +16,13 @@ package org.argeo.security.ui.admin.editors; import javax.jcr.Node; +import javax.jcr.Repository; import javax.jcr.RepositoryException; import javax.jcr.Session; import org.argeo.ArgeoException; -import org.argeo.jcr.ArgeoJcrUtils; -import org.argeo.jcr.ArgeoNames; +import org.argeo.jcr.JcrUtils; +import org.argeo.jcr.UserJcrUtils; import org.argeo.security.UserAdminService; import org.argeo.security.jcr.JcrUserDetails; import org.argeo.security.ui.admin.SecurityAdminPlugin; @@ -36,19 +37,23 @@ import org.springframework.security.GrantedAuthority; /** Editor for an Argeo user. */ public class ArgeoUserEditor extends FormEditor { - public final static String ID = "org.argeo.security.ui.admin.adminArgeoUserEditor"; + public final static String ID = SecurityAdminPlugin.PLUGIN_ID + + ".adminArgeoUserEditor"; - private JcrUserDetails userDetails; - private Node userHome; - private UserAdminService userAdminService; + /* DEPENDENCY INJECTION */ private Session session; + private UserAdminService userAdminService; + + // private Node userHome; + private Node userProfile; + private JcrUserDetails userDetails; public void init(IEditorSite site, IEditorInput input) throws PartInitException { super.init(site, input); String username = ((ArgeoUserEditorInput) getEditorInput()) .getUsername(); - userHome = ArgeoJcrUtils.getUserHome(session, username); + userProfile = UserJcrUtils.getUserProfile(session, username); if (userAdminService.userExists(username)) { userDetails = (JcrUserDetails) userAdminService @@ -69,8 +74,7 @@ public class ArgeoUserEditor extends FormEditor { protected void addPages() { try { - addPage(new DefaultUserMainPage(this, - userHome.getNode(ArgeoNames.ARGEO_PROFILE))); + addPage(new DefaultUserMainPage(this, userProfile)); addPage(new UserRolesPage(this, userDetails, userAdminService)); } catch (Exception e) { throw new ArgeoException("Cannot add pages", e); @@ -109,11 +113,14 @@ public class ArgeoUserEditor extends FormEditor { userRolesPage.setUserDetails(userDetails); + // FIXME rather use a refresh command. Fails when called by another + // view. // refresh users view IWorkbench iw = SecurityAdminPlugin.getDefault().getWorkbench(); UsersView usersView = (UsersView) iw.getActiveWorkbenchWindow() .getActivePage().findView(UsersView.ID); - usersView.refresh(); + if (usersView != null) + usersView.refresh(); } @Override @@ -130,11 +137,22 @@ public class ArgeoUserEditor extends FormEditor { userRolesPage.refresh(); } + @Override + public void dispose() { + JcrUtils.logoutQuietly(session); + super.dispose(); + } + + /* DEPENDENCY INJECTION */ public void setUserAdminService(UserAdminService userAdminService) { this.userAdminService = userAdminService; } - - public void setSession(Session session) { - this.session = session; + + public void setRepository(Repository repository) { + try { + session = repository.login(); + } catch (RepositoryException re) { + throw new ArgeoException("Unable to initialise local session", re); + } } }