public static function __run(AppExecutionContext $context, MMapResponse $response) { $currentUser = $context->getProcess()->getLoginContext()->getEyeosUser(); $groups = UMManager::getInstance()->getAllGroupsByPrincipal($currentUser); $isAdmin = 0; if ($currentUser->getPrimaryGroupId() == 'eyeID_EyeosGroup_root' || $currentUser->getPrimaryGroupId() == 'eyeID_EyeosGroup_admin') { $isAdmin = 1; } else { foreach ($groups as $group) { if ($group->getId() == 'eyeID_EyeosGroup_admin') { $isAdmin = 1; } } } $context->getArgs()->offsetSet(0, $isAdmin); $eventManager = new EventNotificationManager(); $from = 0; $to = 1000; $result = $eventManager->getAllQuestionEvents($from, $to); $result = self::toArray($result); $context->getArgs()->offsetSet(1, $result); }
/** * Delete Events from the Framework * * @param array $param => array( * 'id' => String or Array * ) */ public static function deleteEvents($params) { if ($params === null || !isset($params['id']) || !is_int($params['id']) && !is_array($params['id'])) { throw new EyeInvalidArgumentException('Missing or invalid $params'); } //TODO: Delete the event from the database $eventManager = new EventNotificationManager(); $eventManager->deleteEvents($params['id']); }
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()); } }
/** * * @param array $params ( * 'userId' => String, * 'files' => Array * ) * @return <Array> */ public static function changePrivilege($params) { $toBeRemoved = false; $user = UMManager::getInstance()->getUserById($params['userId']); if ($params['operation'] == 'Viewer') { $perms = new SharePermission('read'); } else { if ($params['operation'] == 'Editor') { $perms = new SharePermission('read, write'); } else { if ($params['operation'] == 'Remove') { $toBeRemoved = true; } } } $files = array(); $paramsFiles = $params['files']; for ($i = 0; $i < count($paramsFiles); $i++) { $trueFile = FSI::getFile($paramsFiles[$i]); if ($toBeRemoved) { SharingManager::getInstance()->removeCollaborator($trueFile, $user); $files[] = self::getSharedInfo($trueFile); } else { try { SharingManager::getInstance()->addCollaborator($trueFile, $user, $perms); $files[] = self::getSharedInfo($trueFile); $info = new EyeosEventNotification(); $info->setType('Share_NewShare'); $info->setReceiver($params['userId']); $eventManager = new EventNotificationManager(); $eventManager->sendEventByType($info); } catch (EyeDBException $e) { SharingManager::getInstance()->updateCollaboratorPermission($trueFile, $user, $perms); $files[] = self::getSharedInfo($trueFile); } } } return $files; }
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); } }