
org.structr.files.cmis.config.StructrRepositoryInfo Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of structr-ui Show documentation
Show all versions of structr-ui Show documentation
Structr is an open source framework based on the popular Neo4j graph database.
The newest version!
/**
* Copyright (C) 2010-2016 Structr GmbH
*
* This file is part of Structr .
*
* Structr is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* Structr is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with Structr. If not, see .
*/
package org.structr.files.cmis.config;
import org.structr.cmis.common.CMISExtensionsData;
import java.util.Collections;
import java.util.LinkedHashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.logging.Logger;
import org.apache.chemistry.opencmis.commons.data.AclCapabilities;
import org.apache.chemistry.opencmis.commons.data.ExtensionFeature;
import org.apache.chemistry.opencmis.commons.data.PermissionMapping;
import org.apache.chemistry.opencmis.commons.data.RepositoryCapabilities;
import org.apache.chemistry.opencmis.commons.data.RepositoryInfo;
import org.apache.chemistry.opencmis.commons.definitions.PermissionDefinition;
import org.apache.chemistry.opencmis.commons.enums.AclPropagation;
import org.apache.chemistry.opencmis.commons.enums.BaseTypeId;
import org.apache.chemistry.opencmis.commons.enums.CmisVersion;
import org.apache.chemistry.opencmis.commons.enums.SupportedPermissions;
import org.structr.cmis.CMISInfo;
import org.structr.common.Permission;
import org.structr.core.entity.Principal;
import org.structr.files.cmis.repository.StructrAccessControlPermissionMapping;
import org.structr.files.cmis.repository.StructrDeletePermissionMapping;
import org.structr.files.cmis.repository.StructrPermissionDefinition;
import org.structr.files.cmis.repository.StructrReadPermissionMapping;
import org.structr.files.cmis.repository.StructrWritePermissionMapping;
/**
*
*
*/
public class StructrRepositoryInfo extends CMISExtensionsData implements RepositoryInfo, AclCapabilities {
private static final Logger logger = Logger.getLogger(StructrRepositoryInfo.class.getName());
@Override
public String getId() {
return "default";
}
@Override
public String getName() {
return "Structr CMIS Repository";
}
@Override
public String getDescription() {
return getName();
}
@Override
public String getVendorName() {
return "Structr";
}
@Override
public String getProductName() {
return "Structr CMIS";
}
@Override
public String getProductVersion() {
return "1.1";
}
@Override
public String getRootFolderId() {
return CMISInfo.ROOT_FOLDER_ID;
}
@Override
public RepositoryCapabilities getCapabilities() {
return new StructrRepositoryCapabilities();
}
@Override
public AclCapabilities getAclCapabilities() {
return this;
}
@Override
public String getLatestChangeLogToken() {
return null;
}
@Override
public String getCmisVersionSupported() {
return "1.1";
}
@Override
public CmisVersion getCmisVersion() {
return CmisVersion.CMIS_1_1;
}
@Override
public String getThinClientUri() {
return "http://localhost:8082/structr/";
}
@Override
public Boolean getChangesIncomplete() {
return false;
}
@Override
public List getChangesOnType() {
return Collections.emptyList();
}
@Override
public String getPrincipalIdAnonymous() {
return Principal.ANONYMOUS;
}
@Override
public String getPrincipalIdAnyone() {
return Principal.ANYONE;
}
@Override
public List getExtensionFeatures() {
return Collections.emptyList();
}
// ----- interface AclCapabilities -----
@Override
public SupportedPermissions getSupportedPermissions() {
return SupportedPermissions.REPOSITORY;
}
@Override
public AclPropagation getAclPropagation() {
return AclPropagation.OBJECTONLY;
}
@Override
public List getPermissions() {
final List permissions = new LinkedList<>();
permissions.add(new StructrPermissionDefinition(Permission.read, "Read access"));
permissions.add(new StructrPermissionDefinition(Permission.write, "Write access"));
permissions.add(new StructrPermissionDefinition(Permission.delete, "Write access"));
permissions.add(new StructrPermissionDefinition(Permission.accessControl, "Access control"));
return permissions;
}
@Override
public Map getPermissionMapping() {
final Map mapping = new LinkedHashMap<>();
mapping.put(Permission.read.name(), new StructrReadPermissionMapping());
mapping.put(Permission.write.name(), new StructrWritePermissionMapping());
mapping.put(Permission.delete.name(), new StructrDeletePermissionMapping());
mapping.put(Permission.accessControl.name(), new StructrAccessControlPermissionMapping());
return mapping;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy