Fix 'not reg. as collab.' and 'undefined qt'

This commit is contained in:
Florent Galland
2013-03-08 23:14:57 +01:00
parent f33825e8c7
commit 2cf16de815
2 changed files with 45 additions and 25 deletions

View File

@@ -56,17 +56,11 @@
exit(formatJSEND('error', 'No filename specified in register'));
}
$query = array('user' => $_SESSION['user'], 'filename' => $_POST['filename']);
$entry = getDB()->select($query, 'registered');
if ($entry != null) {
echo formatJSEND('success', 'Already registered as collaborator for ' . $_POST['filename']);
$isRegistered = registerToFile($_SESSION['user'], $_POST['filename']);
if ($isRegistered) {
echo formatJSEND('success');
} else {
$entry = getDB()->create($query, 'registered');
if ($entry != null) {
echo formatJSEND('success');
} else {
echo formatJSEND('error', 'Unable to register as collaborator for ' . $_POST['filename']);
}
echo formatJSEND('error', 'Unable to register as collaborator for ' . $_POST['filename']);
}
break;
@@ -123,15 +117,20 @@
exit(formatJSEND('error', 'No selection specified in sendSelectionChange'));
}
if (isUserRegisteredForFile($_POST['filename'], $_SESSION['user'])) {
$selection = json_decode($_POST['selection']);
$query = array('user' => $_SESSION['user'], 'filename' => $_POST['filename']);
$entry = getDB()->create($query, 'selection');
$entry->put_value($selection);
echo formatJSEND('success');
} else {
echo formatJSEND('error', 'Not registered as collaborator for ' . $_POST['filename']);
/* If user is not already registerd for the given file, register him. */
if (!isUserRegisteredForFile($_POST['filename'], $_SESSION['user'])) {
$isRegistered = registerToFile($_POST['filename'], $_SESSION['user']);
if (!$isRegistered) {
echo formatJSEND('error', 'Unable to register as collaborator for ' . $_POST['filename']);
exit;
}
}
$selection = json_decode($_POST['selection']);
$query = array('user' => $_SESSION['user'], 'filename' => $_POST['filename']);
$entry = getDB()->create($query, 'selection');
$entry->put_value($selection);
echo formatJSEND('success');
break;
case 'sendDocumentChange':
@@ -378,6 +377,25 @@
}
}
/* Register as a collaborator for the given filename. Return false if
* failed. */
function registerToFile($user, $filename) {
$query = array('user' => $user, 'filename' => $filename);
$entry = getDB()->select($query, 'registered');
if ($entry != null) {
debug('Warning: already registered as collaborator for ' . $filename);
return true;
} else {
$entry = getDB()->create($query, 'registered');
if ($entry != null) {
return true;
} else {
debug('Error: unable to register as collaborator for ' . $filename);
return false;
}
}
}
/* Touch the heartbeat marker file for the given user. Return true on
* success, false on failure. */
function updateHeartbeatMarker($user) {