2012-02-28 71 views
1

当admin用户创建用户时,我自定义代码以打开和关闭“homeFolderCreationEager”,但它只能延迟创建文件夹。当相应的用户登录时,该用户的文件夹会自动创建。禁用用户主文件夹创建

我该如何防止这种情况发生? 任何形式的帮助表示赞赏。

+0

分享或资源管理器?和哪个版本的Alfresco? – Gagravarr 2012-02-28 09:48:03

+0

@Gagravarr分享Alfresco 4.0 – zawhtut 2012-02-28 10:01:03

回答

1

嗨每个用户都有一个“主文件夹”,这是现有空间的一个位置,如果没有人提供,它将创建一个主文件夹。

通过将AD/LDAP连接到Alfresco,您可以清楚地看到这一点,您可以在其中提供主文件夹。因此,您不需要禁用homefolder创建,您需要提供homefolder = app:company或其他内容。

所以你需要找出这个属性在哪里以及如何设置它。那么你不会有这个问题。

4

wiki所述,您可以配置用户共享公司主页空间。如果您使用LDAP同步,你可以用

ldap.synchronization.defaultHomeFolderProvider=companyHomeFolderProvider 

否则,你需要覆盖缺省Spring配置和定义以下豆配置它(name属性当然是很重要,因为你需要覆盖默认配置) :

<bean name="homeFolderManager" class="org.alfresco.repo.security.person.HomeFolderManager" init-method="init"> 
    <property name="nodeService"> 
     <ref bean="nodeService" /> 
    </property> 
    <property name="policyComponent"> 
     <ref bean="policyComponent" /> 
    </property> 
    <property name="defaultProvider"> 
     <!-- here's the custom part: --> 
     <ref bean="companyHomeFolderProvider" /> 
    </property> 
    <property name="enableHomeFolderCreationAsPeopleAreCreated"> 
     <value>${home.folder.creation.eager}</value> 
    </property> 
</bean> 

还有其他的默认供应商可用,看看authentication-services-context.xml了解更多。

0

我研究了源,发现类PortableHomeFolderManager类的

getHomeFolder方法自动创建文件夹。

所以我注释掉了部分回国空间节点像下面

  homeSpaceNodeRef = new HomeSpaceNodeRef(getRootPathNodeRef(provider), 
        HomeSpaceNodeRef.Status.REFERENCED); 
      return homeSpaceNodeRef; 
      //fileInfo = createTree(provider, getRootPathNodeRef(provider), homeFolderPath,provider.getTemplateNodeRef(), fileFolderService); 
2
# Create home folders (unless disabled, see next property) as people are created (true) or create them lazily (false) 
home.folder.creation.eager=true 
# Disable home folder creation - if true then home folders are not created (neither eagerly nor lazily 
home.folder.creation.disabled=false 

使用第二个属性完全禁用主文件夹的创建。这些属性意味着是静态的和系统范围的。

如果你想根据其他逻辑微调创建,你可以在你自己的homeFolderManager bean中进行连线。