2013-09-11 2 views
1

Мне нужно разделить и раскрыть содержимое в alfresco с помощью OpenCMIS, я прочитал документацию here для Apache Chemistry, но я не нахожу эту функциональность API, чтобы делиться и открывать документы.Как можно разделить/развязать программный код alfresco в OpenCMIS

Так как я могу сделать это программно?

+1

Что вы подразумеваете в деталях? Вам нравится использовать функцию общего доступа Alfresco Share или вы хотите изменить права доступа к узлу? – alfrescian

+0

Посмотрите, когда я обмениваюсь контентом и просматриваю общий контент в общедоступной функции общего доступа, любой может видеть этот контент без каких-либо разрешений, поэтому мне нужно управлять общим ресурсом в своем веб-приложении с помощью share и unshare и получать сгенерированный общий контент id, то отобразите его в 'http: // localhost: 8080/share/s /" theSharedContentIdAutoGenerated "' – user2758757

+0

Да, все еще довольно расплывчато. Фактическая потребность в общественном обмене заключается в том, что каждый может получить к ней доступ! Вы можете просто использовать методы ACL OpenCMIS для установки необходимых вам разрешений. И тогда пользователи могут получить доступ к контенту, к которому у них есть разрешение. –

ответ

1

Я собираюсь интерпретировать ваши требования следующим образом: Вы хотите использовать «Быстрое разделение» Alfresco Share, доступное в Alfresco Community 4.2 & Alfresco Cloud.


Alfresco Share использует следующий внутренний API (REST/WebScript), чтобы вызвать Быструю Поделиться:

POST /api/internal/shared/share/{store_protocol}/{store_id}/{node_id} 

, который возвращает сгенерированный быстрый акций идентификатор в формате JSON:

{ 
    "sharedId": "IHR65hlGT9yOTKwqPYMbRw" 
} 

WebScript реализован как поддерживаемый Java WebScript. Контроллер

org.alfresco.repo.web.scripts.quickshare.ShareContentPost 

, который использует следующие службы:

org.alfresco.repo.quickshare.QuickShareServiceImpl 

Как вы можете видеть here эта служба генерирует UUID (идентификатор ИЛС) & устанавливает значение, что и свойство qshare: sharedId (Aspect qshare: общий):

UUID uuid = UUIDGenerator.getInstance().generateRandomBasedUUID(); 
sharedId = Base64.encodeBase64URLSafeString(uuid.toByteArray()); // => 22 chars (eg. q3bEKPeDQvmJYgt4hJxOjw) 
    Map<QName,Serializable> props = new HashMap<QName,Serializable>(2); 
    props.put(QuickShareModel.PROP_QSHARE_SHAREDID, sharedId); 
    props.put(QuickShareModel.PROP_QSHARE_SHAREDBY, AuthenticationUtil.getRunAsUser()); 
    nodeService.addAspect(nodeRef, QuickShareModel.ASPECT_QSHARE, props); 

Вы должны быть в состоянии сделать это с помощью КМИС, но эта служба также устанавливает атрибут через AttributeService (хранит всю долю г-идентификаторы на арендатора):

attributeService.setAttribute(tenantNodeRef, ATTR_KEY_SHAREDIDS_ROOT, sharedId) 

Я не уверен, для чего это используется &, если это должно быть для вашего требования.

Смежные вопросы