1 package org
.argeo
.security
.ui
.admin
.commands
;
6 import javax
.jcr
.NodeIterator
;
7 import javax
.jcr
.RepositoryException
;
8 import javax
.jcr
.Session
;
9 import javax
.jcr
.query
.Query
;
11 import org
.argeo
.ArgeoException
;
12 import org
.argeo
.jcr
.ArgeoNames
;
13 import org
.argeo
.jcr
.ArgeoTypes
;
14 import org
.argeo
.jcr
.JcrUtils
;
15 import org
.argeo
.security
.UserAdminService
;
16 import org
.argeo
.security
.ui
.admin
.views
.UsersView
;
17 import org
.eclipse
.core
.commands
.AbstractHandler
;
18 import org
.eclipse
.core
.commands
.ExecutionEvent
;
19 import org
.eclipse
.core
.commands
.ExecutionException
;
20 import org
.eclipse
.ui
.handlers
.HandlerUtil
;
23 * Refreshes the main EBI list, removing nodes which are not referenced by user
26 public class RefreshUsersList
extends AbstractHandler
{
27 private UserAdminService userAdminService
;
28 private Session session
;
30 public Object
execute(ExecutionEvent event
) throws ExecutionException
{
31 Set
<String
> users
= userAdminService
.listUsers();
37 "select * from [" + ArgeoTypes
.ARGEO_USER_HOME
38 + "]", Query
.JCR_SQL2
);
39 NodeIterator nit
= query
.execute().getNodes();
40 while (nit
.hasNext()) {
41 Node node
= nit
.nextNode();
42 String username
= node
.getProperty(ArgeoNames
.ARGEO_USER_ID
)
44 if (!users
.contains(username
))
48 } catch (RepositoryException e
) {
49 JcrUtils
.discardQuietly(session
);
50 throw new ArgeoException("Cannot list users", e
);
53 userAdminService
.synchronize();
54 UsersView view
= (UsersView
) HandlerUtil
55 .getActiveWorkbenchWindow(event
).getActivePage()
56 .findView(UsersView
.ID
);
61 public void setUserAdminService(UserAdminService userAdminService
) {
62 this.userAdminService
= userAdminService
;
65 public void setSession(Session session
) {
66 this.session
= session
;