Merged V2.2 to HEAD

7575: Permission changes for AVM.
   7577: Incorporated most of the feedback provided by Kevin C earlier today
   7578: Removed directory not removed by patch
   7579: EmailServer bug fixes
         AR-1902:  Double posts when emailing to a document
         AR-1904:  Attachments via email should be allowed on forum posts
         AR-1903:  (Partial Fix) Text attachments should be treated the same way as other attachments 
   7583: Fixed WCM-961 & WCM-962: Added confirm dialog for 'Delete All Deployment Reports' and 'Release Server' actions


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@8434 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Derek Hulley
2008-03-06 14:43:55 +00:00
parent a9fac10b45
commit a49bfd311d
89 changed files with 21301 additions and 11139 deletions

View File

@@ -48,6 +48,7 @@
<ref bean="patch.schemaUpdateScript-V1.4-1" />
<ref bean="patch.schemaUpdateScript-V1.4-2" />
<ref bean="patch.db-V2.1-NotNullColumns" />
<ref bean="patch.db-V2.2-ACL" />
</list>
</property>
<property name="postUpdateScriptPatches">
@@ -73,7 +74,7 @@
</list>
</property>
<property name="avmLockingAwareService">
<ref bean="avmLockingAwareService"/>
<ref bean="avmLockingAwareService"/>
</property>
<property name="avmRepository">
<ref bean="avmRepository"/>
@@ -266,27 +267,27 @@
<import resource="classpath*:alfresco/extension/mt/mt-admin-context.xml"/>
<bean id="workflowBootstrap" parent="workflowDeployer">
<property name="workflowDefinitions">
<list>
<props>
<prop key="engineId">jbpm</prop>
<prop key="location">alfresco/workflow/review_processdefinition.xml</prop>
<prop key="mimetype">text/xml</prop>
<prop key="redeploy">false</prop>
</props>
<props>
<prop key="engineId">jbpm</prop>
<prop key="location">alfresco/workflow/adhoc_processdefinition.xml</prop>
<prop key="mimetype">text/xml</prop>
<prop key="redeploy">false</prop>
</props>
<props>
<property name="workflowDefinitions">
<list>
<props>
<prop key="engineId">jbpm</prop>
<prop key="location">alfresco/workflow/review_processdefinition.xml</prop>
<prop key="mimetype">text/xml</prop>
<prop key="redeploy">false</prop>
</props>
<props>
<prop key="engineId">jbpm</prop>
<prop key="location">alfresco/workflow/adhoc_processdefinition.xml</prop>
<prop key="mimetype">text/xml</prop>
<prop key="redeploy">false</prop>
</props>
<props>
<!-- WCM workflow definition -->
<prop key="engineId">jbpm</prop>
<prop key="location">alfresco/workflow/submit_processdefinition.xml</prop>
<prop key="mimetype">text/xml</prop>
<prop key="redeploy">false</prop>
</props>
<prop key="engineId">jbpm</prop>
<prop key="location">alfresco/workflow/submit_processdefinition.xml</prop>
<prop key="mimetype">text/xml</prop>
<prop key="redeploy">false</prop>
</props>
<props>
<!-- WCM workflow definition -->
<prop key="engineId">jbpm</prop>
@@ -294,22 +295,22 @@
<prop key="mimetype">text/xml</prop>
<prop key="redeploy">false</prop>
</props>
</list>
</property>
<property name="models">
<list>
</list>
</property>
<property name="models">
<list>
<value>alfresco/workflow/workflowModel.xml</value>
<value>alfresco/workflow/wcmWorkflowModel.xml</value>
</list>
</property>
<property name="labels">
<list>
<value>alfresco/workflow/workflow-messages</value>
</list>
</property>
<property name="labels">
<list>
<value>alfresco/workflow/workflow-messages</value>
<value>alfresco/workflow/wcm-workflow-messages</value>
</list>
</property>
<property name="repositoryWorkflowDefsLocations" ref="customWorkflowDefsRepositoryLocation"/>
</bean>
</list>
</property>
<property name="repositoryWorkflowDefsLocations" ref="customWorkflowDefsRepositoryLocation"/>
</bean>
<!-- Bootstrap any extensions -->
@@ -319,7 +320,7 @@
<bean id="descriptorComponent" class="org.alfresco.repo.descriptor.DescriptorServiceImpl">
<property name="descriptor">
<value>classpath:alfresco/version.properties</value>
<value>classpath:alfresco/version.properties</value>
</property>
<property name="systemBootstrap">
<ref bean="systemBootstrap"/>
@@ -446,7 +447,7 @@
</property>
</bean>
<!-- Startup Message -->
<!-- Startup Message -->
<bean id="openOfficeConnectionTester" class="org.alfresco.util.OpenOfficeConnectionTester" >
<property name="connection">
@@ -459,12 +460,12 @@
<bean id="startupLog" class="org.alfresco.repo.descriptor.DescriptorStartupLog">
<property name="descriptorService">
<ref local="descriptorComponent"/>
<ref local="descriptorComponent"/>
</property>
<property name="tenantService">
<ref bean="tenantService"/>
<ref bean="tenantService"/>
</property>
</bean>
</bean>
<!-- Workflow Scheduler -->
<bean id="workflowScheduler" class="org.alfresco.repo.workflow.jbpm.JBPMScheduler">

