Search in sources :

Example 11 with Client

use of org.alfresco.sync.repo.Client in project alfresco-repository by Alfresco.

the class EventsServiceImpl method authorityAddedToGroup.

@Override
public void authorityAddedToGroup(String parentGroup, String childAuthority) {
    if (includeEventType(AuthorityAddedToGroupEvent.EVENT_TYPE)) {
        String username = AuthenticationUtil.getFullyAuthenticatedUser();
        String networkId = TenantUtil.getCurrentDomain();
        String txnId = AlfrescoTransactionSupport.getTransactionId();
        long timestamp = System.currentTimeMillis();
        Client client = getAlfrescoClient(ClientUtil.from(FileFilterMode.getClient()));
        Event event = AuthorityAddedToGroupEvent.builder().parentGroup(parentGroup).authorityName(childAuthority).seqNumber(nextSequenceNumber()).txnId(txnId).networkId(networkId).timestamp(timestamp).username(username).client(client).build();
        sendEvent(event);
    }
}
Also used : NodeUnFavouritedEvent(org.alfresco.sync.events.types.NodeUnFavouritedEvent) LocalPermissionRevokedEvent(org.alfresco.sync.events.types.permission.LocalPermissionRevokedEvent) RecordRejectedEvent(org.alfresco.sync.events.types.recordsmanagement.RecordRejectedEvent) NodeUnLikedEvent(org.alfresco.sync.events.types.NodeUnLikedEvent) AuthorityRemovedFromGroupEvent(org.alfresco.sync.events.types.authority.AuthorityRemovedFromGroupEvent) NodeContentGetEvent(org.alfresco.sync.events.types.NodeContentGetEvent) LocalPermissionGrantedEvent(org.alfresco.sync.events.types.permission.LocalPermissionGrantedEvent) NodeUnlockedEvent(org.alfresco.sync.events.types.NodeUnlockedEvent) NodeAddedEvent(org.alfresco.sync.events.types.NodeAddedEvent) InheritPermissionsEnabledEvent(org.alfresco.sync.events.types.permission.InheritPermissionsEnabledEvent) NodeContentPutEvent(org.alfresco.sync.events.types.NodeContentPutEvent) AuthorityAddedToGroupEvent(org.alfresco.sync.events.types.authority.AuthorityAddedToGroupEvent) NodeCheckOutCancelledEvent(org.alfresco.sync.events.types.NodeCheckOutCancelledEvent) InheritPermissionsDisabledEvent(org.alfresco.sync.events.types.permission.InheritPermissionsDisabledEvent) NodeCheckedOutEvent(org.alfresco.sync.events.types.NodeCheckedOutEvent) Event(org.alfresco.sync.events.types.Event) NodeMovedEvent(org.alfresco.sync.events.types.NodeMovedEvent) NodeLikedEvent(org.alfresco.sync.events.types.NodeLikedEvent) RecordCreatedEvent(org.alfresco.sync.events.types.recordsmanagement.RecordCreatedEvent) NodeUpdatedEvent(org.alfresco.sync.events.types.NodeUpdatedEvent) NodeCommentedEvent(org.alfresco.sync.events.types.NodeCommentedEvent) NodeRenamedEvent(org.alfresco.sync.events.types.NodeRenamedEvent) NodeUnTaggedEvent(org.alfresco.sync.events.types.NodeUnTaggedEvent) FileClassifiedEvent(org.alfresco.sync.events.types.recordsmanagement.FileClassifiedEvent) NodeLockedEvent(org.alfresco.sync.events.types.NodeLockedEvent) NodeFavouritedEvent(org.alfresco.sync.events.types.NodeFavouritedEvent) GroupDeletedEvent(org.alfresco.sync.events.types.authority.GroupDeletedEvent) NodeRemovedEvent(org.alfresco.sync.events.types.NodeRemovedEvent) NodeCheckedInEvent(org.alfresco.sync.events.types.NodeCheckedInEvent) FileUnclassifiedEvent(org.alfresco.sync.events.types.recordsmanagement.FileUnclassifiedEvent) NodeTaggedEvent(org.alfresco.sync.events.types.NodeTaggedEvent) Client(org.alfresco.sync.repo.Client)

Example 12 with Client

use of org.alfresco.sync.repo.Client in project alfresco-repository by Alfresco.

the class EventsServiceImpl method grantLocalPermission.

