public static function getInstance() { if (self::$Instance === null) { self::$Instance = new NetSyncController(); } return self::$Instance; }
public function contactDeleted(PeopleEvent $e) { $sourceId = $e->getSource()->getRelation()->getSourceId(); $targetId = $e->getSource()->getRelation()->getTargetId(); $currentUserId = ProcManager::getInstance()->getCurrentProcess()->getLoginContext()->getEyeosUser()->getId(); $otherUser = $sourceId == $currentUserId ? $targetId : $sourceId; $NetSyncMessage = new NetSyncMessage('NSPeople', 'deleteContact', $otherUser, $currentUserId); NetSyncController::getInstance()->send($NetSyncMessage); }
public function processRequest(MMapRequest $request, MMapResponse $response) { $oauth_verifier = null; $oauth_token = null; if ($request->issetGET('oauth_verifier')) { $oauth_verifier = $request->getGET('oauth_verifier'); } if ($request->issetGET('oauth_token')) { $oauth_token = $request->getGET('oauth_token'); } if ($oauth_verifier && $oauth_token) { $response->getHeaders()->append('Content-type: text/html'); $body = '<html> <div id="logo_eyeos" style="margin: 0 auto;width:350"> <img src="eyeos/extern/images/logo-eyeos.jpg"/></div> <div style="margin: 0 auto;width:350;text-align:center"><span style="font-family:Verdana;font-size:20px;">Successful authentication.<br>Back to Eyeos.</span></div> </html>'; $response->getHeaders()->append('Content-Length: ' . strlen($body)); $response->getHeaders()->append('Accept-Ranges: bytes'); $response->getHeaders()->append('X-Pad: avoid browser bug'); $response->getHeaders()->append('Cache-Control: '); $response->getHeaders()->append('pragma: '); $response->setBody($body); try { $userRoot = UMManager::getInstance()->getUserByName('root'); } catch (EyeNoSuchUserException $e) { throw new EyeFailedLoginException('Unknown user root"' . '". Cannot proceed to login.', 0, $e); } $subject = new Subject(); $loginContext = new LoginContext('eyeos-login', $subject); $cred = new EyeosPasswordCredential(); $cred->setUsername('root'); $cred->setPassword($userRoot->getPassword(), false); $subject->getPrivateCredentials()->append($cred); $loginContext->login(); Kernel::enterSystemMode(); $appProcess = new Process('stacksync'); $appProcess->setPid('31338'); $mem = MemoryManager::getInstance(); $processTable = $mem->get('processTable', array()); $processTable[31338] = $appProcess; $mem->set('processTable', $processTable); $appProcess->setLoginContext($loginContext); ProcManager::getInstance()->setCurrentProcess($appProcess); kernel::exitSystemMode(); $token = new stdClass(); $token->oauth_verifier = $oauth_verifier; $token->oauth_token = $oauth_token; $group = UMManager::getInstance()->getGroupByName('users'); $users = UMManager::getInstance()->getAllUsersFromGroup($group); foreach ($users as $user) { $NetSyncMessage = new NetSyncMessage('cloud', 'token', $user->getId(), $token); 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) { $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); } } }
protected function notifyClosedPresence($presence) { $userId = $presence->getUserId(); $peopleController = PeopleController::getInstance(); $contacts = $peopleController->getAllContacts($userId); foreach ($contacts as $contact) { if ($contact->getRelation()->getSourceId() != $userId) { $contactId = $contact->getRelation()->getSourceId(); } else { $contactId = $contact->getRelation()->getTargetId(); } $NetSyncMessage = new NetSyncMessage('presence', 'userDisconnect', $contactId, $userId); NetSyncController::getInstance()->send($NetSyncMessage); } }
/** * Store an event on the database * * @param <EyeosEventNotification> $event */ public function sendEvent($event) { $this->getProvider()->storeEventNotification($event); //Notify to destination user to update his events information $data = $event->getAttributesMap(); if (isset($data['eventInformation'])) { $data = $data['eventInformation']; } $NetSyncMessage = new NetSyncMessage('events', 'newEvent', $event->getReceiver(), $data); 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); } }