View File

@@ -0,0 +1,154 @@
--
-- Title: Update for permissions schema changes
-- Database: MySQL InnoDB
-- Since: V2.2 Schema 85
-- Author: Andy Hind
--
-- Please contact support@alfresco.com if you need assistance with the upgrade.
--
CREATE TABLE alf_acl_change_set (
id BIGINT NOT NULL AUTO_INCREMENT,
version BIGINT NOT NULL,
primary key (id)
) type=InnoDB;
-- Add to ACL
ALTER TABLE alf_access_control_list
ADD COLUMN type INT NOT NULL DEFAULT 0,
ADD COLUMN latest BOOLEAN NOT NULL DEFAULT TRUE,
ADD COLUMN acl_id VARCHAR(36) NOT NULL DEFAULT 'UNSET',
ADD COLUMN acl_version BIGINT NOT NULL DEFAULT 1,
ADD COLUMN inherited_acl BIGINT,
ADD COLUMN is_versioned BOOLEAN NOT NULL DEFAULT FALSE,
ADD COLUMN requires_version BOOLEAN NOT NULL DEFAULT FALSE,
ADD COLUMN acl_change_set BIGINT,
ADD COLUMN inherits_from BIGINT,
ADD INDEX FK_ACL_CH_SET (acl_change_set),
ADD CONSTRAINT FOREIGN KEY FK_ACL_CH_SET (acl_change_set) REFERENCES alf_acl_change_set (id);
UPDATE alf_access_control_list acl
set acl_id = (acl.id);
ALTER TABLE alf_access_control_list
ADD UNIQUE (acl_id, latest, acl_version);
-- Create ACL member list
CREATE TABLE alf_acl_member (
id BIGINT NOT NULL AUTO_INCREMENT,
version BIGINT NOT NULL,
acl_id BIGINT NOT NULL,
ace_id BIGINT NOT NULL,
pos INT NOT NULL,
primary key (id),
unique(acl_id, ace_id, pos),
index FK_ACL_ID (acl_id),
CONSTRAINT FOREIGN KEY FK_ACL_ID (acl_id) REFERENCES alf_access_control_list (id),
index FK_ACE_ID (ace_id),
CONSTRAINT FOREIGN KEY FK_ACE_ID (ace_id) REFERENCES alf_access_control_entry (id)
) type=InnoDB;
ALTER TABLE alf_access_control_entry DROP INDEX acl_id;
-- Extend ACE
ALTER TABLE alf_access_control_entry
ADD COLUMN auth_id BIGINT NOT NULL DEFAULT -1,
ADD COLUMN applies INT NOT NULL DEFAULT 0,
ADD COLUMN context_id BIGINT;
-- remove unused
DROP TABLE alf_auth_ext_keys;
-- remove authority constraint
ALTER TABLE alf_access_control_entry
DROP FOREIGN KEY FKFFF41F99B25A50BF;
-- restructure authority
ALTER TABLE alf_authority
DROP PRIMARY KEY,
ADD COLUMN id BIGINT NOT NULL AUTO_INCREMENT,
CHANGE recipient authority VARCHAR(100),
ADD primary key (id),
ADD CONSTRAINT UNIQUE INDEX U_AUTH (authority);
-- migrate data - fix up FK refs to authority
UPDATE alf_access_control_entry ace
set auth_id = (select id from alf_authority a where a.authority = ace.authority_id);
-- migrate data - build equivalent ACL entries
INSERT INTO alf_acl_member (version, acl_id, ace_id, pos)
select 1, acl_id, id, 0 from alf_access_control_entry;
-- Create ACE context
CREATE TABLE alf_ace_context (
id BIGINT NOT NULL AUTO_INCREMENT,
version BIGINT NOT NULL,
class_context VARCHAR(1024),
property_context VARCHAR(1024),
kvp_context VARCHAR(1024),
primary key (id)
) type=InnoDB;
-- Create auth aliases table
CREATE TABLE alf_authority_alias (
id BIGINT NOT NULL AUTO_INCREMENT,
version BIGINT NOT NULL,
auth_id BIGINT NOT NULL,
alias_id BIGINT NOT NULL,
primary key (id),
INDEX FK_ALIAS_TO_AUTH (alias_id),
CONSTRAINT FOREIGN KEY FK_ALIAS_TO_AUTH (alias_id) REFERENCES alf_authority (id),
INDEX FK_AUTH_TO_AUTH (auth_id),
CONSTRAINT FOREIGN KEY FK_AUTH_TO_AUTH (auth_id) REFERENCES alf_authority (id),
CONSTRAINT UNIQUE INDEX U_AUTH_TO_ALIAS (auth_id, alias_id)
) type=InnoDB;
-- Tidy up unused cols on ace table and add the FK contstraint back
-- finish take out of ACL_ID
ALTER TABLE alf_access_control_entry
DROP FOREIGN KEY FKFFF41F99B9553F6C,
DROP COLUMN acl_id,
DROP COLUMN authority_id,
CHANGE auth_id authority_id BIGINT NOT NULL,
ADD INDEX FK_ACL_TO_AUTH (authority_id),
ADD CONSTRAINT FOREIGN KEY FK_ACL_TO_AUTH (authority_id) REFERENCES alf_authority (id);
-- Update members to point to the first use of an access control entry
UPDATE alf_acl_member mem
SET ace_id = (SELECT min(ace2.id) FROM alf_access_control_entry ace1
JOIN alf_access_control_entry ace2
ON ace1.permission_id = ace2.permission_id AND
ace1.authority_id = ace2.authority_id AND
ace1.allowed = ace2.allowed AND
ace1.applies = ace2.applies
WHERE ace1.id = mem.ace_id );
-- Remove duplicate aces the mysql way (as you can not use the deleted table in the where clause ...)
CREATE TEMPORARY TABLE tmp_to_delete SELECT ace.id FROM alf_acl_member mem RIGHT OUTER JOIN alf_access_control_entry ace ON mem.ace_id = ace.id WHERE mem.ace_id IS NULL;
DELETE FROM alf_access_control_entry ace USING alf_access_control_entry ace JOIN tmp_to_delete t ON ace.id = t.id;
DROP TEMPORARY TABLE tmp_to_delete;
-- Add constraint for duplicate acls
ALTER TABLE alf_access_control_entry
ADD UNIQUE (permission_id, authority_id, allowed, applies, context_id);
--
-- Record script finish
--
DELETE FROM alf_applied_patch WHERE id = 'patch.db-V2.2-ACL';
INSERT INTO alf_applied_patch
(id, description, fixes_from_schema, fixes_to_schema, applied_to_schema, target_schema, applied_on_date, applied_to_server, was_executed, succeeded, report)
VALUES
(
'patch.db-V2.2-ACL', 'Manually executed script upgrade V2.2: Update acl schema',
0, 76, -1, 77, null, 'UNKOWN', 1, 1, 'Script completed'
);