@Override
public void grantLocalPermission(NodeRef nodeRef, String authority, String permission) {
    NodeInfo nodeInfo = getNodeInfo(nodeRef, LocalPermissionGrantedEvent.EVENT_TYPE);
    if (nodeInfo.checkNodeInfo()) {
        String username = AuthenticationUtil.getFullyAuthenticatedUser();
        String networkId = TenantUtil.getCurrentDomain();
        String name = nodeInfo.getName();
        String nodeId = 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();
        LocalPermissionGrantedEvent event = LocalPermissionGrantedEvent.builder().authority(authority).permission(permission).seqNumber(nextSequenceNumber()).name(name).txnId(txnId).timestamp(timestamp).networkId(networkId).siteId(siteId).nodeId(nodeId).nodeType(nodeType).paths(nodePaths).parentNodeIds(pathNodeIds).username(username).nodeModificationTime(modificationTime).client(alfrescoClient).aspects(aspects).nodeProperties(properties).build();
        sendEvent(event);
    }
}
Also used : Serializable(java.io.Serializable) LocalPermissionGrantedEvent(org.alfresco.sync.events.types.permission.LocalPermissionGrantedEvent) Collections.singletonList(java.util.Collections.singletonList) Arrays.asList(java.util.Arrays.asList) List(java.util.List) Client(org.alfresco.sync.repo.Client)

Example 13 with Client

use of org.alfresco.sync.repo.Client in project alfresco-repository by Alfresco.

the class AbstractEventsService method afterRollback.

@Override
public void afterRollback() {
    String txnId = AlfrescoTransactionSupport.getTransactionId();
    long timestamp = System.currentTimeMillis();
    String networkId = TenantUtil.getCurrentDomain();
    String username = AuthenticationUtil.getFullyAuthenticatedUser();
    Client alfrescoClient = getAlfrescoClient(null);
    Event event = new TransactionRolledBackEvent(nextSequenceNumber(), txnId, networkId, timestamp, username, alfrescoClient);
    if (logger.isDebugEnabled()) {
        logger.debug("sendEvent " + event);
    }
    try {
        messageProducer.send(event);
    } catch (MessagingException e) {
        // throw new AlfrescoRuntimeException("Failed to send event", e);
        // TODO just log for now. How to deal with no running ActiveMQ?
        logger.error("Failed to send event " + event, e);
    } finally {
        TxnEvents events = (TxnEvents) AlfrescoTransactionSupport.getResource(EVENTS_KEY);
        if (events != null) {
            events.clear();
        }
    }
}
Also used : MessagingException(org.gytheio.messaging.MessagingException) TransactionRolledBackEvent(org.alfresco.sync.events.types.TransactionRolledBackEvent) Event(org.alfresco.sync.events.types.Event) TransactionCommittedEvent(org.alfresco.sync.events.types.TransactionCommittedEvent) Client(org.alfresco.sync.repo.Client) TransactionRolledBackEvent(org.alfresco.sync.events.types.TransactionRolledBackEvent)

Example 14 with Client

use of org.alfresco.sync.repo.Client in project alfresco-repository by Alfresco.

the class AbstractEventsService method afterCommit.

@Override
public void afterCommit() {
    if (sendEventsBeforeCommit) {
        if (!shouldSendCommitEvent()) {
            return;
        }
        // send txn committed event
        String txnId = AlfrescoTransactionSupport.getTransactionId();
        long timestamp = System.currentTimeMillis();
        String networkId = TenantUtil.getCurrentDomain();
        String username = AuthenticationUtil.getFullyAuthenticatedUser();
        Client alfrescoClient = getAlfrescoClient(null);
        final Event event = new TransactionCommittedEvent(nextSequenceNumber(), txnId, networkId, timestamp, username, alfrescoClient);
        if (logger.isDebugEnabled()) {
            logger.debug("sendEvent " + event);
        }
        // Need to execute this in another read txn because Camel/JMS expects it (the config now seems to
        // require a txn)
        transactionService.getRetryingTransactionHelper().doInTransaction(new RetryingTransactionCallback<Void>() {

            @Override
            public Void execute() throws Throwable {
                messageProducer.send(event);
                return null;
            }
        }, true, false);
    } else {
        // send all events
        final TxnEvents transactionEvents = (TxnEvents) AlfrescoTransactionSupport.getResource(EVENTS_KEY);
        if (transactionEvents != null) {
            List<Event> filteredEvents = filterEventsBeforeSend(transactionEvents.getEvents());
            updateTransactionEvents(transactionEvents, filteredEvents);
            transactionEvents.sendEvents();
        }
    }
}
Also used : TransactionCommittedEvent(org.alfresco.sync.events.types.TransactionCommittedEvent) TransactionRolledBackEvent(org.alfresco.sync.events.types.TransactionRolledBackEvent) Event(org.alfresco.sync.events.types.Event) TransactionCommittedEvent(org.alfresco.sync.events.types.TransactionCommittedEvent) Client(org.alfresco.sync.repo.Client)

Example 15 with Client

use of org.alfresco.sync.repo.Client in project alfresco-repository by Alfresco.

the class AbstractEventsService method getNodeInfo.

