use of org.alfresco.sync.events.types.Event in project alfresco-repository by Alfresco.
the class EventsServiceImpl method nodeFavourited.
@Override
public void nodeFavourited(NodeRef nodeRef) {
NodeInfo nodeInfo = getNodeInfo(nodeRef, NodeFavouritedEvent.EVENT_TYPE);
if (nodeInfo.checkNodeInfo()) {
String username = AuthenticationUtil.getFullyAuthenticatedUser();
String networkId = TenantUtil.getCurrentDomain();
String name = nodeInfo.getName();
String objectId = nodeInfo.getNodeId();
String siteId = nodeInfo.getSiteId();
String txnId = AlfrescoTransactionSupport.getTransactionId();
List<String> nodePaths = nodeInfo.getPaths();
List<List<String>> pathNodeIds = nodeInfo.getParentNodeIds();
long timestamp = System.currentTimeMillis();
Long modificationTime = nodeInfo.getModificationTimestamp();
String nodeType = nodeInfo.getType().toPrefixString(namespaceService);
Set<String> aspects = nodeInfo.getAspectsAsStrings();
Map<String, Serializable> properties = nodeInfo.getProperties();
Client alfrescoClient = getAlfrescoClient(nodeInfo.getClient());
Event event = new NodeFavouritedEvent(nextSequenceNumber(), name, txnId, timestamp, networkId, siteId, objectId, nodeType, nodePaths, pathNodeIds, username, modificationTime, alfrescoClient, aspects, properties);
sendEvent(event);
}
}
use of org.alfresco.sync.events.types.Event in project alfresco-repository by Alfresco.
the class EventsServiceImpl method fileClassified.
@Override
public void fileClassified(NodeRef nodeRef) {
NodeInfo nodeInfo = getNodeInfo(nodeRef, FileClassifiedEvent.EVENT_TYPE);
if (nodeInfo.checkNodeInfo()) {
Event event = FileClassifiedEvent.builder().seqNumber(nextSequenceNumber()).name(nodeInfo.getName()).txnId(AlfrescoTransactionSupport.getTransactionId()).timestamp(System.currentTimeMillis()).networkId(TenantUtil.getCurrentDomain()).siteId(nodeInfo.getSiteId()).nodeId(nodeInfo.getNodeId()).nodeType(nodeInfo.getType().toPrefixString(namespaceService)).paths(nodeInfo.getPaths()).parentNodeIds(nodeInfo.getParentNodeIds()).username(AuthenticationUtil.getFullyAuthenticatedUser()).nodeModificationTime(nodeInfo.getModificationTimestamp()).client(getAlfrescoClient(nodeInfo.getClient())).aspects(nodeInfo.getAspectsAsStrings()).nodeProperties(nodeInfo.getProperties()).build();
sendEvent(event);
}
}
use of org.alfresco.sync.events.types.Event in project alfresco-repository by Alfresco.
the class EventsServiceImpl method nodeCreated.
@Override
public void nodeCreated(final NodeRef nodeRef) {
NodeInfo nodeInfo = getNodeInfo(nodeRef, NodeAddedEvent.EVENT_TYPE);
if (nodeInfo.checkNodeInfo()) {
String username = AuthenticationUtil.getFullyAuthenticatedUser();
String networkId = TenantUtil.getCurrentDomain();
String name = nodeInfo.getName();
String objectId = nodeInfo.getNodeId();
String siteId = nodeInfo.getSiteId();
String txnId = AlfrescoTransactionSupport.getTransactionId();
List<String> nodePaths = nodeInfo.getPaths();
List<List<String>> pathNodeIds = nodeInfo.getParentNodeIds();
long timestamp = System.currentTimeMillis();
Long modificationTime = nodeInfo.getModificationTimestamp();
String nodeType = nodeInfo.getType().toPrefixString(namespaceService);
Client alfrescoClient = getAlfrescoClient(nodeInfo.getClient());
Set<String> aspects = nodeInfo.getAspectsAsStrings();
Map<String, Serializable> properties = nodeInfo.getProperties();
Event event = new NodeAddedEvent(nextSequenceNumber(), name, txnId, timestamp, networkId, siteId, objectId, nodeType, nodePaths, pathNodeIds, username, modificationTime, alfrescoClient, aspects, properties);
sendEvent(event);
}
}
use of org.alfresco.sync.events.types.Event in project alfresco-repository by Alfresco.
the class QuickShareServiceImpl method shareContent.
@Override
public QuickShareDTO shareContent(NodeRef nodeRef, Date expiryDate) throws QuickShareDisabledException, InvalidNodeRefException {
checkEnabled();
// Check the node is the correct type
final QName typeQName = nodeService.getType(nodeRef);
if (isSharable(typeQName) == false) {
throw new InvalidNodeRefException(nodeRef);
}
final String sharedId;
// If it is retura dto built from the existing properties.
if (!nodeService.getAspects(nodeRef).contains(QuickShareModel.ASPECT_QSHARE)) {
UUID uuid = UUIDGenerator.getInstance().generateRandomBasedUUID();
// => 22 chars (eg. q3bEKPeDQvmJYgt4hJxOjw)
sharedId = Base64.encodeBase64URLSafeString(uuid.toByteArray());
final Map<QName, Serializable> props = new HashMap<QName, Serializable>(2);
props.put(QuickShareModel.PROP_QSHARE_SHAREDID, sharedId);
props.put(QuickShareModel.PROP_QSHARE_SHAREDBY, AuthenticationUtil.getRunAsUser());
// Disable audit to preserve modifier and modified date
// see MNT-11960
behaviourFilter.disableBehaviour(nodeRef, ContentModel.ASPECT_AUDITABLE);
try {
// consumer/contributor should be able to add "shared" aspect (MNT-10366)
AuthenticationUtil.runAsSystem(new RunAsWork<Void>() {
public Void doWork() {
nodeService.addAspect(nodeRef, QuickShareModel.ASPECT_QSHARE, props);
return null;
}
});
} finally {
behaviourFilter.enableBehaviour(nodeRef, ContentModel.ASPECT_AUDITABLE);
}
final NodeRef tenantNodeRef = tenantService.getName(nodeRef);
TenantUtil.runAsDefaultTenant(new TenantRunAsWork<Void>() {
public Void doWork() throws Exception {
attributeService.setAttribute(tenantNodeRef, ATTR_KEY_SHAREDIDS_ROOT, sharedId);
return null;
}
});
final StringBuffer sb = new StringBuffer();
sb.append("{").append("\"sharedId\":\"").append(sharedId).append("\"").append("}");
eventPublisher.publishEvent(new EventPreparator() {
@Override
public Event prepareEvent(String user, String networkId, String transactionId) {
return new ActivityEvent("quickshare", transactionId, networkId, user, nodeRef.getId(), null, typeQName.toString(), Client.asType(ClientType.webclient), sb.toString(), null, null, 0l, null);
}
});
if (logger.isInfoEnabled()) {
logger.info("QuickShare - shared content: " + sharedId + " [" + nodeRef + "]");
}
} else {
sharedId = (String) nodeService.getProperty(nodeRef, QuickShareModel.PROP_QSHARE_SHAREDID);
if (logger.isDebugEnabled()) {
logger.debug("QuickShare - content already shared: " + sharedId + " [" + nodeRef + "]");
}
}
if (expiryDate != null) {
AuthenticationUtil.runAsSystem((RunAsWork<Void>) () -> {
// Create and save the expiry action
saveSharedLinkExpiryAction(sharedId, expiryDate);
// if we get here, it means the expiry date is validated and the action
// is created and saved, so now set the expiryDate property.
behaviourFilter.disableBehaviour(nodeRef, ContentModel.ASPECT_AUDITABLE);
try {
nodeService.setProperty(nodeRef, QuickShareModel.PROP_QSHARE_EXPIRY_DATE, expiryDate);
} finally {
behaviourFilter.enableBehaviour(nodeRef, ContentModel.ASPECT_AUDITABLE);
}
return null;
});
}
return new QuickShareDTO(sharedId, expiryDate);
}
Aggregations