View File

@@ -112,16 +112,9 @@
overflowToDisk="false"
/>
<!-- Permission related caches -->
<!-- approx 1MB memory required -->
<!-- approx 1MB memory required -->
<cache
name="org.alfresco.repo.domain.hibernate.DbAccessControlListImpl"
maxElementsInMemory="1000"
eternal="true"
overflowToDisk="false"
/>
<!-- approx 1MB memory required -->
<cache
name="org.alfresco.repo.domain.hibernate.DbAccessControlListImpl.entries"
name="org.alfresco.repo.domain.hibernate.DbAccessControlEntryContextImpl"
maxElementsInMemory="1000"
eternal="true"
overflowToDisk="false"
@@ -133,10 +126,31 @@
eternal="true"
overflowToDisk="false"
/>
<!-- approx 1MB memory required -->
<!-- approx 5MB memory required -->
<cache
name="org.alfresco.repo.domain.hibernate.DbPermissionImpl"
maxElementsInMemory="500"
name="org.alfresco.repo.domain.hibernate.DbAccessControlListChangeSetImpl"
maxElementsInMemory="5000"
eternal="true"
overflowToDisk="false"
/>
<!-- approx 1MB memory required -->
<cache
name="org.alfresco.repo.domain.hibernate.DbAccessControlListImpl"
maxElementsInMemory="1000"
eternal="true"
overflowToDisk="false"
/>
<!-- approx 1MB memory required -->
<cache
name="org.alfresco.repo.domain.hibernate.DbAccessControlListMemberImpl"
maxElementsInMemory="1000"
eternal="true"
overflowToDisk="false"
/>
<!-- approx 1MB memory required -->
<cache
name="org.alfresco.repo.domain.hibernate.DbAuthorityAliasImpl"
maxElementsInMemory="1000"
eternal="true"
overflowToDisk="false"
/>
@@ -147,10 +161,10 @@
eternal="true"
overflowToDisk="false"
/>
<!-- approx 5MB memory required -->
<!-- approx 1MB memory required -->
<cache
name="org.alfresco.repo.domain.hibernate.DbAuthorityImpl.externalKeys"
maxElementsInMemory="5000"
name="org.alfresco.repo.domain.hibernate.DbPermissionImpl"
maxElementsInMemory="500"
eternal="true"
overflowToDisk="false"
/>
@@ -173,31 +187,31 @@
eternal="true"
overflowToDisk="false"
/>
<!-- Attribute Service Caches. -->
<cache
name="org.alfresco.repo.attributes.AttributeImpl"
maxElementsInMemory="5000"
eternal="true"
overflowToDisk="false"
/>
<cache
name="org.alfresco.repo.attributes.ListEntryImpl"
maxElementsInMemory="2000"
eternal="true"
overflowToDisk="false"
/>
<cache
name="org.alfresco.repo.attributes.MapEntryImpl"
maxElementsInMemory="2000"
eternal="true"
overflowToDisk="false"
/>
<cache
name="org.alfresco.repo.attributes.GlobalAttributeEntryImpl"
maxElementsInMemory="1000"
eternal="true"
overflowToDisk="false"
/>
<!-- Attribute Service Caches. -->
<cache
name="org.alfresco.repo.attributes.AttributeImpl"
maxElementsInMemory="5000"
eternal="true"
overflowToDisk="false"
/>
<cache
name="org.alfresco.repo.attributes.ListEntryImpl"
maxElementsInMemory="2000"
eternal="true"
overflowToDisk="false"
/>
<cache
name="org.alfresco.repo.attributes.MapEntryImpl"
maxElementsInMemory="2000"
eternal="true"
overflowToDisk="false"
/>
<cache
name="org.alfresco.repo.attributes.GlobalAttributeEntryImpl"
maxElementsInMemory="1000"
eternal="true"
overflowToDisk="false"
/>
<!-- AVM caches -->
<cache
@@ -310,14 +324,13 @@
maxElementsInMemory="1000"
eternal="true"
overflowToDisk="true"
/>
<cache
name="org.alfresco.cache.sysAdminCache"
maxElementsInMemory="10"
eternal="true"
overflowToDisk="false"
/>
<cache
name="org.alfresco.cache.sysAdminCache"
maxElementsInMemory="10"
eternal="true"
overflowToDisk="false"
/>
<!-- Web Client Config (tenant-based) -->