protected NodeInfo getNodeInfo(final NodeRef nodeRef, final String eventType) {
    NodeInfo nodeInfo = AuthenticationUtil.runAsSystem(new RunAsWork<NodeInfo>() {

        public NodeInfo doWork() throws Exception {
            NodeInfo nodeInfo = null;
            String txnId = AlfrescoTransactionSupport.getTransactionId();
            if (!includeEventType(eventType)) {
                nodeInfo = new NodeInfo(eventType, null, null, nodeRef, null, null, null, null, null, null, null, null, false, null, null);
            } else if (nodeRef == null || !nodeService.exists(nodeRef)) {
                nodeInfo = new NodeInfo(eventType, txnId, null, nodeRef, null, null, null, null, null, null, null, false, true, false, null);
            } else {
                FileFilterMode.Client filterclient = FileFilterMode.getClient();
                Visibility visibility = hiddenAspect.getVisibility(filterclient, nodeRef);
                QName type = nodeService.getType(nodeRef);
                if (!typeMatches(type)) {
                    nodeInfo = new NodeInfo(eventType, txnId, null, nodeRef, null, null, null, null, null, null, null, true, true, false, false);
                } else if (!visibility.equals(Visibility.Visible)) {
                    nodeInfo = new NodeInfo(eventType, txnId, null, nodeRef, null, null, null, null, null, null, null, true, true, true, true);
                } else {
                    SiteInfo siteInfo = siteService.getSite(nodeRef);
                    String siteId = (siteInfo != null ? siteInfo.getShortName() : null);
                    Set<QName> aspects = nodeService.getAspects(nodeRef);
                    final String name = (String) nodeService.getProperty(nodeRef, ContentModel.PROP_NAME);
                    List<Path> nodePaths = Collections.singletonList(nodeService.getPath(nodeRef));
                    Date modifiedTime = (Date) nodeService.getProperty(nodeRef, ContentModel.PROP_MODIFIED);
                    Long modificationTimestamp = (modifiedTime != null ? modifiedTime.getTime() : null);
                    Status status = nodeService.getNodeStatus(nodeRef);
                    Client client = ClientUtil.from(filterclient);
                    nodeInfo = new NodeInfo(eventType, txnId, name, nodeRef, status, nodePaths, modificationTimestamp, type, aspects, siteId, client, true, true, true, true);
                }
            }
            return nodeInfo;
        }
    });
    return nodeInfo;
}
Also used : Status(org.alfresco.service.cmr.repository.NodeRef.Status) SiteInfo(org.alfresco.service.cmr.site.SiteInfo) Set(java.util.Set) HashSet(java.util.HashSet) QName(org.alfresco.service.namespace.QName) MessagingException(org.gytheio.messaging.MessagingException) Date(java.util.Date) Visibility(org.alfresco.repo.model.filefolder.HiddenAspect.Visibility) List(java.util.List) ArrayList(java.util.ArrayList) LinkedList(java.util.LinkedList) FileFilterMode(org.alfresco.util.FileFilterMode) Client(org.alfresco.sync.repo.Client)

Aggregations

Client (org.alfresco.sync.repo.Client)33 Event (org.alfresco.sync.events.types.Event)25 List (java.util.List)24 NodeRenamedEvent (org.alfresco.sync.events.types.NodeRenamedEvent)24 NodeUnFavouritedEvent (org.alfresco.sync.events.types.NodeUnFavouritedEvent)24 LocalPermissionGrantedEvent (org.alfresco.sync.events.types.permission.LocalPermissionGrantedEvent)24 Serializable (java.io.Serializable)23 Arrays.asList (java.util.Arrays.asList)23 Collections.singletonList (java.util.Collections.singletonList)23 NodeAddedEvent (org.alfresco.sync.events.types.NodeAddedEvent)23 NodeCheckOutCancelledEvent (org.alfresco.sync.events.types.NodeCheckOutCancelledEvent)23 NodeCheckedInEvent (org.alfresco.sync.events.types.NodeCheckedInEvent)23 NodeCheckedOutEvent (org.alfresco.sync.events.types.NodeCheckedOutEvent)23 NodeCommentedEvent (org.alfresco.sync.events.types.NodeCommentedEvent)23 NodeContentGetEvent (org.alfresco.sync.events.types.NodeContentGetEvent)23 NodeContentPutEvent (org.alfresco.sync.events.types.NodeContentPutEvent)23 NodeFavouritedEvent (org.alfresco.sync.events.types.NodeFavouritedEvent)23 NodeLikedEvent (org.alfresco.sync.events.types.NodeLikedEvent)23 NodeLockedEvent (org.alfresco.sync.events.types.NodeLockedEvent)23 NodeMovedEvent (org.alfresco.sync.events.types.NodeMovedEvent)23