protected static function disconnect($args, $uid) { $esId = @$_POST['esId']; $member = new Db_Member(); $member->loadBy('member_id', $args['member_id']); if ($esId && $member->hasData()) { if ($member->getEsId() === $esId && $member->getStatus() == Db_Member::MEMBER_STATUS_ACTIVE) { $member->deactivate(array($args['member_id'])); $op = new Db_Op(); $op->removeMember($esId, $args['member_id']); } } \OCP\JSON::success(); }
protected static function disconnect($args, $uid) { $esId = @$_POST['esId']; $member = new Db_Member(); $member->loadBy('member_id', $args['member_id']); if ($esId && $member->hasData()) { $memberData = $member->getData(); if ($memberData['es_id'] === $esId) { $member->deactivate(array($args['member_id'])); $op = new Db_Op(); $op->removeMember($esId, $args['member_id']); } } \OCP\JSON::success(); }
} else { // no incoming ops (just checking for new ops...) $response["result"] = 'new_ops'; $response["ops"] = array(); $response["head_seq"] = $currentHead; } } else { // HEADs do not match $response["ops"] = $op->getOpsAfterJson($esId, $seqHead); $response["head_seq"] = $currentHead; $response["result"] = $hasOps ? 'conflict' : 'new_ops'; } $inactiveMembers = $member->updateByTimeout($esId); foreach ($inactiveMembers as $inactive) { $op->removeCursor($esId, $inactive); $op->removeMember($esId, $inactive); } } else { // Error - no seq_head passed throw new BadRequestException(); } break; default: $ex = new BadRequestException(); $ex->setBody($request->getRawRequest()); throw $ex; break; } \OCP\JSON::success($response); } catch (BadRequestException $e) { header('HTTP/1.1 400: BAD REQUEST');