View File

@@ -159,26 +159,24 @@
<prop key="org.alfresco.repo.domain.hibernate.VersionCountImpl">${cache.strategy}</prop>
<prop key="org.alfresco.repo.domain.hibernate.AppliedPatchImpl">${cache.strategy}</prop>
<prop key="org.alfresco.repo.domain.hibernate.DbAccessControlListImpl">${cache.strategy}</prop>
<prop key="org.alfresco.repo.domain.hibernate.DbAccessControlEntryContextImpl">${cache.strategy}</prop>
<prop key="org.alfresco.repo.domain.hibernate.DbAccessControlEntryImpl">${cache.strategy}</prop>
<prop key="org.alfresco.repo.domain.hibernate.DbPermissionImpl">${cache.strategy}</prop>
<prop key="org.alfresco.repo.domain.hibernate.DbAccessControlListChangeSetImpl">${cache.strategy}</prop>
<prop key="org.alfresco.repo.domain.hibernate.DbAccessControlListImpl">${cache.strategy}</prop>
<prop key="org.alfresco.repo.domain.hibernate.DbAccessControlListMemberImpl">${cache.strategy}</prop>
<prop key="org.alfresco.repo.domain.hibernate.DbAuthorityAliasImpl">${cache.strategy}</prop>
<prop key="org.alfresco.repo.domain.hibernate.DbAuthorityImpl">${cache.strategy}</prop>
<prop key="org.alfresco.repo.audit.hibernate.AuditConfigImpl">${cache.strategy}</prop>
<prop key="org.alfresco.repo.audit.hibernate.AuditDateImpl">${cache.strategy}</prop>
<prop key="org.alfresco.repo.audit.hibernate.AuditSourceImpl">${cache.strategy}</prop>
<prop key="org.alfresco.repo.domain.hibernate.DbPermissionImpl">${cache.strategy}</prop>
<prop key="org.alfresco.repo.audit.hibernate.AuditConfigImpl">${cache.strategy}</prop>
<prop key="org.alfresco.repo.audit.hibernate.AuditDateImpl">${cache.strategy}</prop>
<prop key="org.alfresco.repo.audit.hibernate.AuditSourceImpl">${cache.strategy}</prop>
</props>
</property>
<property name="collectionCacheStrategies" >
<props>
<prop key="org.alfresco.repo.domain.hibernate.NodeImpl.properties">${cache.strategy}</prop>
<prop key="org.alfresco.repo.domain.hibernate.NodeImpl.aspects">${cache.strategy}</prop>
<!--
<prop key="org.alfresco.repo.domain.hibernate.NodeImpl.parentAssocs">${cache.strategy}</prop>
-->
<prop key="org.alfresco.repo.domain.hibernate.DbAccessControlListImpl.entries">${cache.strategy}</prop>
<prop key="org.alfresco.repo.domain.hibernate.DbAuthorityImpl.externalKeys">${cache.strategy}</prop>
</props>
</property>
</bean>
@@ -200,9 +198,25 @@
</property>
</bean>
<bean id="permissionsDaoComponent" class="org.alfresco.repo.domain.hibernate.PermissionsDaoComponentImpl">
<property name="sessionFactory">
<ref bean="sessionFactory" />
<bean id="permissionsDaoComponent" class="org.alfresco.repo.service.StoreRedirectorProxyFactory">
<property name="proxyInterface">
<value>org.alfresco.repo.security.permissions.impl.PermissionsDaoComponent</value>
</property>
<property name="defaultBinding">
<ref bean="oldPermissionsDaoComponent"></ref>
</property>
<property name="redirectedProtocolBindings">
<map>
<entry key="workspace"><ref bean="oldPermissionsDaoComponent"></ref></entry>
<entry key="versionStore"><ref bean="oldPermissionsDaoComponent"></ref></entry>
<entry key="avm"><ref bean="newPermissionsDaoComponent"/></entry>
</map>
</property>
</bean>
<bean id="newPermissionsDaoComponent" class="org.alfresco.repo.domain.hibernate.PermissionsDaoComponentImpl">
<property name="aclDaoComponent">
<ref bean="aclDaoComponent" />
</property>
<property name="protocolToACLDAO">
<map>
@@ -211,24 +225,48 @@
</map>
</property>
<property name="defaultACLDAO">
<ref bean="nodeACLDAO"/>
</property>
<ref bean="nodeACLDAO"/>
</property>
</bean>
<bean id="nodeACLDAO" class="org.alfresco.repo.domain.hibernate.NodeAccessControlListDAO">
<property name="nodeDaoService">
<ref bean="nodeDaoService" />
<bean id="oldPermissionsDaoComponent" class="org.alfresco.repo.domain.hibernate.OldADMPermissionsDaoComponentImpl">
<property name="aclDaoComponent">
<ref bean="aclDaoComponent" />
</property>
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>
<bean id="avmACLDAO" class="org.alfresco.repo.domain.hibernate.AVMAccessControlListDAO">
<property name="avmRepository">
<ref bean="avmRepository"/>
</property>
<property name="protocolToACLDAO">
<map>
<entry key="workspace"><ref bean="nodeACLDAO"></ref></entry>
<entry key="avm"><ref bean="avmACLDAO"/></entry>
</map>
</property>
<property name="defaultACLDAO">
<ref bean="nodeACLDAO"/>
</property>
</bean>
<bean id="aclDaoComponent" class="org.alfresco.repo.domain.hibernate.AclDaoComponentImpl">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
<bean id="nodeACLDAO" class="org.alfresco.repo.domain.hibernate.NodeAccessControlListDAO">
<property name="nodeDaoService">
<ref bean="nodeDaoService" />
</property>
</bean>
<bean id="avmACLDAO" class="org.alfresco.repo.domain.hibernate.AVMAccessControlListDAO">
<property name="avmRepository">
<ref bean="avmRepository"/>
</property>
<property name="avmService">
<ref bean="avmService"/>
</property>
<property name="aclDaoComponent">
<ref bean="aclDaoComponent"/>
</property>
</bean>
<bean id="usageDeltaDao" class="org.alfresco.repo.usage.hibernate.HibernateUsageDeltaDAO">
<property name="sessionFactory">
@@ -257,12 +295,6 @@
</property>
</bean>
<bean id="persmissionsDaoServiceTxnRegistration" class="org.alfresco.repo.transaction.TransactionalDaoInterceptor" >
<property name="daoService">
<ref bean="permissionsDaoComponent" />
</property>
</bean>
<bean id="nodeDaoService" class="org.springframework.aop.framework.ProxyFactoryBean">
<property name="proxyInterfaces">
<value>org.alfresco.repo.node.db.NodeDaoService</value>
@@ -285,7 +317,7 @@
<property name="contentStore">
<ref bean="auditFileContentStore"/>
</property>
<property name="localSessionFactory">
<property name="localSessionFactory">
<ref bean="&amp;sessionFactory"></ref> <!-- inject the actual factory, not a session -->
</property>
</bean>

