Отключить создание домашней папки пользователя
Когда пользователь с правами администратора создает пользователя, я настраиваю код для включения и выключения "homeFolderCreationEager", но это может только задержать создание папки. Когда соответствующий пользователь входит в систему, папка для этого пользователя создается автоматически.
Как я могу предотвратить это? Любая помощь приветствуется.
4 ответа
Как указано в вики, вы можете настроить пользователей для совместного использования домашнего пространства компании. Если вы используете синхронизацию 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
для большего.
# 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
Используйте второе свойство, чтобы полностью отключить создание домашней папки. Свойства должны быть статичными и общесистемными.
Если вы хотите точно настроить создание в соответствии с какой-то другой логикой, вы можете подключить свой собственный bean- компонент homeFolderManager.
Привет У каждого пользователя есть "домашняя папка". Это место в существующем пространстве, и если никто не указан, он создаст домашнюю папку.
Это очень ясно видно, подключив AD/LDAP к Alfresco, где вы можете указать домашнюю папку. Следовательно, вам не нужно отключать создание homefolder, вам нужно указать homefolder = app:company или что-то еще.
Поэтому вам нужно выяснить, где находится это свойство и как вы можете его установить. Тогда у вас не будет этой проблемы.
Я изучил источник и обнаружил, что
МетодgetHomeFolder класса PortableHomeFolderManager создает папку автоматически.
Поэтому я закомментировал эту часть и вернул домашний космический узел следующим образом
homeSpaceNodeRef = new HomeSpaceNodeRef(getRootPathNodeRef(provider),
HomeSpaceNodeRef.Status.REFERENCED);
return homeSpaceNodeRef;
//fileInfo = createTree(provider, getRootPathNodeRef(provider), homeFolderPath,provider.getTemplateNodeRef(), fileFolderService);