public function contactDeleted(PeopleEvent $e) { $contact = $e->getSource(); $sourceId = $contact->getRelation()->getSourceId(); $targetId = $contact->getRelation()->getTargetId(); $currentUserId = ProcManager::getInstance()->getCurrentProcess()->getLoginContext()->getEyeosUser()->getId(); $otherUser = $sourceId == $currentUserId ? $targetId : $sourceId; $state = $contact->getRelation()->getState(); if ($state == 'pending') { // Send Event to Receiver... $info = new EyeosEventNotification(); $info->setType('People_CancelRequest'); $info->setEventData($otherUser); $eventManager = new EventNotificationManager(); $eventManager->sendEventByType($info); } else { if ($state == 'accepted') { // end Event to Receiver... $info = new EyeosEventNotification(); $info->setType('People_DeleteContact'); $info->setEventData($otherUser); $eventManager = new EventNotificationManager(); $eventManager->sendEventByType($info); } } // Closing the relatives events... $info = new EyeosEventNotification(); $info->setType('People_RequestRelationshipReceiver'); $info->setSender($sourceId); $info->setReceiver($targetId); $info->setIsQuestion(1); $eventManager = new EventNotificationManager(); $eventsToRemove = $eventManager->searchEvents($info); foreach ($eventsToRemove as $event) { $eventManager->deleteEvent($event->getId()); } }
public function userWorkgroupAssignationUpdated(UMEvent $e) { if ($e->getSource() instanceof IUserWorkgroupAssignation) { $assignation = $e->getSource(); $oldAssignation = $e->getRelatedSource(); $userId = $assignation->getUserId(); $groupId = $assignation->getWorkgroupId(); if ($assignation->getStatus() === WorkgroupConstants::STATUS_BANNED) { $event1 = new EyeosEventNotification(); $event1->setType('Groups_BannedUser'); $event1->setEventData(array('userId' => $userId, 'groupId' => $groupId)); $eventManager = new EventNotificationManager(); //Send event to the owner $eventManager->sendEventByType($event1); //Send event to the banned user $event2 = new EyeosEventNotification(); $event2->setType('Groups_BannedUser'); $event2->setEventData(array('userId' => $userId, 'groupId' => $groupId)); $event2->setReceiver($userId); $eventManager->sendEventByType($event2); } if (($oldAssignation->getStatus() === WorkgroupConstants::STATUS_PENDING || $oldAssignation->getStatus() === WorkgroupConstants::STATUS_INVITED) && $assignation->getStatus() === WorkgroupConstants::STATUS_MEMBER) { $event = new EyeosEventNotification(); $event->setType('Groups_ConfirmedUser'); $event->setEventData($groupId); $event->setReceiver($userId); $eventManager = new EventNotificationManager(); $eventManager->sendEventByType($event); // Closing the relatives events in case of pending request... $eventData = serialize(array('groupId' => $groupId, 'userId' => $userId)); $info = new EyeosEventNotification(); $info->setType('Groups_RequestMembershipReceiver'); $info->setEventData($eventData); $info->setIsQuestion(1); $eventManager = new EventNotificationManager(); $eventsToRemove = $eventManager->searchEvents($info); foreach ($eventsToRemove as $event) { $abstractEvent = new EyeosEventNotification(); $abstractEvent->setEventInformation($event); $abstractEvent->setHasEnded(true); $eventManager->updateEventNotification($abstractEvent); } // Closing the relatives events in case of invited request... $eventData = serialize(array('groupId' => $groupId)); $info = new EyeosEventNotification(); $info->setType('Groups_InvitedUsersReceiver'); $info->setEventData($eventData); $info->setIsQuestion(1); $eventManager = new EventNotificationManager(); $eventsToRemove = $eventManager->searchEvents($info); foreach ($eventsToRemove as $event) { $abstractEvent = new EyeosEventNotification(); $abstractEvent->setEventInformation($event); $abstractEvent->setHasEnded(true); $eventManager->updateEventNotification($abstractEvent); } } $NetSyncMessage = new NetSyncMessage('NSGroup', 'userWorkgroupAssignationUpdated', $userId, $groupId); NetSyncController::getInstance()->send($NetSyncMessage); } }