Pārlūkot izejas kodu

fix php 5.6 error - catch all for error
allow api key thru GET
added pretty option to api
added GET to plugin api

causefx 8 gadi atpakaļ
vecāks
revīzija
17b6916296

+ 5 - 3
api/functions/organizr-functions.php

@@ -319,7 +319,9 @@ function qualifyRequest($accessLevelNeeded)
 
 function getUserLevel()
 {
-	$requesterToken = isset(getallheaders()['Token']) ? getallheaders()['Token'] : false;
+	// Grab token
+	//$requesterToken = isset(getallheaders()['Token']) ? getallheaders()['Token'] : false;
+	$requesterToken = isset(getallheaders()['Token']) ? getallheaders()['Token'] : (isset($_GET['apikey']) ? $_GET['apikey'] : false);
 	// Check token or API key
 	// If API key, return 0 for admin
 	if (strlen($requesterToken) == 20 && $requesterToken == $GLOBALS['organizrAPI']) {
@@ -356,12 +358,12 @@ function organizrStatus()
 	if (!file_exists('config' . DIRECTORY_SEPARATOR . 'config.php')) {
 		$status['status'] = "wizard";//wizard - ok for test
 	}
-	if (count($dependenciesInactive) > 0 || !is_writable(dirname(__DIR__, 2)) || !(version_compare(PHP_VERSION, '7.0.0') >= 0)) {
+	if (count($dependenciesInactive) > 0 || !is_writable(dirname(__DIR__, 2)) || !(version_compare(PHP_VERSION, $GLOBALS['minimumPHP']) >= 0)) {
 		$status['status'] = "dependencies";
 	}
 	$status['status'] = (!empty($status['status'])) ? $status['status'] : $status['status'] = "ok";
 	$status['writable'] = is_writable(dirname(__DIR__, 2)) ? 'yes' : 'no';
-	$status['minVersion'] = (version_compare(PHP_VERSION, '7.0.0') >= 0) ? 'yes' : 'no';
+	$status['minVersion'] = (version_compare(PHP_VERSION, $GLOBALS['minimumPHP']) >= 0) ? 'yes' : 'no';
 	$status['dependenciesActive'] = $dependenciesActive;
 	$status['dependenciesInactive'] = $dependenciesInactive;
 	$status['version'] = $GLOBALS['installedVersion'];

+ 5 - 0
api/functions/static-globals.php

@@ -3,6 +3,11 @@
 // Organizr Version
 $GLOBALS['installedVersion'] = '2.0.0-beta.200';
 // ===================================
+// Quick php Version check
+$GLOBALS['minimumPHP'] = '7.0.0';
+if (!(version_compare(PHP_VERSION, $GLOBALS['minimumPHP']) >= 0)) {
+	die('Organizr needs PHP Version: ' . $GLOBALS['minimumPHP'] . '<br/> You have PHP Version: ' . PHP_VERSION);
+}
 // Set GLOBALS from config file
 $GLOBALS['userConfigPath'] = dirname(__DIR__, 1) . DIRECTORY_SEPARATOR . 'config' . DIRECTORY_SEPARATOR . 'config.php';
 $GLOBALS['defaultConfigPath'] = dirname(__DIR__, 1) . DIRECTORY_SEPARATOR . 'config' . DIRECTORY_SEPARATOR . 'default.php';

+ 10 - 2
api/index.php

@@ -6,6 +6,7 @@ require_once 'functions.php';
 $result = array();
 //Get request method
 $method = $_SERVER['REQUEST_METHOD'];
+$pretty = isset($_GET['pretty']) ? true : false;
 reset($_GET);
 $function = (key($_GET) ? str_replace("/", "_", key($_GET)) : false);
 //Exit if $function is blank
@@ -15,6 +16,7 @@ if ($function === false) {
 	exit(json_encode($result));
 }
 $result['request'] = key($_GET);
+$result['params'] = $_POST;
 switch ($function) {
 	case 'v1_settings_page':
 		switch ($method) {
@@ -675,7 +677,7 @@ switch ($function) {
 			case 'POST':
 				$result['status'] = 'success';
 				$result['statusText'] = 'success';
-				$result['data'] = lock($_POST);
+				$result['data'] = lock();
 				break;
 			default:
 				$result['status'] = 'error';
@@ -981,6 +983,7 @@ switch ($function) {
 	case 'v1_plugin':
 		switch ($method) {
 			case 'POST':
+			case 'GET':
 				// Include all plugin api Calls
 				foreach (glob(__DIR__ . DIRECTORY_SEPARATOR . 'plugins' . DIRECTORY_SEPARATOR . 'api' . DIRECTORY_SEPARATOR . "*.php") as $filename) {
 					require_once $filename;
@@ -1057,4 +1060,9 @@ $result['generationDate'] = $GLOBALS['currentTime'];
 $generationTime += microtime(true);
 $result['generationTime'] = (sprintf('%f', $generationTime) * 1000) . 'ms';
 //return JSON array
-exit(json_encode($result, JSON_HEX_QUOT | JSON_HEX_TAG));
+if ($pretty) {
+	echo '<pre>' . json_encode($result, JSON_PRETTY_PRINT) . '</pre>';
+} else {
+	exit(json_encode($result, JSON_HEX_QUOT | JSON_HEX_TAG));
+}
+

+ 39 - 21
api/plugins/api/invites.php

@@ -1,24 +1,42 @@
 <?php
 if (isset($_POST['data']['plugin'])) {
-    switch ($_POST['data']['plugin']) {
-        case 'Invites/settings/get':
-            if (qualifyRequest(1)) {
-                $result['status'] = 'success';
-                $result['statusText'] = 'success';
-                $result['data'] = invitesGetSettings();
-            } else {
-                $result['status'] = 'error';
-                $result['statusText'] = 'API/Token invalid or not set';
-                $result['data'] = null;
-            }
-            break;
-        case 'Invites/codes':
-                $result['status'] = 'success';
-                $result['statusText'] = 'success';
-                $result['data'] = inviteCodes($_POST);
-            break;
-        default:
-            //DO NOTHING!!
-            break;
-    }
+	switch ($_POST['data']['plugin']) {
+		case 'Invites/settings/get':
+			if (qualifyRequest(1)) {
+				$result['status'] = 'success';
+				$result['statusText'] = 'success';
+				$result['data'] = invitesGetSettings();
+			} else {
+				$result['status'] = 'error';
+				$result['statusText'] = 'API/Token invalid or not set';
+				$result['data'] = null;
+			}
+			break;
+		case 'Invites/codes':
+			$result['status'] = 'success';
+			$result['statusText'] = 'success';
+			$result['data'] = inviteCodes($_POST);
+			break;
+		default:
+			//DO NOTHING!!
+			break;
+	}
 }
+if (isset($_GET['plugin']) && $_GET['plugin'] == 'Invites' && isset($_GET['cmd'])) {
+	switch ($_GET['cmd']) {
+		case 'Invites/settings/get':
+			if (qualifyRequest(1)) {
+				$result['status'] = 'success';
+				$result['statusText'] = 'success';
+				$result['data'] = invitesGetSettings();
+			} else {
+				$result['status'] = 'error';
+				$result['statusText'] = 'API/Token invalid or not set';
+				$result['data'] = null;
+			}
+			break;
+		default:
+			//Do NOTHING!
+			break;
+	}
+}

+ 67 - 49
api/plugins/api/php-mailer.php

@@ -1,52 +1,70 @@
 <?php
 if (isset($_POST['data']['plugin'])) {
-    switch ($_POST['data']['plugin']) {
-        case 'PHPMailer/settings/get':
-            if (qualifyRequest(1)) {
-                $result['status'] = 'success';
-                $result['statusText'] = 'success';
-                $result['data'] = phpmGetSettings();
-            } else {
-                $result['status'] = 'error';
-                $result['statusText'] = 'API/Token invalid or not set';
-                $result['data'] = null;
-            }
-            break;
-        case 'PHPMailer/send/test':
-            if (qualifyRequest(1)) {
-                $result['status'] = 'success';
-                $result['statusText'] = 'success';
-                $result['data'] = phpmSendTestEmail();
-            } else {
-                $result['status'] = 'error';
-                $result['statusText'] = 'API/Token invalid or not set';
-                $result['data'] = null;
-            }
-            break;
-        case 'PHPMailer/send/email':
-            if (qualifyRequest(1)) {
-                $result['status'] = 'success';
-                $result['statusText'] = 'success';
-                $result['data'] = phpmAdminSendEmail();
-            } else {
-                $result['status'] = 'error';
-                $result['statusText'] = 'API/Token invalid or not set';
-                $result['data'] = null;
-            }
-            break;
-        case 'PHPMailer/users/get':
-            if (qualifyRequest(1)) {
-                $result['status'] = 'success';
-                $result['statusText'] = 'success';
-                $result['data'] = getEmails();
-            } else {
-                $result['status'] = 'error';
-                $result['statusText'] = 'API/Token invalid or not set';
-                $result['data'] = null;
-            }
-                break;
-        default:
-            //DO NOTHING!!
-            break;
-    }
+	switch ($_POST['data']['plugin']) {
+		case 'PHPMailer/settings/get':
+			if (qualifyRequest(1)) {
+				$result['status'] = 'success';
+				$result['statusText'] = 'success';
+				$result['data'] = phpmGetSettings();
+			} else {
+				$result['status'] = 'error';
+				$result['statusText'] = 'API/Token invalid or not set';
+				$result['data'] = null;
+			}
+			break;
+		case 'PHPMailer/send/test':
+			if (qualifyRequest(1)) {
+				$result['status'] = 'success';
+				$result['statusText'] = 'success';
+				$result['data'] = phpmSendTestEmail();
+			} else {
+				$result['status'] = 'error';
+				$result['statusText'] = 'API/Token invalid or not set';
+				$result['data'] = null;
+			}
+			break;
+		case 'PHPMailer/send/email':
+			if (qualifyRequest(1)) {
+				$result['status'] = 'success';
+				$result['statusText'] = 'success';
+				$result['data'] = phpmAdminSendEmail();
+			} else {
+				$result['status'] = 'error';
+				$result['statusText'] = 'API/Token invalid or not set';
+				$result['data'] = null;
+			}
+			break;
+		case 'PHPMailer/users/get':
+			if (qualifyRequest(1)) {
+				$result['status'] = 'success';
+				$result['statusText'] = 'success';
+				$result['data'] = getEmails();
+			} else {
+				$result['status'] = 'error';
+				$result['statusText'] = 'API/Token invalid or not set';
+				$result['data'] = null;
+			}
+			break;
+		default:
+			//DO NOTHING!!
+			break;
+	}
 }
+if (isset($_GET['plugin']) && $_GET['plugin'] == 'PHPMailer' && isset($_GET['cmd'])) {
+	switch ($_GET['cmd']) {
+		case 'PHPMailer/settings/get':
+			if (qualifyRequest(1)) {
+				$result['status'] = 'success';
+				$result['statusText'] = 'success';
+				$result['data'] = phpmGetSettings();
+			} else {
+				$result['status'] = 'error';
+				$result['statusText'] = 'API/Token invalid or not set';
+				$result['data'] = null;
+			}
+			break;
+		default:
+			//Do NOTHING!
+			break;
+	}
+}