X-Git-Url: https://git.cweiske.de/grauphel.git/blobdiff_plain/01aae57048be789c8102106833f734b382aafc2e..35be0ae011c70e766417b1e640a8dac03644a3b6:/controller/apicontroller.php diff --git a/controller/apicontroller.php b/controller/apicontroller.php index 691d8ab..ee16f80 100644 --- a/controller/apicontroller.php +++ b/controller/apicontroller.php @@ -105,6 +105,12 @@ class ApiController extends Controller 'api-version' => '1.0', ); + $client = $this->getClient(); + if ($client !== false) { + $data['oauth_authorize_url'] .= '?client=' + . urlencode($this->getNiceClientName($client)); + } + if ($authenticated) { $data['user-ref'] = array( 'api-ref' => $urlGen->getAbsoluteURL( @@ -327,6 +333,31 @@ class ApiController extends Controller return new JSONResponse($note); } + protected function getClient() + { + if (isset($_SERVER['HTTP_X_TOMBOY_CLIENT'])) { + $client = $_SERVER['HTTP_X_TOMBOY_CLIENT']; + $doublepos = strpos($client, ', org.tomdroid'); + if ($doublepos !== false) { + //https://bugs.launchpad.net/tomdroid/+bug/1375436 + //X-Tomboy-Client header is sent twice + $client = substr($client, 0, $doublepos); + } + return $client; + } + + return false; + } + + protected function getNiceClientName($client) + { + if (substr($client, 0, 12) == 'org.tomdroid') { + //org.tomdroid v0.7.5, build 14, Android v4.4.2, innotek GmbH/VirtualBox + return 'Tomdroid'; + } + return $client; + } + /** * Checks if the given user is authorized (by oauth token or normal login) *