| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488 |
- <?php
- $generationTime = -microtime(true);
- //include functions
- require_once 'functions.php';
- //Set result array
- $result = array();
- //Get request method
- $method = $_SERVER['REQUEST_METHOD'];
- reset($_GET);
- $function = (key($_GET) ? str_replace("/","_",key($_GET)) : false);
- //Exit if $function is blank
- if($function === false){
- $result['status'] = "error";
- $result['statusText'] = "No API Path Supplied";
- exit(json_encode($result));
- }
- $result['request'] = key($_GET);
- switch ($function) {
- case 'v1_settings_page':
- switch ($method) {
- case 'GET':
- if(qualifyRequest(1)){
- $result['status'] = 'success';
- $result['statusText'] = 'success';
- $result['data'] = $pageSettings;
- writeLog('success', 'Admin Function - Accessed Settings Page', $GLOBALS['organizrUser']['username']);
- }else{
- $result['status'] = 'error';
- $result['statusText'] = 'API/Token invalid or not set';
- $result['data'] = null;
- writeLog('error', 'Admin Function - Tried to access Settings Page', $GLOBALS['organizrUser']['username']);
- }
- break;
- default:
- $result['status'] = 'error';
- $result['statusText'] = 'The function requested is not defined for method: '.$method;
- break;
- }
- break;
- case 'v1_settings_settings_logs':
- switch ($method) {
- case 'GET':
- if(qualifyRequest(1)){
- $result['status'] = 'success';
- $result['statusText'] = 'success';
- $result['data'] = $pageSettingsSettingsLogs;
- }else{
- $result['status'] = 'error';
- $result['statusText'] = 'API/Token invalid or not set';
- $result['data'] = null;
- }
- break;
- default:
- $result['status'] = 'error';
- $result['statusText'] = 'The function requested is not defined for method: '.$method;
- break;
- }
- break;
- case 'v1_settings_tab_editor_tabs':
- switch ($method) {
- case 'GET':
- if(qualifyRequest(1)){
- $result['status'] = 'success';
- $result['statusText'] = 'success';
- $result['data'] = $pageSettingsTabEditorTabs;
- }else{
- $result['status'] = 'error';
- $result['statusText'] = 'API/Token invalid or not set';
- $result['data'] = null;
- }
- break;
- case 'POST':
- if(qualifyRequest(1)){
- $result['status'] = 'success';
- $result['statusText'] = 'success';
- $result['data'] = editTabs($_POST);
- }else{
- $result['status'] = 'error';
- $result['statusText'] = 'API/Token invalid or not set';
- $result['data'] = null;
- }
- break;
- default:
- $result['status'] = 'error';
- $result['statusText'] = 'The function requested is not defined for method: '.$method;
- break;
- }
- break;
- case 'v1_settings_tab_editor_categories':
- switch ($method) {
- case 'GET':
- if(qualifyRequest(1)){
- $result['status'] = 'success';
- $result['statusText'] = 'success';
- $result['data'] = $pageSettingsTabEditorCategories;
- }else{
- $result['status'] = 'error';
- $result['statusText'] = 'API/Token invalid or not set';
- $result['data'] = null;
- }
- break;
- case 'POST':
- if(qualifyRequest(1)){
- $result['status'] = 'success';
- $result['statusText'] = 'success';
- $result['data'] = editCategories($_POST);
- }else{
- $result['status'] = 'error';
- $result['statusText'] = 'API/Token invalid or not set';
- $result['data'] = null;
- }
- break;
- default:
- $result['status'] = 'error';
- $result['statusText'] = 'The function requested is not defined for method: '.$method;
- break;
- }
- break;
- case 'v1_settings_user_manage_users':
- switch ($method) {
- case 'GET':
- if(qualifyRequest(1)){
- $result['status'] = 'success';
- $result['statusText'] = 'success';
- $result['data'] = $pageSettingsUserManageUsers;
- }else{
- $result['status'] = 'error';
- $result['statusText'] = 'API/Token invalid or not set';
- $result['data'] = null;
- }
- break;
- case 'POST':
- if(qualifyRequest(1)){
- $result['status'] = 'success';
- $result['statusText'] = 'success';
- $result['data'] = adminEditUser($_POST);
- }elseif(qualifyRequest(998)){
- $result['status'] = 'success';
- $result['statusText'] = 'success';
- $result['data'] = editUser($_POST);
- }else{
- $result['status'] = 'error';
- $result['statusText'] = 'API/Token invalid or not set';
- $result['data'] = null;
- }
- break;
- default:
- $result['status'] = 'error';
- $result['statusText'] = 'The function requested is not defined for method: '.$method;
- break;
- }
- break;
- case 'v1_settings_user_manage_groups':
- switch ($method) {
- case 'GET':
- if(qualifyRequest(1)){
- $result['status'] = 'success';
- $result['statusText'] = 'success';
- $result['data'] = $pageSettingsUserManageGroups;
- }else{
- $result['status'] = 'error';
- $result['statusText'] = 'API/Token invalid or not set';
- $result['data'] = null;
- }
- break;
- case 'POST':
- if(qualifyRequest(1)){
- $result['status'] = 'success';
- $result['statusText'] = 'success';
- $result['data'] = adminEditGroup($_POST);
- }else{
- $result['status'] = 'error';
- $result['statusText'] = 'API/Token invalid or not set';
- $result['data'] = null;
- }
- break;
- default:
- $result['status'] = 'error';
- $result['statusText'] = 'The function requested is not defined for method: '.$method;
- break;
- }
- break;
- case 'v1_wizard_page':
- switch ($method) {
- case 'GET':
- if(!file_exists('config'.DIRECTORY_SEPARATOR.'config.php')){
- $result['status'] = 'success';
- $result['statusText'] = 'success';
- $result['data'] = $pageWizard;
- }else{
- $result['status'] = 'error';
- $result['statusText'] = 'Wizard has already been run';
- $result['data'] = null;
- }
- break;
- default:
- $result['status'] = 'error';
- $result['statusText'] = 'The function requested is not defined for method: '.$method;
- break;
- }
- break;
- case 'v1_dependencies_page':
- switch ($method) {
- case 'GET':
- $result['status'] = 'success';
- $result['statusText'] = 'success';
- $result['data'] = $pageDependencies;
- break;
- default:
- $result['status'] = 'error';
- $result['statusText'] = 'The function requested is not defined for method: '.$method;
- break;
- }
- break;
- case 'v1_wizard_config':
- switch ($method) {
- case 'POST':
- if(!file_exists('config'.DIRECTORY_SEPARATOR.'config.php')){
- $result['status'] = 'success';
- $result['statusText'] = 'success';
- $result['data'] = wizardConfig($_POST);
- }else{
- $result['status'] = 'error';
- $result['statusText'] = 'Wizard has already been run';
- $result['data'] = null;
- }
- break;
- default:
- $result['status'] = 'error';
- $result['statusText'] = 'The function requested is not defined for method: '.$method;
- break;
- }
- break;
- case 'v1_login':
- switch ($method) {
- case 'POST':
- $result['status'] = 'success';
- $result['statusText'] = 'success';
- $result['data'] = login($_POST);
- break;
- default:
- $result['status'] = 'error';
- $result['statusText'] = 'The function requested is not defined for method: '.$method;
- break;
- }
- break;
- case 'v1_register':
- switch ($method) {
- case 'POST':
- $result['status'] = 'success';
- $result['statusText'] = 'success';
- $result['data'] = register($_POST);
- break;
- default:
- $result['status'] = 'error';
- $result['statusText'] = 'The function requested is not defined for method: '.$method;
- break;
- }
- break;
- case 'v1_login_page':
- switch ($method) {
- case 'GET':
- $result['status'] = 'success';
- $result['statusText'] = 'success';
- $result['data'] = $pageLogin;
- break;
- default:
- $result['status'] = 'error';
- $result['statusText'] = 'The function requested is not defined for method: '.$method;
- break;
- }
- break;
- case 'v1_lockscreen':
- switch ($method) {
- case 'GET':
- $result['status'] = 'success';
- $result['statusText'] = 'success';
- $result['data'] = $pageLockScreen;
- break;
- default:
- $result['status'] = 'error';
- $result['statusText'] = 'The function requested is not defined for method: '.$method;
- break;
- }
- break;
- case 'v1_login_log':
- switch ($method) {
- case 'GET':
- if(qualifyRequest(1)){
- $result['status'] = 'success';
- $result['statusText'] = 'success';
- $result['data'] = getLog('loginLog');
- }else{
- $result['status'] = 'error';
- $result['statusText'] = 'API/Token invalid or not set';
- $result['data'] = null;
- }
- break;
- default:
- $result['status'] = 'error';
- $result['statusText'] = 'The function requested is not defined for method: '.$method;
- break;
- }
- break;
- case 'v1_organizr_log':
- switch ($method) {
- case 'GET':
- if(qualifyRequest(1)){
- $result['status'] = 'success';
- $result['statusText'] = 'success';
- $result['data'] = getLog('org');
- }else{
- $result['status'] = 'error';
- $result['statusText'] = 'API/Token invalid or not set';
- $result['data'] = null;
- }
- break;
- default:
- $result['status'] = 'error';
- $result['statusText'] = 'The function requested is not defined for method: '.$method;
- break;
- }
- break;
- case 'v1_user_list':
- switch ($method) {
- case 'GET':
- if(qualifyRequest(1)){
- $result['status'] = 'success';
- $result['statusText'] = 'success';
- $result['data'] = allUsers();
- }else{
- $result['status'] = 'error';
- $result['statusText'] = 'API/Token invalid or not set';
- $result['data'] = null;
- }
- break;
- default:
- $result['status'] = 'error';
- $result['statusText'] = 'The function requested is not defined for method: '.$method;
- break;
- }
- break;
- case 'v1_tab_list':
- switch ($method) {
- case 'GET':
- if(qualifyRequest(1)){
- $result['status'] = 'success';
- $result['statusText'] = 'success';
- $result['data'] = allTabs();
- }else{
- $result['status'] = 'error';
- $result['statusText'] = 'API/Token invalid or not set';
- $result['data'] = null;
- }
- break;
- default:
- $result['status'] = 'error';
- $result['statusText'] = 'The function requested is not defined for method: '.$method;
- break;
- }
- break;
- case 'v1_user_edit':
- switch ($method) {
- case 'POST':
- if(qualifyRequest(1)){
- $result['status'] = 'success';
- $result['statusText'] = 'success';
- $result['data'] = adminEditUser($_POST);
- }elseif(qualifyRequest(998)){
- $result['status'] = 'success';
- $result['statusText'] = 'success';
- $result['data'] = editUser($_POST);
- }else{
- $result['status'] = 'error';
- $result['statusText'] = 'API/Token invalid or not set';
- $result['data'] = null;
- }
- break;
- default:
- $result['status'] = 'error';
- $result['statusText'] = 'The function requested is not defined for method: '.$method;
- break;
- }
- break;
- case 'v1_logout':
- switch ($method) {
- case 'GET':
- $result['status'] = 'success';
- $result['statusText'] = 'success';
- $result['data'] = logout();
- break;
- default:
- $result['status'] = 'error';
- $result['statusText'] = 'The function requested is not defined for method: '.$method;
- break;
- }
- break;
- case 'v1_launch_organizr':
- switch ($method) {
- case 'GET':
- $status = array();
- $result['status'] = 'success';
- $result['statusText'] = 'success';
- $status['status'] = organizrStatus();
- $status['user'] = $GLOBALS['organizrUser'];
- $status['categories'] = loadTabs()['categories'];
- $status['tabs'] = loadTabs()['tabs'];
- $result['data'] = $status;
- break;
- default:
- $result['status'] = 'error';
- $result['statusText'] = 'The function requested is not defined for method: '.$method;
- break;
- }
- break;
- case 'v1_auth':
- switch ($method) {
- case 'GET':
- auth();
- break;
- default:
- $result['status'] = 'error';
- $result['statusText'] = 'The function requested is not defined for method: '.$method;
- break;
- }
- break;
- case 'v1_plugin':
- switch ($method) {
- case 'GET':
- if(qualifyRequest(1)){
- $result['status'] = 'success';
- $result['statusText'] = 'success';
- $result['data'] = 'plugin admin';
- }elseif(qualifyRequest(998)){
- $result['status'] = 'success';
- $result['statusText'] = 'success';
- $result['data'] = 'plugin logged in';
- }elseif(qualifyRequest(999)){
- $result['status'] = 'success';
- $result['statusText'] = 'success';
- $result['data'] = 'plugin guest';
- }else{
- $result['status'] = 'error';
- $result['statusText'] = 'API/Token invalid or not set';
- $result['data'] = null;
- }
- break;
- case 'POST':
- if(qualifyRequest(1)){
- $result['status'] = 'success';
- $result['statusText'] = 'success';
- $result['data'] = 'plugin admin';
- }elseif(qualifyRequest(998)){
- $result['status'] = 'success';
- $result['statusText'] = 'success';
- $result['data'] = 'plugin logged in';
- }elseif(qualifyRequest(999)){
- $result['status'] = 'success';
- $result['statusText'] = 'success';
- $result['data'] = 'plugin guest';
- }else{
- $result['status'] = 'error';
- $result['statusText'] = 'API/Token invalid or not set';
- $result['data'] = null;
- }
- break;
- default:
- $result['status'] = 'error';
- $result['statusText'] = 'The function requested is not defined for method: '.$method;
- break;
- }
- break;
- default:
- //No Function Available
- $result['status'] = 'error';
- $result['statusText'] = 'function requested is not defined';
- break;
- }
- //Set Default Result
- if(!$result){
- $result['status'] = "error";
- $result['error'] = "An error has occurred";
- }
- $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));
|