View File

@@ -200,3 +200,9 @@ patch.deploymentMigration.webProjectName=Migrating deployment data for web proje
patch.deploymentMigration.serverMigrated=Server ''{0}'' from web project ''{1}'' has been migrated
patch.deploymentMigration.reportMigrated=Deployment report for ''{0}'' from web project ''{1}'' has been migrated
patch.deploymentMigration.result=Deployment data has been migrated.
patch.updateAvmPermissionData.description=Update avm permissions from 'webfolder' to 'cmobject'.
patch.updateAvmPermissionData.result=Changed {0} 'webfolder' access control entries to 'cmobject'.
patch.updateAvmPermissions.description=Update ACLs on all avm objects to the new 2.2 permission model
patch.updateAvmPermissions.result=Updated ACLs. Created {0} defining and {1} layered ACLs.

View File

@@ -19,6 +19,7 @@
<namespaces>
<namespace uri="http://www.alfresco.org/model/system/1.0" prefix="sys"/>
<namespace uri="http://www.alfresco.org/model/content/1.0" prefix="cm"/>
<namespace uri="http://www.alfresco.org/model/wcmmodel/1.0" prefix="wcm"/>
<namespace uri="http://www.alfresco.org/model/wcmappmodel/1.0" prefix="wca"/>
</namespaces>
@@ -286,8 +287,8 @@
<!-- ================================================ -->
<permissionSet type="cm:cmobject" expose="selected">
<!-- Kept for backward compatibility - the administrator permission has -->
<!-- Kept for backward compatibility - the administrator permission has -->
<!-- been removed to aviod confusion -->
<permissionGroup name="Administrator" allowFullControl="true" expose="false" />
@@ -341,6 +342,23 @@
<includePermissionGroup type="sys:base" permissionGroup="CreateAssociations"/>
</permissionGroup>
<!-- avm related permissions -->
<!-- AVM website specific roles. -->
<permissionGroup name="ContentManager" allowFullControl="true" expose="false" />
<permissionGroup name="ContentPublisher" allowFullControl="false" expose="false">
<includePermissionGroup permissionGroup="Collaborator" type="cm:cmobject" />
</permissionGroup>
<permissionGroup name="ContentContributor" allowFullControl="false" expose="false">
<includePermissionGroup permissionGroup="Contributor" type="cm:cmobject" />
</permissionGroup>
<permissionGroup name="ContentReviewer" allowFullControl="false" expose="false">
<includePermissionGroup permissionGroup="Editor" type="cm:cmobject" />
</permissionGroup>
</permissionSet>
<!-- =============================== -->
@@ -358,29 +376,73 @@
<permissionGroup name="Consumer" extends="true" expose="true"/>
<permissionGroup name="RecordAdministrator" extends="true" expose="false"/>
</permissionSet>
<permissionSet type="cm:folder" expose="selected">
<!-- Content folder specific roles. -->
<permissionGroup name="Coordinator" extends="true" expose="true"/>
<permissionGroup name="Collaborator" extends="true" expose="true"/>
<permissionGroup name="Contributor" extends="true" expose="true"/>
<permissionGroup name="Editor" extends="true" expose="true"/>
<permissionGroup name="Consumer" extends="true" expose="true"/>
<permissionGroup name="RecordAdministrator" extends="true" expose="false"/>
</permissionSet>
<!-- ========================================== -->
<!-- Permissions specific to avm website folder -->
<!-- ========================================== -->
<permissionSet type="wca:webfolder" expose="selected">
<!-- AVM website specific roles. -->
<permissionGroup name="ContentManager" allowFullControl="true" expose="true" />
<permissionGroup name="ContentPublisher" allowFullControl="false" expose="true">
<includePermissionGroup permissionGroup="Collaborator" type="cm:cmobject" />
</permissionGroup>
<permissionGroup name="ContentContributor" allowFullControl="false" expose="true">
<includePermissionGroup permissionGroup="Contributor" type="cm:cmobject" />
</permissionGroup>
<permissionGroup name="ContentReviewer" allowFullControl="false" expose="true">
<includePermissionGroup permissionGroup="Editor" type="cm:cmobject" />
</permissionGroup>
<permissionSet type="wcm:avmfolder" expose="selected"> -->
<permissionGroup name="ContentManager" extends="true" expose="true" />
<permissionGroup name="ContentPublisher" extends="true" expose="true" />
<permissionGroup name="ContentContributor" extends="true" expose="true" />
<permissionGroup name="ContentReviewer" extends="true" expose="true" />
</permissionSet>
<permissionSet type="wcm:avmplainfolder" expose="selected"> -->
<permissionGroup name="ContentManager" extends="true" expose="true" />
<permissionGroup name="ContentPublisher" extends="true" expose="true" />
<permissionGroup name="ContentContributor" extends="true" expose="true" />
<permissionGroup name="ContentReviewer" extends="true" expose="true" />
</permissionSet>
<permissionSet type="wcm:avmlayeredfolder" expose="selected"> -->
<permissionGroup name="ContentManager" extends="true" expose="true" />
<permissionGroup name="ContentPublisher" extends="true" expose="true" />
<permissionGroup name="ContentContributor" extends="true" expose="true" />
<permissionGroup name="ContentReviewer" extends="true" expose="true" />
</permissionSet>
<permissionSet type="wcm:avmcontent" expose="selected"> -->
<permissionGroup name="ContentManager" extends="true" expose="true" />
<permissionGroup name="ContentPublisher" extends="true" expose="true" />
<permissionGroup name="ContentContributor" extends="true" expose="true" />
<permissionGroup name="ContentReviewer" extends="true" expose="true" />
</permissionSet>
<permissionSet type="wcm:avmplaincontent" expose="selected"> -->
<permissionGroup name="ContentManager" extends="true" expose="true" />
<permissionGroup name="ContentPublisher" extends="true" expose="true" />
<permissionGroup name="ContentContributor" extends="true" expose="true" />
<permissionGroup name="ContentReviewer" extends="true" expose="true" />
</permissionSet>
<permissionSet type="wcm:avmlayeredcontent" expose="selected"> -->
<permissionGroup name="ContentManager" extends="true" expose="true" />
<permissionGroup name="ContentPublisher" extends="true" expose="true" />
<permissionGroup name="ContentContributor" extends="true" expose="true" />
<permissionGroup name="ContentReviewer" extends="true" expose="true" />
</permissionSet>
<permissionSet type="wca:webfolder" expose="selected"> -->
<permissionGroup name="ContentManager" extends="true" expose="true" />
<permissionGroup name="ContentPublisher" extends="true" expose="true" />
<permissionGroup name="ContentContributor" extends="true" expose="true" />
<permissionGroup name="ContentReviewer" extends="true" expose="true" />
</permissionSet>
<!-- ============================================== -->

