X-Git-Url: https://git-public.kairo.at/?p=authserver.git;a=blobdiff_plain;f=app%2Fapi.php;h=10d43edd0d1461cb9119f1b08616642e245124b5;hp=f51f20198eda8c59c146e24d858c8e50e777a192;hb=3875e0fb8b2b31d82809bd20880f1d206db4cb2c;hpb=04116cc5dabb951023fb511fda0dc36956d6a84a diff --git a/app/api.php b/app/api.php index f51f201..10d43ed 100644 --- a/app/api.php +++ b/app/api.php @@ -9,6 +9,13 @@ // Include the common auth system files (including the OAuth2 Server object). require_once(__DIR__.'/authsystem.inc.php'); +if ($settings['piwik_enabled']) { + // We do not send out an HTML file, so we need to do the Piwik tracking ourselves. + // Init is done here, actual tracking before exit. + require_once($settings['piwik_tracker_path'].'PiwikTracker.php'); + PiwikTracker::$URL = ((strpos($settings['piwik_url'], '://') === false) ? 'http://localhost' : '' ).$settings['piwik_url']; + $piwikTracker = new PiwikTracker($idSite = $settings['piwik_site_id']); +} $errors = $utils->checkForSecureConnection(); $utils->sendSecurityHeaders(); @@ -18,6 +25,7 @@ if (!count($errors)) { $token_OK = $server->verifyResourceRequest(OAuth2\Request::createFromGlobals()); if (!$token_OK) { $server->getResponse()->send(); + if ($settings['piwik_enabled']) { $piwikTracker->doTrackPageView('API Request: Bad Token'); } exit(); } $token = $server->getAccessTokenData(OAuth2\Request::createFromGlobals()); @@ -59,7 +67,7 @@ if (!count($errors)) { 'error_description' => 'The user the access token is connected to was not recognized.'))); } else { - if (in_array($user['email'], $utils->client_reg_email_whitelist)) { + if (($utils->client_reg_email_whitelist === false) || (in_array($user['email'], $utils->client_reg_email_whitelist))) { if (strlen(@$_GET['client_id']) >= 5) { $result = $db->prepare('SELECT `client_id`,`user_id` FROM `oauth_clients` WHERE `client_id` = :clientid;'); $result->execute(array(':clientid' => $_GET['client_id'])); @@ -141,4 +149,7 @@ else { print(json_encode(array('error' => 'insecure_connection', 'error_description' => 'Your connection is insecure. The API can only be accessed on secure connections.'))); } +if ($settings['piwik_enabled']) { + $piwikTracker->doTrackPageView('API Request'.(strlen($token['scope'])?': '.$token['scope']:'')); +} ?>