From: Christian Weiske Date: Mon, 29 Sep 2014 19:42:55 +0000 (+0200) Subject: Show client name in oauth authorization (works for tomdroid only) X-Git-Tag: v0.3.0~21 X-Git-Url: https://git.cweiske.de/grauphel.git/commitdiff_plain/35be0ae011c70e766417b1e640a8dac03644a3b6?ds=sidebyside Show client name in oauth authorization (works for tomdroid only) --- 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) * diff --git a/controller/oauthcontroller.php b/controller/oauthcontroller.php index 8672927..6ab17d2 100644 --- a/controller/oauthcontroller.php +++ b/controller/oauthcontroller.php @@ -118,10 +118,16 @@ class OauthController extends Controller return $token; } + $client = 'unknown'; + if (isset($_GET['client'])) { + $client = $_GET['client']; + } + $res = new TemplateResponse('grauphel', 'oauthAuthorize'); $res->setParams( array( 'oauth_token' => $token->tokenKey, + 'client' => $client, 'formaction' => $this->deps->urlGen->linkToRoute( 'grauphel.oauth.confirm' ), diff --git a/grauphel.css b/grauphel.css index 37360db..e31ed6d 100644 --- a/grauphel.css +++ b/grauphel.css @@ -37,3 +37,15 @@ .app-grauphel #app-content a.lined { text-decoration: underline; } + +.app-grauphel .oauth-authorize { + margin: 2ex; + text-align: center; +} +.app-grauphel .msg { + padding: 2ex; +} +.app-grauphel .buttons { + margin-top: 2ex; + text-align: center; +} \ No newline at end of file diff --git a/templates/oauthAuthorize.php b/templates/oauthAuthorize.php index 5d4023b..cab58ab 100644 --- a/templates/oauthAuthorize.php +++ b/templates/oauthAuthorize.php @@ -1,9 +1,14 @@ -
+ + -

- Shall application FIXME get full access to the notes? +

+ Shall application + + get full access to the notes?

- - +
+ + +