View File

@@ -4,15 +4,15 @@
<beans>
<bean id="PatchService" class="org.springframework.aop.framework.ProxyFactoryBean">
<property name="proxyInterfaces">
<value>org.alfresco.repo.admin.patch.PatchService</value>
</property>
<property name="target"><ref bean="patchComponent"/></property>
<property name="interceptorNames">
<property name="proxyInterfaces">
<value>org.alfresco.repo.admin.patch.PatchService</value>
</property>
<property name="target"><ref bean="patchComponent"/></property>
<property name="interceptorNames">
<list>
<idref local="PatchService_transaction" />
</list>
</property>
</list>
</property>
</bean>
<bean id="PatchService_transaction" class="org.springframework.transaction.interceptor.TransactionInterceptor">
@@ -572,7 +572,7 @@
</props>
</property>
</bean>
<bean id="patch.LinkNodeFileExtension" class="org.alfresco.repo.admin.patch.impl.LinkNodeFileExtensionPatch" parent="basePatch" >
<property name="id"><value>patch.LinkNodeFileExtension</value></property>
<property name="description"><value>patch.linkNodeExtension.description</value></property>
@@ -608,8 +608,8 @@
</props>
</property>
</bean>
<bean id="patch.userAndPersonUserNamesAsIdentifiers" class="org.alfresco.repo.admin.patch.impl.UserAndPersonTokenisationPatch" parent="basePatch" >
<bean id="patch.userAndPersonUserNamesAsIdentifiers" class="org.alfresco.repo.admin.patch.impl.UserAndPersonTokenisationPatch" parent="basePatch" >
<property name="id"><value>patch.userAndPersonUserNamesAsIdentifiers</value></property>
<property name="description"><value>patch.userAndPersonUserNamesAsIdentifiers.description</value></property>
<property name="fixesFromSchema"><value>0</value></property>
@@ -619,10 +619,10 @@
<property name="userImporterBootstrap">
<ref bean="userBootstrap" />
</property>
<property name="spacesImporterBootstrap">
<property name="spacesImporterBootstrap">
<ref bean="spacesBootstrap" />
</property>
<property name="indexerAndSearcher">
<property name="indexerAndSearcher">
<ref bean="indexerAndSearcherFactory" />
</property>
</bean>
@@ -660,7 +660,7 @@
<value>classpath:alfresco/dbscripts/upgrade/2.1/${db.script.dialect}/AlfrescoSchemaUpdate-2.1-NotNullColumns.sql</value>
</property>
</bean>
<bean id="patch.groupNamesAsIdentifiers" class="org.alfresco.repo.admin.patch.impl.GroupTokenisationPatch" parent="basePatch" >
<property name="id"><value>patch.groupNamesAsIdentifiers</value></property>
<property name="description"><value>patch.groupNamesAsIdentifiers.description</value></property>
@@ -675,8 +675,8 @@
<ref bean="indexerAndSearcherFactory" />
</property>
</bean>
<bean id="patch.invalidUserPersonAndGroup" class="org.alfresco.repo.admin.patch.impl.InvalidUserPersonAndGroupPatch" parent="basePatch" >
<bean id="patch.invalidUserPersonAndGroup" class="org.alfresco.repo.admin.patch.impl.InvalidUserPersonAndGroupPatch" parent="basePatch" >
<property name="id"><value>patch.invalidUserPersonAndGroup</value></property>
<property name="description"><value>patch.invalidUserPersonAndGroup.description</value></property>
<property name="fixesFromSchema"><value>0</value></property>
@@ -686,10 +686,10 @@
<property name="userImporterBootstrap">
<ref bean="userBootstrap" />
</property>
<property name="spacesImporterBootstrap">
<property name="spacesImporterBootstrap">
<ref bean="spacesBootstrap" />
</property>
<property name="dictionaryService">
<property name="dictionaryService">
<ref bean="dictionaryService" />
</property>
</bean>
@@ -752,7 +752,7 @@
</property>
</bean>
<bean id="patch.groupMembersAsIdentifiers" class="org.alfresco.repo.admin.patch.impl.GroupTokenisationPatch" parent="basePatch" >
<bean id="patch.groupMembersAsIdentifiers" class="org.alfresco.repo.admin.patch.impl.GroupTokenisationPatch" parent="basePatch" >
<property name="id"><value>patch.groupMembersAsIdentifiers</value></property>
<property name="description"><value>patch.groupMembersAsIdentifiers.description</value></property>
<property name="fixesFromSchema"><value>0</value></property>
@@ -1247,4 +1247,54 @@
</property>
</bean>
<bean id="patch.db-V2.2-ACL" class="org.alfresco.repo.admin.patch.impl.SchemaUpgradeScriptPatch" parent="basePatch">
<property name="id"><value>patch.db-V2.2-ACL</value></property>
<property name="description"><value>patch.schemaUpgradeScript.description</value></property>
<property name="fixesFromSchema"><value>0</value></property>
<property name="fixesToSchema"><value>119</value></property>
<property name="targetSchema"><value>120</value></property>
<property name="scriptUrl">
<value>classpath:alfresco/dbscripts/upgrade/2.2/${db.script.dialect}/AlfrescoSchemaUpdate-2.2-ACL.sql</value>
</property>
<property name="dependsOn" >
<list>
<ref bean="patch.db-V2.1-NotNullColumns" />
</list>
</property>
</bean>
<bean id="patch.updateAvmPermissionData" class="org.alfresco.repo.admin.patch.impl.AVMPermissionDataPatch" parent="basePatch" >
<property name="id"><value>patch.updateAvmPermissionData</value></property>
<property name="description"><value>patch.updateAvmPermissionData.description</value></property>
<property name="fixesFromSchema"><value>0</value></property>
<property name="fixesToSchema"><value>119</value></property>
<property name="targetSchema"><value>120</value></property>
<!-- helper beans -->
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
<property name="dependsOn" >
<list>
<ref bean="patch.db-V2.2-ACL" />
</list>
</property>
</bean>
<bean id="patch.updateAvmPermissions" class="org.alfresco.repo.admin.patch.impl.AVMPermissionsPatch" parent="basePatch" >
<property name="id"><value>patch.updateAvmPermissions</value></property>
<property name="description"><value>patch.updateAvmPermissions.description</value></property>
<property name="fixesFromSchema"><value>0</value></property>
<property name="fixesToSchema"><value>119</value></property>
<property name="targetSchema"><value>120</value></property>
<!-- helper beans -->
<property name="accessControlListDao">
<ref bean="avmACLDAO" />
</property>
<property name="dependsOn" >
<list>
<ref bean="patch.updateAvmPermissionData" />
</list>
</property>
</bean>
</beans>

