function __construct()
 {
     // Exits on OPTION call
     $this->_checkCORS();
     $this->config = file_get_contents(Config::get('auth')['dataporten']);
     // Sanity
     if ($this->config === false) {
         Response::error(404, 'Not Found: Dataporten config.');
     }
     // Dataporten username and pass
     $this->config = json_decode($this->config, true);
     // Exits on incorrect credentials
     $this->_checkGateKeeperCredentials();
     // Make sure we have a scope
     // (NOTE: 'basic' scope is implicit and not listed in HTTP_X_DATAPORTEN_SCOPES. This means that client MUST have access
     // to at least ONE extra custom scope).
     if (!isset($_SERVER["HTTP_X_DATAPORTEN_SCOPES"])) {
         Response::error(401, 'Unauthorized (missing scope)');
     }
     // Check that we got a username
     if (!isset($_SERVER["HTTP_X_DATAPORTEN_USERID_SEC"])) {
         Response::error(401, 'Unauthorized (user not found)');
     }
     // Check if user is member of MediasiteAdmin group
     $this->isOrgAdmin = $this->_getOrgAdminStatus();
     // Check that username exists and is a Feide one... Function will exit if not.
     //$this->_getFeideUsername();
 }
 public static function log($text)
 {
     if (Config::get('utils')['debug']) {
         $trace = debug_backtrace();
         $caller = $trace[1];
         error_log($caller['class'] . $caller['type'] . $caller['function'] . '::' . $caller['line'] . ': ' . $text);
     }
 }
 private function _loadConfig($configKey)
 {
     $this->config = file_get_contents(Config::get('auth')[$configKey]);
     // Sanity
     if ($this->config === false) {
         Response::error(404, 'Not Found: MySQL config [' . $configKey . ']');
     }
     // DB details
     return json_decode($this->config, true);
 }
 private function getConfig()
 {
     $this->config = file_get_contents(Config::get('auth')['relay_sql']);
     // Sanity
     if ($this->config === false) {
         Response::error(404, 'Not Found: SQL config.');
     }
     // Connect username and pass
     return json_decode($this->config, true);
 }
示例#5
0
<?php

use Relay\Conf\Config;
// For large mongo-requests...
// ini_set('memory_limit','512M');
//
$config_root = '/var/www/etc/techsmith-relay/';
Config::add(['router' => ['api_base_path' => '/api/techsmith-relay'], 'auth' => ['dataporten' => $config_root . 'dataporten_config.js', 'relay_sql' => $config_root . 'relay_config.js', 'relay_mongo' => $config_root . 'mongodb_config.js', 'relay_mysql_presdelete' => $config_root . 'relay_mysql_presdelete_config.js', 'relay_mysql_preshits' => $config_root . 'relay_mysql_preshits_config.js', 'relay_mysql_subscribers' => $config_root . 'relay_mysql_subscribers_config.js'], 'utils' => ['debug' => false], 'screencast' => ['base_url' => 'https://screencast.uninett.no', 'employee_url' => 'https://screencast.uninett.no/relay/ansatt/', 'student_url' => 'https://screencast.uninett.no/relay/student/', 'root_path' => '/var/www/mnt/relaymedia_cache/', 'employee_path' => '/var/www/mnt/relaymedia_cache/ansatt/', 'student_path' => '/var/www/mnt/relaymedia_cache/student/', 'delete_list' => '/var/www/mnt/relaymedia_cache/relaymedia_deletelist']]);
示例#6
0
###	   LOAD DEPENDENCIES	###
require_once 'relay/autoload.php';
use Relay\Api\Relay;
use Relay\Auth\Dataporten;
use Relay\Conf\Config;
use Relay\Tests\MongoTest;
use Relay\Utils\Response;
use Relay\Vendor\Router;
// Gatekeeper and provider of useful info
$dataporten = new Dataporten();
// Provides an interface to SQL, Mongo, FS classes
$relay = new Relay($dataporten);
### 	  ALTO ROUTER 		###
$router = new Router();
$router->addMatchTypes(array('user' => '[0-9A-Za-z.@]++', 'org' => '[0-9A-Za-z.]++', 'presentation' => '[0-9A-Za-z.]++'));
$router->setBasePath(Config::get('router')['api_base_path']);
// ---------------------- DEFINE ROUTES ----------------------
/**
 * GET all REST routes
 */
$router->map('GET', '/', function () {
    global $router;
    Response::result(array('status' => true, 'data' => $router->getRoutes()));
}, 'All available routes.');
// SERVICE ROUTES
$router->addRoutes([array('GET', '/service/version/', function () {
    global $relay;
    Response::result(array('status' => true, 'data' => $relay->sql()->getServiceVersion()));
}, 'Service version'), array('GET', '/service/info/', function () {
    global $relay;
    Response::result(array('status' => true, 'data' => $relay->sql()->getServiceInfo()));