예제 #1
0
 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());
     }
 }
예제 #2
0
 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);
     }
 }