/** * Read the user belonging to the incoming request and get his/her defaultDB. * * @return String $userdb */ public static function readDbFromRequest() { $app = \Slim\Slim::getInstance(); $oUser = new User(); $request = $app->request(); $public_key = $request->headers('X-PublicKey'); //get User array from sent public key $user = $oUser->getUserByPublicKey($public_key); $userdb = $oUser->setDefaultDatabase($user['LoginID']); if ($userdb != NULL) { return $userdb; } else { $response["error"] = true; $response["defaultdb"] = "Could not select database of user."; LogHelper::write("Could not select database, check if the user's DefaultDB is available.", $user['username']); RequestHelper::echoResponse(500, $response); $app->stop(); } }
use lib\LogHelper as Log; // API Versioning $app->group('/v1', function () use($app) { /** * GET route to export whole database to JSON * */ $app->get('/database/export', function () use($app) { //create empty user $oUser = new User(); //request header $request = $app->request(); $public_key = $request->headers('X-PublicKey'); //get User array from sent public key $user = $oUser->getUserByPublicKey($public_key); $userdb = $oUser->setDefaultDatabase($user['LoginID']); //get access level string of user $access_level = $oUser->getAccessLevel($user['LoginID']); //create new instance with the user specific database $tempTool = new DbExport($userdb); //read relevant table names with the user specific access level $export = $tempTool->readRelevantTables($access_level); $app->contentType('application/json;charset=utf-8'); echo json_encode($export); }); /** * GET route to export database meta information to JSON * */ $app->get('/database/scheme', function () use($app) { $userdb = R::readDbFromRequest();