View File

@@ -35,6 +35,10 @@
</property>
</bean>
<!--
<bean id="permissionServiceImpl" class="org.alfresco.repo.security.permissions.noop.PermissionServiceNOOPImpl" />
-->
<bean id="permissionServiceImpl" class="org.alfresco.repo.security.permissions.impl.PermissionServiceImpl">
<property name="nodeService">
<ref bean="nodeService" />
@@ -63,10 +67,9 @@
<property name="policyComponent">
<ref bean="policyComponent" />
</property>
<!-- Dynamic authorites are evaluated in the context of a store/node etc -->
<!-- as opposed to being fixed like user name and groups. -->
<!-- There are two dynamic authorities, the ower of a node and the owner -->
<!-- of a lock on a node. -->
<property name="aclDaoComponent">
<ref bean="aclDaoComponent" />
</property>
<property name="dynamicAuthorities">
<list>
<ref bean="ownerDynamicAuthority" />
@@ -74,6 +77,43 @@
</list>
</property>
</bean>
<!--
<bean id="permissionServiceImpl" class="org.alfresco.repo.security.permissions.impl.PermissionServiceImpl">
<property name="nodeService">
<ref bean="nodeService" />
</property>
<property name="dictionaryService">
<ref bean="dictionaryService" />
</property>
<property name="permissionsDaoComponent">
<ref bean="permissionsDaoComponent" />
</property>
<property name="modelDAO">
<ref bean="permissionsModelDAO" />
</property>
<property name="authenticationComponent">
<ref bean="authenticationComponent" />
</property>
<property name="authorityService">
<ref bean="authorityService" />
</property>
<property name="accessCache">
<ref bean="permissionsAccessCache" />
</property>
<property name="policyComponent">
<ref bean="policyComponent" />
</property>
<property name="dynamicAuthorities">
<list>
<ref bean="ownerDynamicAuthority" />
<ref bean="lockOwnerDynamicAuthority" />
</list>
</property>
</bean>
-->
<!-- =================== -->
<!-- Dynamic Authorities -->

View File

@@ -232,7 +232,6 @@
</property>
</bean>
<bean id="userUsageTrackingComponent" class="org.alfresco.repo.usage.UserUsageTrackingComponent">
<property name="nodeDaoService">
<ref bean="nodeDaoService"/>
@@ -326,4 +325,9 @@
</bean>
<!-- There is a job available to purge old deploymentattempt nodes -->
<!-- from the repository. The maximum age of the node can be configured. -->
<!-- See the wiki (http://wiki.alfresco.com/wikiDeployment) for details -->
<!-- and the deployment-attempt-cleaner-context.xml.sample file. -->
</beans>

View File

@@ -19,4 +19,4 @@ version.build=@build-number@
# Schema number
version.schema=119
version.schema=120