2012-05-02 15 views
1

既存のノード( "Sites"フォルダ)のアクセス権を設定する際に問題があります。私はグループを持っており、私は彼女に "サイト"フォルダの完全な権限を与える必要があります。私はこのAlfrescoがブートストラップのノードに対するアクセス許可を設定しました

<cm:folder view:childName="cm:Sites"> 
    <view:acl> 
     <view:ace view:access="ALLOWED"> 
      <view:authority>GROUP_NOTEBOOK_PROJECT_CREATOR_GROUP</view:authority> 
      <view:permission>FullControl</view:permission> 
     </view:ace> 
    </view:acl> 
    <view:properties> 
     <cm:name>Sites</cm:name> 
     <sys:node-uuid>1e6f0610-a018-4966-ab37-c71e809dc6ed</sys:node-uuid> 
    </view:properties> 
</cm:folder> 

し、次の設定コンテキスト

<bean id="com.agilent.datastore.notebook.server.systemBootstrap" class="org.alfresco.repo.module.ImporterModuleComponent" 
parent="module.baseComponent"> 
<property name="moduleId" value="${artifactId}" /> 
<property name="name" value="${name}" /> 
<property name="description" value="${description}" /> 
<property name="sinceVersion" value="${noSnapshotVersion}.${buildNumber}" /> 
<property name="appliesFromVersion" value="${noSnapshotVersion}.${buildNumber}" /> 
<!-- Uncomment next line if you want to execute bootstrap again --> 
<!-- property name="executeOnceOnly" value="false"/--> 
<property name="importer" ref="spacesBootstrap" /> 
<property name="bootstrapViews"> 
    <list> 
    <props> 
     <prop key="uuidBinding">UPDATE_EXISTING</prop> 
     <prop key="path">/${spaces.company_home.childname}</prop> 
     <prop key="location">alfresco/extension/agilent/sites.acp</prop> 

ために、次のXMLを使用しています。しかし、私はこのフォルダブートストラップだとき、私は例外Cannot insert duplicate key row in object 'dbo.alf_child_assoc' with unique index 'parent_node_id'.; nested exception is java.sql.SQLException: Cannot insert duplicate key row in object 'dbo.alf_child_assoc' with unique index 'parent_node_id'.

+0

その例外は、おそらくです!一度メインブートストラップに入ったら、カスタムブートストラップで一度... – Gagravarr

+0

ブートストラッププロセス中にノードに余分なパーミッションを付与しようとしていますか?または、組み込みのブートストラップで作成されたノードにカスタム化しようとしていますか? – Gagravarr

+0

はい、ブートストラッププロセス中にノードに追加の権限を与えることを試みています。 – VladislavLysov

答えて

0

何を達成するための最良の方法を持ってますalfrescoのAbstractPatch.javaクラスを拡張するJavaクラスであるパッチを作成することが必要です。

applyInternalメソッドでは、最初にxpath-searchを使用して好ましいサイトフォルダを保持します。これは、バックグラウンドでnodeServiceを使用するためです。ブートストラップ中にパッチが実行されたため、Solrはこのコードの実行中は使用できません。あなたはこのような春のコンテキストファイルにパッチを適用

宣言:あなたはサイトが二度目のフォルダを追加しようとしているので、

<bean id="patch.setPermissionsOnSitesFolderPatch"  class="org.yourdomain.alfresco.patch.SetPermissionOnSitesFolderPatch" parent="basePatch"> 
<property name="id"> 
    <value>patch.patch.setPermissionsOnSitesFolderPatch</value> 
</property> 
<property name="description"> 
    <value>patch.setPermissionsOnSitesFolderPatch.description</value> 
</property> 
<property name="fixesFromSchema"> 
    <value>0</value> 
</property> 
<property name="fixesToSchema"> 
    <value>${version.schema}</value> 
</property> 
<property name="targetSchema"> 
    <value>10000</value> 
    </property> 
    <property name="force" value="true" /> 

    <property name="repository" ref="repositoryHelper"/> 
</bean> 
関連する問題