+ Set<String> users = userAdminService.listUsers();
+ Session session = null;
+ try {
+ session = repository.login();
+ Query query = session
+ .getWorkspace()
+ .getQueryManager()
+ .createQuery(
+ "select * from [" + ArgeoTypes.ARGEO_USER_HOME
+ + "]", Query.JCR_SQL2);
+ NodeIterator nit = query.execute().getNodes();
+ while (nit.hasNext()) {
+ Node node = nit.nextNode();
+ String username = node.getProperty(ArgeoNames.ARGEO_USER_ID)
+ .getString();
+ if (!users.contains(username))
+ node.remove();
+ }
+ session.save();
+ } catch (RepositoryException e) {
+ JcrUtils.discardQuietly(session);
+ throw new ArgeoException("Cannot list users", e);
+ } finally {
+ JcrUtils.logoutQuietly(session);
+ }
+ userAdminService.synchronize();
+
+ // FIXME try to refresh views that extend the UsersView and have another
+ // ID
+ IWorkbenchPart part = HandlerUtil.getActiveWorkbenchWindow(event)
+ .getActivePage().getActivePart();
+ if (part instanceof UsersView)
+ ((UsersView) part).refresh();
+
+ // Try to refresh UsersView if opened