also integrate Pwiki for those endpoints that do not actually output HTML but just...
authorRobert Kaiser <kairo@kairo.at>
Fri, 2 Dec 2016 17:05:50 +0000 (18:05 +0100)
committerRobert Kaiser <kairo@kairo.at>
Fri, 2 Dec 2016 17:05:50 +0000 (18:05 +0100)
app/api.php
app/authorize.php
app/authsystem.inc.php

index f51f20198eda8c59c146e24d858c8e50e777a192..4cdbe24e2416d0be92d516b197dd0425ad4abdc0 100644 (file)
@@ -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());
@@ -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']:''));
+}
 ?>
index c8f9b2153d46261041b1223343d3eabc533c757f..a37bd4a0f63aea6bd028830bffb5a5e0504a0c47 100644 (file)
@@ -125,6 +125,13 @@ if (!count($errors)) {
           $session = $utils->getLoginSession($user['id'], $session);
         }
       }
+      if ($settings['piwik_enabled']) {
+        // If we do not send out an HTML file, we need to do the Piwik tracking ourselves.
+        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']);
+        $piwikTracker->doTrackPageView('Handle Authorize Request');
+      }
       // Handle authorize request, forwarding code in GET parameters if the user has authorized your client.
       $server->handleAuthorizeRequest($request, $response, $is_authorized, $user['id']);
       /* For testing only
index 17ff7002557bf2ab0efcbe4b31c6a40cd54f42a5..d098af07e76c320a1a4c706b4da8ad813a634c6b 100644 (file)
@@ -48,7 +48,8 @@ textdomain($textdomain);
 // Sanitize settings.
 $settings['piwik_enabled'] = (@$settings['piwik_enabled']) ? true : false;
 $settings['piwik_site_id'] = intval(@$settings['piwik_site_id']);
-$settings['piwik_url'] = strlen($settings['piwik_url']) ? $settings['piwik_url'] : '/piwik/';
+$settings['piwik_url'] = strlen(@$settings['piwik_url']) ? $settings['piwik_url'] : '/piwik/';
+$settings['piwik_tracker_path'] = strlen(@$settings['piwik_tracker_path']) ? $settings['piwik_tracker_path'] : '../vendor/piwik/piwik-php-tracker/';
 
 /* Creating the DB tables:
 CREATE TABLE `auth_sessions` (