/** * On user login, get user info and sitetree */ public function login($message = array()) { $socketSession = null; $data = $this->getMessage($message); $userdata = array(); $response = array('success' => 1); try { $userdata = $this->getUserData(); } catch (Exception $e) { // return failure $response['success'] = 0; $response['body'] = $e->getMessage(); } if (count($userdata) > 0 && SocketSession::get()->filter('MemberID', $userdata['ID'])->count() > 0) { $socketSession = SocketSession::get()->filter('MemberID', $userdata['ID'])->First(); } else { $socketSession = new SocketSession(); } // setup SocketSession with relevant data $socketSession->MemberID = $userdata['ID']; $socketSession->SocketID = $this->getMessageSocketID($message); $socketSession->PageID = 0; $socketSession->write(); SiteTreeOrigamiApi::emit_structure($data->socketId); ZMQInterface::emit('userdata', $userdata, $data->socketId); return $response; }
/** * Wrapper for updating sitetree functionality, * it's called on almost every action of an edit page form */ protected function updateSiteTree($record, $socketId = null) { // if it's a sitetree page then reset the sitetree cache // and re emit the sitetree refresh SiteTreeOrigamiApi::reset_cache(); SiteTreeOrigamiApi::emit_structure($socketId, $record); }