mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
ALF-9351: Reverse merged 29767 as it doesn't work, is suboptimal and platform encoding dependent
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@29807 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -406,49 +406,49 @@
|
|||||||
<!-- Permissions specific to avm website folder -->
|
<!-- Permissions specific to avm website folder -->
|
||||||
<!-- ========================================== -->
|
<!-- ========================================== -->
|
||||||
|
|
||||||
<permissionSet type="wcm:avmfolder" expose="selected">
|
<permissionSet type="wcm:avmfolder" expose="selected"> -->
|
||||||
<permissionGroup name="ContentManager" extends="true" expose="true" />
|
<permissionGroup name="ContentManager" extends="true" expose="true" />
|
||||||
<permissionGroup name="ContentPublisher" extends="true" expose="true" />
|
<permissionGroup name="ContentPublisher" extends="true" expose="true" />
|
||||||
<permissionGroup name="ContentContributor" extends="true" expose="true" />
|
<permissionGroup name="ContentContributor" extends="true" expose="true" />
|
||||||
<permissionGroup name="ContentReviewer" extends="true" expose="true" />
|
<permissionGroup name="ContentReviewer" extends="true" expose="true" />
|
||||||
</permissionSet>
|
</permissionSet>
|
||||||
|
|
||||||
<permissionSet type="wcm:avmplainfolder" expose="selected">
|
<permissionSet type="wcm:avmplainfolder" expose="selected"> -->
|
||||||
<permissionGroup name="ContentManager" extends="true" expose="true" />
|
<permissionGroup name="ContentManager" extends="true" expose="true" />
|
||||||
<permissionGroup name="ContentPublisher" extends="true" expose="true" />
|
<permissionGroup name="ContentPublisher" extends="true" expose="true" />
|
||||||
<permissionGroup name="ContentContributor" extends="true" expose="true" />
|
<permissionGroup name="ContentContributor" extends="true" expose="true" />
|
||||||
<permissionGroup name="ContentReviewer" extends="true" expose="true" />
|
<permissionGroup name="ContentReviewer" extends="true" expose="true" />
|
||||||
</permissionSet>
|
</permissionSet>
|
||||||
|
|
||||||
<permissionSet type="wcm:avmlayeredfolder" expose="selected">
|
<permissionSet type="wcm:avmlayeredfolder" expose="selected"> -->
|
||||||
<permissionGroup name="ContentManager" extends="true" expose="true" />
|
<permissionGroup name="ContentManager" extends="true" expose="true" />
|
||||||
<permissionGroup name="ContentPublisher" extends="true" expose="true" />
|
<permissionGroup name="ContentPublisher" extends="true" expose="true" />
|
||||||
<permissionGroup name="ContentContributor" extends="true" expose="true" />
|
<permissionGroup name="ContentContributor" extends="true" expose="true" />
|
||||||
<permissionGroup name="ContentReviewer" extends="true" expose="true" />
|
<permissionGroup name="ContentReviewer" extends="true" expose="true" />
|
||||||
</permissionSet>
|
</permissionSet>
|
||||||
|
|
||||||
<permissionSet type="wcm:avmcontent" expose="selected">
|
<permissionSet type="wcm:avmcontent" expose="selected"> -->
|
||||||
<permissionGroup name="ContentManager" extends="true" expose="true" />
|
<permissionGroup name="ContentManager" extends="true" expose="true" />
|
||||||
<permissionGroup name="ContentPublisher" extends="true" expose="true" />
|
<permissionGroup name="ContentPublisher" extends="true" expose="true" />
|
||||||
<permissionGroup name="ContentContributor" extends="true" expose="true" />
|
<permissionGroup name="ContentContributor" extends="true" expose="true" />
|
||||||
<permissionGroup name="ContentReviewer" extends="true" expose="true" />
|
<permissionGroup name="ContentReviewer" extends="true" expose="true" />
|
||||||
</permissionSet>
|
</permissionSet>
|
||||||
|
|
||||||
<permissionSet type="wcm:avmplaincontent" expose="selected">
|
<permissionSet type="wcm:avmplaincontent" expose="selected"> -->
|
||||||
<permissionGroup name="ContentManager" extends="true" expose="true" />
|
<permissionGroup name="ContentManager" extends="true" expose="true" />
|
||||||
<permissionGroup name="ContentPublisher" extends="true" expose="true" />
|
<permissionGroup name="ContentPublisher" extends="true" expose="true" />
|
||||||
<permissionGroup name="ContentContributor" extends="true" expose="true" />
|
<permissionGroup name="ContentContributor" extends="true" expose="true" />
|
||||||
<permissionGroup name="ContentReviewer" extends="true" expose="true" />
|
<permissionGroup name="ContentReviewer" extends="true" expose="true" />
|
||||||
</permissionSet>
|
</permissionSet>
|
||||||
|
|
||||||
<permissionSet type="wcm:avmlayeredcontent" expose="selected">
|
<permissionSet type="wcm:avmlayeredcontent" expose="selected"> -->
|
||||||
<permissionGroup name="ContentManager" extends="true" expose="true" />
|
<permissionGroup name="ContentManager" extends="true" expose="true" />
|
||||||
<permissionGroup name="ContentPublisher" extends="true" expose="true" />
|
<permissionGroup name="ContentPublisher" extends="true" expose="true" />
|
||||||
<permissionGroup name="ContentContributor" extends="true" expose="true" />
|
<permissionGroup name="ContentContributor" extends="true" expose="true" />
|
||||||
<permissionGroup name="ContentReviewer" extends="true" expose="true" />
|
<permissionGroup name="ContentReviewer" extends="true" expose="true" />
|
||||||
</permissionSet>
|
</permissionSet>
|
||||||
|
|
||||||
<permissionSet type="wca:webfolder" expose="selected">
|
<permissionSet type="wca:webfolder" expose="selected"> -->
|
||||||
<permissionGroup name="ContentManager" extends="true" expose="true" />
|
<permissionGroup name="ContentManager" extends="true" expose="true" />
|
||||||
<permissionGroup name="ContentPublisher" extends="true" expose="true" />
|
<permissionGroup name="ContentPublisher" extends="true" expose="true" />
|
||||||
<permissionGroup name="ContentContributor" extends="true" expose="true" />
|
<permissionGroup name="ContentContributor" extends="true" expose="true" />
|
||||||
|
@@ -22,9 +22,6 @@
|
|||||||
<property name="model">
|
<property name="model">
|
||||||
<value>alfresco/model/permissionDefinitions.xml</value>
|
<value>alfresco/model/permissionDefinitions.xml</value>
|
||||||
</property>
|
</property>
|
||||||
<property name="dtdSchema">
|
|
||||||
<value>alfresco/model/permissionSchema.dtd</value>
|
|
||||||
</property>
|
|
||||||
<property name="nodeService">
|
<property name="nodeService">
|
||||||
<ref bean="nodeService" />
|
<ref bean="nodeService" />
|
||||||
</property>
|
</property>
|
||||||
|
@@ -18,11 +18,8 @@
|
|||||||
*/
|
*/
|
||||||
package org.alfresco.repo.security.permissions.impl.model;
|
package org.alfresco.repo.security.permissions.impl.model;
|
||||||
|
|
||||||
import java.io.File;
|
|
||||||
import java.io.FileInputStream;
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.net.URL;
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.EnumMap;
|
import java.util.EnumMap;
|
||||||
@@ -53,15 +50,11 @@ import org.alfresco.service.namespace.DynamicNamespacePrefixResolver;
|
|||||||
import org.alfresco.service.namespace.NamespaceService;
|
import org.alfresco.service.namespace.NamespaceService;
|
||||||
import org.alfresco.service.namespace.QName;
|
import org.alfresco.service.namespace.QName;
|
||||||
import org.alfresco.util.Pair;
|
import org.alfresco.util.Pair;
|
||||||
import org.alfresco.util.TempFileProvider;
|
|
||||||
import org.dom4j.Attribute;
|
import org.dom4j.Attribute;
|
||||||
import org.dom4j.Document;
|
import org.dom4j.Document;
|
||||||
import org.dom4j.DocumentException;
|
import org.dom4j.DocumentException;
|
||||||
import org.dom4j.DocumentType;
|
|
||||||
import org.dom4j.Element;
|
import org.dom4j.Element;
|
||||||
import org.dom4j.io.SAXReader;
|
import org.dom4j.io.SAXReader;
|
||||||
import org.dom4j.tree.DefaultDocumentType;
|
|
||||||
import org.springframework.util.FileCopyUtils;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The implementation of the model DAO Reads and stores the top level model information Encapsulates access to this
|
* The implementation of the model DAO Reads and stores the top level model information Encapsulates access to this
|
||||||
@@ -100,8 +93,6 @@ public class PermissionModel implements ModelDAO
|
|||||||
// Instance variables
|
// Instance variables
|
||||||
|
|
||||||
private String model;
|
private String model;
|
||||||
private String dtdSchema;
|
|
||||||
private boolean validate = true;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* (non-Javadoc)
|
* (non-Javadoc)
|
||||||
@@ -1151,26 +1142,6 @@ public class PermissionModel implements ModelDAO
|
|||||||
this.model = model;
|
this.model = model;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Set the dtd schema that is used to validate permission model
|
|
||||||
*
|
|
||||||
* @param dtdSchema
|
|
||||||
*/
|
|
||||||
public void setDtdSchema(String dtdSchema)
|
|
||||||
{
|
|
||||||
this.dtdSchema = dtdSchema;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Indicates whether model should be validated on initialization against specified dtd
|
|
||||||
*
|
|
||||||
* @param validate
|
|
||||||
*/
|
|
||||||
public void setValidate(boolean validate)
|
|
||||||
{
|
|
||||||
this.validate = validate;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the dictionary service
|
* Set the dictionary service
|
||||||
*
|
*
|
||||||
@@ -1290,7 +1261,6 @@ public class PermissionModel implements ModelDAO
|
|||||||
private Document createDocument(String model)
|
private Document createDocument(String model)
|
||||||
{
|
{
|
||||||
InputStream is = this.getClass().getClassLoader().getResourceAsStream(model);
|
InputStream is = this.getClass().getClassLoader().getResourceAsStream(model);
|
||||||
URL dtdSchemaUrl = this.getClass().getClassLoader().getResource(dtdSchema);
|
|
||||||
if (is == null)
|
if (is == null)
|
||||||
{
|
{
|
||||||
throw new PermissionModelException("File not found: " + model);
|
throw new PermissionModelException("File not found: " + model);
|
||||||
@@ -1298,63 +1268,21 @@ public class PermissionModel implements ModelDAO
|
|||||||
SAXReader reader = new SAXReader();
|
SAXReader reader = new SAXReader();
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
if (validate)
|
|
||||||
{
|
|
||||||
if (dtdSchemaUrl != null)
|
|
||||||
{
|
|
||||||
is = processModelDocType(is, dtdSchemaUrl.toString());
|
|
||||||
reader.setValidation(true);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
throw new PermissionModelException("Couldn't obtain DTD schema to validate permission model.");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Document document = reader.read(is);
|
Document document = reader.read(is);
|
||||||
is.close();
|
is.close();
|
||||||
return document;
|
return document;
|
||||||
}
|
}
|
||||||
catch (DocumentException e)
|
catch (DocumentException e)
|
||||||
{
|
{
|
||||||
throw new PermissionModelException("Failed to create permission model document: " + model, e);
|
throw new PermissionModelException("Failed to create permission model document ", e);
|
||||||
}
|
}
|
||||||
catch (IOException e)
|
catch (IOException e)
|
||||||
{
|
{
|
||||||
throw new PermissionModelException("Failed to close permission model document: " + model, e);
|
throw new PermissionModelException("Failed to close permission model document ", e);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* Replace or add correct DOCTYPE to the xml to allow validation against dtd
|
|
||||||
*/
|
|
||||||
private InputStream processModelDocType(InputStream is, String dtdSchemaUrl) throws DocumentException, IOException
|
|
||||||
{
|
|
||||||
SAXReader reader = new SAXReader();
|
|
||||||
// read document without validation
|
|
||||||
Document doc = reader.read(is);
|
|
||||||
DocumentType docType = doc.getDocType();
|
|
||||||
if (docType != null)
|
|
||||||
{
|
|
||||||
// replace DOCTYPE setting the full path to the xsd
|
|
||||||
docType.setSystemID(dtdSchemaUrl);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// add the DOCTYPE
|
|
||||||
docType = new DefaultDocumentType(doc.getRootElement().getName(), dtdSchemaUrl);
|
|
||||||
doc.setDocType(docType);
|
|
||||||
}
|
|
||||||
|
|
||||||
File tempFile = TempFileProvider.createTempFile("permissionModel-", ".tmp");
|
|
||||||
|
|
||||||
// copy the modified permission model to the temp file
|
|
||||||
FileCopyUtils.copy(doc.asXML().getBytes(), tempFile);
|
|
||||||
|
|
||||||
return new FileInputStream(tempFile);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the default access status
|
* Set the default access status
|
||||||
*
|
*
|
||||||
|
Reference in New Issue
Block a user