示例#1
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) {
             $NetSyncMessage = new NetSyncMessage('NSGroup', 'bannedFromWorkgroup', $userId, $groupId);
             NetSyncController::getInstance()->send($NetSyncMessage);
         }
         if (($oldAssignation->getStatus() === WorkgroupConstants::STATUS_PENDING || $oldAssignation->getStatus() === WorkgroupConstants::STATUS_INVITED) && $assignation->getStatus() === WorkgroupConstants::STATUS_MEMBER) {
             $NetSyncMessage = new NetSyncMessage('NSGroup', 'confirmMembership', $userId, $groupId);
             NetSyncController::getInstance()->send($NetSyncMessage);
         }
     }
 }
 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);
     }
 }