diff options
author | Tudor Holton <tudor@tudorholton.com> | 2018-07-13 17:44:24 +1000 |
---|---|---|
committer | Tudor Holton <tudor@tudorholton.com> | 2018-07-13 17:44:24 +1000 |
commit | 81e287733d904e8f8fce1c91e42cf2933007c9cc (patch) | |
tree | 01146078eecd1a0fc610ae225192debed7925999 /endpoints/lib/config.php | |
parent | f3e62d8bce52f392b4faed4792e6e112d1777757 (diff) | |
parent | 3c61d5eae51e27082945f629d0076edf0c309f96 (diff) | |
download | phpvirtualbox-81e287733d904e8f8fce1c91e42cf2933007c9cc.zip phpvirtualbox-81e287733d904e8f8fce1c91e42cf2933007c9cc.tar.gz phpvirtualbox-81e287733d904e8f8fce1c91e42cf2933007c9cc.tar.bz2 |
Ready for release 5.2-1
Diffstat (limited to 'endpoints/lib/config.php')
-rw-r--r-- | endpoints/lib/config.php | 538 |
1 files changed, 269 insertions, 269 deletions
diff --git a/endpoints/lib/config.php b/endpoints/lib/config.php index 287bc89..5176416 100644 --- a/endpoints/lib/config.php +++ b/endpoints/lib/config.php @@ -1,269 +1,269 @@ -<?php
-/**
- * phpVirtualBox configuration class. Parses user configuration, applies
- * defaults, and sanitizes user values.
- *
- * @author Ian Moore (imoore76 at yahoo dot com)
- * @copyright Copyright (C) 2010-2015 Ian Moore (imoore76 at yahoo dot com)
- * @version $Id: config.php 595 2015-04-17 09:50:36Z imoore76 $
- * @package phpVirtualBox
- * @see config.php-example
- *
-*/
-
-/*
- * This version of phpVirtualBox
- */
-define('PHPVBOX_VER', '5.2-0');
-
-class phpVBoxConfigClass {
-
- /* DEFAULTS */
-
- /**
- * Default language
- * @var string
- */
- var $language = 'en';
-
- /**
- * Exclusively use phpVirtualBox groups rather than
- * VirtualBox groups
- */
- var $phpVboxGroups = false;
-
- /**
- * Preview screen width
- * @var integer
- */
- var $previewWidth = 180;
-
- /**
- * Aspect ratio of preview screen
- * @var float
- */
- var $previewAspectRatio = 1.6;
-
- /**
- * Allow users to delete media when it is removed
- * @var boolean
- */
- var $deleteOnRemove = true;
-
- /**
- * Restrict file / folder browsers to files ending in extensions found in this array
- * @var array
- */
- var $browserRestrictFiles = array('.iso','.vdi','.vmdk','.img','.bin','.vhd','.hdd','.ovf','.ova','.xml','.vbox','.cdr','.dmg','.ima','.dsk','.vfd');
-
- /**
- * Force file / folder browser to use local PHP functions rather than VirtualBox's IVFSExplorer.
- * If this is set to true, the assumption is made that the web server is on the same host as VirtualBox.
- * @var boolean
- */
- var $browserLocal = false;
-
- /**
- * List of console resolutions available on console tab
- * @var array
- */
- var $consoleResolutions = array('640x480','800x600','1024x768','1280x720','1440x900');
-
- /**
- * Maximum number of NICs displayed per VM
- * @var integer
- */
- var $nicMax = 4;
-
- /**
- * Max number of operations to keep in progress list
- * @var integer
- */
- var $maxProgressList = 5;
-
- /**
- * Enable custom icon per VM
- * @var boolean
- */
- var $enableCustomIcons = false;
-
- /**
- * true if there is no user supplied config.php found.
- * @var boolean
- */
- var $warnDefault = false;
-
- /**
- * Set the standard VRDE port number range to be used when
- * creating new VMs
- * @var string
- */
- var $vrdeports = '9000-9100';
-
- /**
- * Key used to uniquely identify the current server in this
- * instantiation of phpVBoxConfigClass.
- * Set in __construct()
- * @var string
- */
- var $key = null;
-
- /**
- * Auth library object instance. See lib/auth for classes.
- * Set in __construct() based on authLib config setting value.
- * @var phpvbAuth
- */
- var $auth = null;
-
- /**
- * Enable VirtualBox start / stop configuration.
- * Only available in Linux (I beleive)
- * @var boolean
- */
- var $vboxAutostartConfig = false;
-
- /**
- * Authentication capabilities provided by authentication module.
- * Set in __construct
- * @var phpvbAuthBuiltin::authCapabilities
- */
- var $authCapabilities = null;
-
- /**
- * Configuration passed to authentication module
- * @var array
- */
- var $authConfig = array();
-
- /**
- * Event listener timeout in seconds.
- * @var integer
- */
- var $eventListenerTimeout = 20;
-
- /**
- * Read user configuration, apply defaults, and do some sanity checking
- * @see vboxconnector
- */
- function __construct() {
-
- @include_once(dirname(dirname(dirname(__FILE__))).'/config.php');
-
- $ep = error_reporting(0);
-
- /* Apply object vars of configuration class to this class */
- if(class_exists('phpVBoxConfig')) {
- $c = new phpVBoxConfig();
- foreach(get_object_vars($c) as $k => $v) {
- // Safety checks
- if($k == 'browserRestrictFiles' && !is_array($v)) continue;
- if($k == 'consoleResolutions' && !is_array($v)) continue;
- if($k == 'browserRestrictFolders' && !is_array($v)) continue;
- $this->$k = $v;
- }
-
- /* User config.php does not exist. Send warning */
- } else {
- $this->warnDefault = true;
- }
-
- // Ignore any server settings if we have servers
- // in the servers array
- if(isset($this->servers) && is_array($this->servers) && count($this->servers) && is_array($this->servers[0])) {
- unset($this->location);
- unset($this->user);
- unset($this->pass);
- }
- // Set to selected server based on browser cookie
- if(isset($_COOKIE['vboxServer']) && isset($this->servers) && is_array($this->servers) && count($this->servers)) {
- foreach($this->servers as $s) {
- if($s['name'] == $_COOKIE['vboxServer']) {
- foreach($s as $k=>$v) $this->$k = $v;
- break;
- }
- }
- // If servers is not an array, set to empty array
- } elseif(!isset($this->servers) || !is_array($this->servers)) {
- $this->servers = array();
- }
- // We still have no server set, use the first one from
- // the servers array
- if(empty($this->location) && count($this->servers)) {
- foreach($this->servers[0] as $k=>$v) $this->$k = $v;
- }
- // Make sure name is set
- if(!isset($this->name) || !$this->name) {
- $this->name = parse_url($this->location);
- $this->name = $this->name['host'];
- }
-
- // Key used to uniquely identify this server in this
- // phpvirtualbox installation
- $this->setKey();
-
- // legacy rdpHost setting
- if(!empty($this->rdpHost) && empty($this->consoleHost))
- $this->consoleHost = $this->rdpHost;
-
- // Ensure authlib is set
- if(empty($this->authLib)) $this->authLib = 'Builtin';
- // include interface
- include_once(dirname(__FILE__).'/authinterface.php');
- include_once(dirname(__FILE__).'/auth/'.str_replace(array('.','/','\\'),'',$this->authLib).'.php');
-
- // Check for session functionality
- if(!function_exists('session_start')) $this->noAuth = true;
-
- $alib = "phpvbAuth{$this->authLib}";
- $this->auth = new $alib(@$this->authConfig);
- $this->authCapabilities = $this->auth->capabilities;
-
- /* Sanity checks */
- if(!@$this->nicMax)
- $this->nicMax = 4;
-
- $this->previewUpdateInterval = max(3, @$this->previewUpdateInterval);
-
- error_reporting($ep);
- }
-
- /**
- * Set VirtualBox server to use
- * @param string $server server from config.php $servers array
- */
- function setServer($server) {
- // do nothing if we are already using this server
- if($server == $this->name) return;
- foreach($this->servers as $s) {
- if($s['name'] == $server) {
- foreach($s as $k=>$v) $this->$k = $v;
- $this->setKey();
- break;
- }
- }
- }
-
- /**
- * Generate a key for current server settings and populate $this->key
- */
- function setKey() {
- $this->key = md5($this->location);
- }
-
- /**
- * Return the name of the server marked as the authentication master
- * @return string name of server marked as authMaster
- */
- function getServerAuthMaster() {
- foreach($this->servers as $s) {
- if($s['authMaster']) {
- return $s['name'];
- }
- }
- return @$this->servers[0]['name'];
- }
-
-}
-
-
-
+<?php +/** + * phpVirtualBox configuration class. Parses user configuration, applies + * defaults, and sanitizes user values. + * + * @author Ian Moore (imoore76 at yahoo dot com) + * @copyright Copyright (C) 2010-2015 Ian Moore (imoore76 at yahoo dot com) + * @version $Id: config.php 595 2015-04-17 09:50:36Z imoore76 $ + * @package phpVirtualBox + * @see config.php-example + * +*/ + +/* + * This version of phpVirtualBox + */ +define('PHPVBOX_VER', '5.2-0'); + +class phpVBoxConfigClass { + + /* DEFAULTS */ + + /** + * Default language + * @var string + */ + var $language = 'en'; + + /** + * Exclusively use phpVirtualBox groups rather than + * VirtualBox groups + */ + var $phpVboxGroups = false; + + /** + * Preview screen width + * @var integer + */ + var $previewWidth = 180; + + /** + * Aspect ratio of preview screen + * @var float + */ + var $previewAspectRatio = 1.6; + + /** + * Allow users to delete media when it is removed + * @var boolean + */ + var $deleteOnRemove = true; + + /** + * Restrict file / folder browsers to files ending in extensions found in this array + * @var array + */ + var $browserRestrictFiles = array('.iso','.vdi','.vmdk','.img','.bin','.vhd','.hdd','.ovf','.ova','.xml','.vbox','.cdr','.dmg','.ima','.dsk','.vfd'); + + /** + * Force file / folder browser to use local PHP functions rather than VirtualBox's IVFSExplorer. + * If this is set to true, the assumption is made that the web server is on the same host as VirtualBox. + * @var boolean + */ + var $browserLocal = false; + + /** + * List of console resolutions available on console tab + * @var array + */ + var $consoleResolutions = array('640x480','800x600','1024x768','1280x720','1440x900'); + + /** + * Maximum number of NICs displayed per VM + * @var integer + */ + var $nicMax = 4; + + /** + * Max number of operations to keep in progress list + * @var integer + */ + var $maxProgressList = 5; + + /** + * Enable custom icon per VM + * @var boolean + */ + var $enableCustomIcons = false; + + /** + * true if there is no user supplied config.php found. + * @var boolean + */ + var $warnDefault = false; + + /** + * Set the standard VRDE port number range to be used when + * creating new VMs + * @var string + */ + var $vrdeports = '9000-9100'; + + /** + * Key used to uniquely identify the current server in this + * instantiation of phpVBoxConfigClass. + * Set in __construct() + * @var string + */ + var $key = null; + + /** + * Auth library object instance. See lib/auth for classes. + * Set in __construct() based on authLib config setting value. + * @var phpvbAuth + */ + var $auth = null; + + /** + * Enable VirtualBox start / stop configuration. + * Only available in Linux (I beleive) + * @var boolean + */ + var $vboxAutostartConfig = false; + + /** + * Authentication capabilities provided by authentication module. + * Set in __construct + * @var phpvbAuthBuiltin::authCapabilities + */ + var $authCapabilities = null; + + /** + * Configuration passed to authentication module + * @var array + */ + var $authConfig = array(); + + /** + * Event listener timeout in seconds. + * @var integer + */ + var $eventListenerTimeout = 20; + + /** + * Read user configuration, apply defaults, and do some sanity checking + * @see vboxconnector + */ + function __construct() { + + @include_once(dirname(dirname(dirname(__FILE__))).'/config.php'); + + $ep = error_reporting(0); + + /* Apply object vars of configuration class to this class */ + if(class_exists('phpVBoxConfig')) { + $c = new phpVBoxConfig(); + foreach(get_object_vars($c) as $k => $v) { + // Safety checks + if($k == 'browserRestrictFiles' && !is_array($v)) continue; + if($k == 'consoleResolutions' && !is_array($v)) continue; + if($k == 'browserRestrictFolders' && !is_array($v)) continue; + $this->$k = $v; + } + + /* User config.php does not exist. Send warning */ + } else { + $this->warnDefault = true; + } + + // Ignore any server settings if we have servers + // in the servers array + if(isset($this->servers) && is_array($this->servers) && count($this->servers) && is_array($this->servers[0])) { + unset($this->location); + unset($this->user); + unset($this->pass); + } + // Set to selected server based on browser cookie + if(isset($_COOKIE['vboxServer']) && isset($this->servers) && is_array($this->servers) && count($this->servers)) { + foreach($this->servers as $s) { + if($s['name'] == $_COOKIE['vboxServer']) { + foreach($s as $k=>$v) $this->$k = $v; + break; + } + } + // If servers is not an array, set to empty array + } elseif(!isset($this->servers) || !is_array($this->servers)) { + $this->servers = array(); + } + // We still have no server set, use the first one from + // the servers array + if(empty($this->location) && count($this->servers)) { + foreach($this->servers[0] as $k=>$v) $this->$k = $v; + } + // Make sure name is set + if(!isset($this->name) || !$this->name) { + $this->name = parse_url($this->location); + $this->name = $this->name['host']; + } + + // Key used to uniquely identify this server in this + // phpvirtualbox installation + $this->setKey(); + + // legacy rdpHost setting + if(!empty($this->rdpHost) && empty($this->consoleHost)) + $this->consoleHost = $this->rdpHost; + + // Ensure authlib is set + if(empty($this->authLib)) $this->authLib = 'Builtin'; + // include interface + include_once(dirname(__FILE__).'/authinterface.php'); + include_once(dirname(__FILE__).'/auth/'.str_replace(array('.','/','\\'),'',$this->authLib).'.php'); + + // Check for session functionality + if(!function_exists('session_start')) $this->noAuth = true; + + $alib = "phpvbAuth{$this->authLib}"; + $this->auth = new $alib(@$this->authConfig); + $this->authCapabilities = $this->auth->capabilities; + + /* Sanity checks */ + if(!@$this->nicMax) + $this->nicMax = 4; + + $this->previewUpdateInterval = max(3, @$this->previewUpdateInterval); + + error_reporting($ep); + } + + /** + * Set VirtualBox server to use + * @param string $server server from config.php $servers array + */ + function setServer($server) { + // do nothing if we are already using this server + if($server == $this->name) return; + foreach($this->servers as $s) { + if($s['name'] == $server) { + foreach($s as $k=>$v) $this->$k = $v; + $this->setKey(); + break; + } + } + } + + /** + * Generate a key for current server settings and populate $this->key + */ + function setKey() { + $this->key = md5($this->location); + } + + /** + * Return the name of the server marked as the authentication master + * @return string name of server marked as authMaster + */ + function getServerAuthMaster() { + foreach($this->servers as $s) { + if($s['authMaster']) { + return $s['name']; + } + } + return @$this->servers[0]['name']; + } + +} + + + |