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=2daae6321d7576acc96281cb3041acafc9d86cd3;hpb=61320e5902070e49d32379aab06faaa1544835ab;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 2daae6321..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,10 +16,12 @@ 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.JcrUtils; import org.argeo.jcr.UserJcrUtils; import org.argeo.security.UserAdminService; import org.argeo.security.jcr.JcrUserDetails; @@ -35,13 +37,16 @@ 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"; + + /* DEPENDENCY INJECTION */ + private Session session; + private UserAdminService userAdminService; - private JcrUserDetails userDetails; // private Node userHome; private Node userProfile; - private UserAdminService userAdminService; - private Session session; + private JcrUserDetails userDetails; public void init(IEditorSite site, IEditorInput input) throws PartInitException { @@ -108,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 @@ -129,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); + } } }