+ CmsSession cmsSession = CurrentUser.getCmsSession();
+ if (cmsSession.isAnonymous()) {
+ // TODO deal with anonymous
+ return null;
+ }
+ if (fileSystems.containsKey(cmsSession))
+ throw new FileSystemAlreadyExistsException("CMS file system already exists for user " + cmsSession);
+
+ String host = uri.getHost();
+ if (host != null && !host.trim().equals("")) {
+// URI repoUri = new URI("http", uri.getUserInfo(), uri.getHost(), uri.getPort(), "/jcr/node", null, null);
+ // FIXME deal with remote
+ CmsFileSystem fileSystem = null;
+ fileSystems.put(cmsSession, fileSystem);
+ return fileSystem;
+ } else {
+ // FIXME send exception if it exists already
+ CmsFileSystem fileSystem = new CmsFileSystem(this, contentRepository, cmsSession);
+ fileSystems.put(cmsSession, fileSystem);
+ cmsSession.addOnCloseCallback((s) -> {
+ fileSystems.remove(s);
+ });
+ return fileSystem;
+ }