better login, don't prompt with basic auth popup, redirect to front page on 404 from api

This commit is contained in:
Hannes Mannerheim 2014-10-17 19:06:29 +02:00
parent 387ecc59f4
commit 4dca9463b4
3 changed files with 16 additions and 7 deletions

View File

@ -386,11 +386,11 @@ class QvitterAction extends ApiAction
<script type="text/javascript" src="<?php print $qvitterpath; ?>js/lib/jquery.minicolors.min.js"></script>
<script type="text/javascript" src="<?php print $qvitterpath; ?>js/lib/jquery.jWindowCrop.js"></script>
<script type="text/javascript" src="<?php print $qvitterpath; ?>js/lib/load-image.min.js"></script>
<script type="text/javascript" src="<?php print $qvitterpath; ?>js/dom-functions.js?v=25"></script>
<script type="text/javascript" src="<?php print $qvitterpath; ?>js/misc-functions.js?v=19"></script>
<script type="text/javascript" src="<?php print $qvitterpath; ?>js/ajax-functions.js?v=11"></script>
<script type="text/javascript" src="<?php print $qvitterpath; ?>js/dom-functions.js?v=26"></script>
<script type="text/javascript" src="<?php print $qvitterpath; ?>js/misc-functions.js?v=20"></script>
<script type="text/javascript" src="<?php print $qvitterpath; ?>js/ajax-functions.js?v=12"></script>
<script type="text/javascript" src="<?php print $qvitterpath; ?>js/lan.js?v=25"></script>
<script type="text/javascript" src="<?php print $qvitterpath; ?>js/qvitter.js?v=22"></script>
<script type="text/javascript" src="<?php print $qvitterpath; ?>js/qvitter.js?v=23"></script>
</body>
</html>

View File

@ -87,7 +87,8 @@ class ApiAuthAction extends ApiAction
// qvitterfix, accepts regular login session
if ($this->scoped) {
if (common_logged_in()) {
$this->scoped = Profile::current();
$this->auth_user = $this->scoped->getUser();
$this->access = self::READ_WRITE;
}
@ -290,7 +291,7 @@ class ApiAuthAction extends ApiAction
// show error if the user clicks 'cancel'
// TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel".
$this->clientError(_('Could not authenticate you.'), 401);
$this->clientError(_('Could not authenticate you.'), 400);
} elseif($required) {
@ -319,7 +320,7 @@ class ApiAuthAction extends ApiAction
);
$this->logAuthFailure($msg);
// TRANS: Client error thrown when authentication fails.
$this->clientError(_('Could not authenticate you.'), 401);
$this->clientError(_('Could not authenticate you.'), 400);
}
} else {

View File

@ -92,6 +92,14 @@ function getFromAPI(stream, actionOnSuccess) {
$.ajax({ url: window.apiRoot + stream + qOrAmp(stream) + 't=' + timeNow(),
type: "GET",
dataType: 'json',
statusCode: {
400:function() {
location.reload(); // we may have been logged out in another tab, reload page
},
404:function() {
window.location.replace(window.siteInstanceURL); // redirect to frontpage, probably when trying to access non-existing users
}
},
success: function(data) {
data = convertEmptyObjectToEmptyArray(data);