aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Weiske <cweiske@cweiske.de>2014-09-29 21:42:55 +0200
committerChristian Weiske <cweiske@cweiske.de>2014-09-29 21:42:55 +0200
commit35be0ae011c70e766417b1e640a8dac03644a3b6 (patch)
treea1a19eaa48fc1f1b60bee373ffb4c54dfb173c31
parent01aae57048be789c8102106833f734b382aafc2e (diff)
downloadgrauphel-35be0ae011c70e766417b1e640a8dac03644a3b6.tar.gz
grauphel-35be0ae011c70e766417b1e640a8dac03644a3b6.zip
Show client name in oauth authorization (works for tomdroid only)
-rw-r--r--controller/apicontroller.php31
-rw-r--r--controller/oauthcontroller.php6
-rw-r--r--grauphel.css12
-rw-r--r--templates/oauthAuthorize.php15
4 files changed, 59 insertions, 5 deletions
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 @@
-<form method="post" action="<?php p($_['formaction']); ?>">
+<link rel="stylesheet" href="<?php p(OCP\Util::linkTo('grauphel','grauphel.css')); ?>" type="text/css"/>
+<form method="post" action="<?php p($_['formaction']); ?>" class="oauth-authorize">
<input type="hidden" value="<?php p($_['requesttoken']); ?>" name="requesttoken" />
<input type="hidden" value="<?php p($_['oauth_token']); ?>" name="oauth_token" />
- <p>
- Shall application FIXME get full access to the notes?
+ <p class="msg">
+ Shall application
+ <strong><?php p($_['client']); ?></strong>
+ get full access to the notes?
</p>
- <button type="submit" name="auth" value="ok">Yes, authorize</button>
- <button type="submit" name="auth" value="cancel">No, decline</button>
+ <div class="buttons">
+ <button type="submit" name="auth" value="ok">Yes, authorize</button>
+ <button type="submit" name="auth" value="cancel">No, decline</button>
+ </div>
</form>