예제 #1
0
 /** @function __construct() the constructor for this class.  Sets up when class is called.
  * @return void
  */
 public function __construct()
 {
     parent::__construct();
     header('X-Content-Type-Options: nosniff');
     header('Strict-Transport-Security: max-age=16070400; includeSubDomains');
     header('X-XSS-Protection: 1; mode=block');
     header('X-Frame-Options: deny');
     header('Cache-Control: no-cache');
     header("Content-type: Text/Plain");
     $this->FOGCore->valdata('peer_id', true);
     $this->FOGCore->valdata('port');
     $this->FOGCore->valdata('info_hash', true);
     // Make sure data is setup:
     !$_REQUEST['key'] ? $_REQUEST['key'] : '';
     $this->downloaded = !$_REQUEST['downloaded'] ? 0 : intval($_REQUEST['downloaded']);
     $this->uploaded = !$_REQUEST['uploaded'] ? 0 : intval($_REQUEST['uploaded']);
     $this->left = !$_REQUEST['left'] ? 0 : intval($_REQUEST['left']);
     $this->FOGCore->valdata('key');
     $this->checkPort();
     $this->peer = $this->PeerGen();
     $this->torrent = $this->TorrentGen();
     $this->peer_torrent = $this->PeerTorrentGen();
     // User Agent is required.
     !$_SERVER['HTTP_USER_AGENT'] ? $_SERVER['HTTP_USER_AGENT'] = 'N/A' : null;
     if ($_REQUEST['event'] && $_REQUEST['event'] === 'stopped') {
         $this->stopTorrent();
     }
     if ($_REQUEST['numwant'] && ctype_digit($_REQUEST['numwant']) && $_REQUEST['numwant'] <= $this->FOGCore->getSetting('FOG_TORRENT_PPR') && $_REQUEST['numwant'] >= 0) {
         $this->numwant = intval($_REQUEST['numwant']);
     }
     $this->doTheWork();
 }
예제 #2
0
 /** @function __construct() constructs the base elements
  * @return void
  */
 public function __construct()
 {
     parent::__construct();
     if (!$this->FOGUser) {
         $this->FOGUser = unserialize($_SESSION['FOG_USER']);
     }
 }
예제 #3
0
 public function __construct()
 {
     // FOGBase Constructor
     parent::__construct();
     // Save class & method values into class - used many times through out
     $this->classValue = $GLOBALS[$this->classVariable] ? preg_replace('#[^\\w]#', '_', urldecode($GLOBALS[$this->classVariable])) : (preg_match('#mobile#i', $_SERVER['PHP_SELF']) ? 'homes' : 'home');
     $this->methodValue = preg_replace('#[^\\w]#', '_', urldecode($GLOBALS[$this->methodVariable]));
     // No default value as we want to detect an empty string for 'list' or 'search' default page
     // Hook in to allow search pages to be adjusted as needed.
     $this->HookManager->processEvent('SEARCH_PAGES', array('searchPages' => &$this->searchPages));
 }
예제 #4
0
 /** __construct($mac)
 		Stores the MAC of which to system to wake.
 	*/
 public function __construct($mac)
 {
     parent::__construct();
     $this->arrMAC = array();
     foreach ((array) $mac as $MAC) {
         $MAC = $this->getClass('MACAddress', $MAC);
         if ($MAC->isValid()) {
             $this->arrMAC[] = $MAC->__toString();
         }
     }
 }
 /** __construct() initiates the database class
  * @return if the class is valid or not
  */
 public function __construct()
 {
     try {
         parent::__construct();
         if (!DATABASE_TYPE || !DATABASE_HOST || !DATABASE_USERNAME || !DATABASE_NAME) {
             throw new Exception('Configuration is missing an item');
         }
         $this->valid = $this;
     } catch (Exception $e) {
         $this->error('Failed: %s->%s(): Error: %s', array(get_class($this), __FUNCTION__, $e->getMessage()));
     }
 }
 public function __construct($id, $name, $port, $image, $eth, $clients, $imagetype, $osid)
 {
     parent::__construct();
     $this->intID = $id;
     $this->strName = $name;
     $this->intPort = $this->FOGCore->getSetting('FOG_MULTICAST_PORT_OVERRIDE') ? $this->FOGCore->getSetting('FOG_MULTICAST_PORT_OVERRIDE') : $port;
     $this->strImage = $image;
     $this->strEth = $eth;
     $this->intClients = $clients;
     $this->intImageType = $imagetype;
     $this->deathTime = null;
     $this->intOSID = $osid;
     $this->dubPercent = null;
 }
 /** __construct()
 		Different constructor from FOG Base
 	*/
 public function __construct()
 {
     // FOGBase contstructor
     parent::__construct();
     // Set child classes name
     $this->childClass = preg_replace('#_?Manager$#', '', get_class($this));
     // Get child class variables
     $this->classVariables = get_class_vars($this->childClass);
     // Set required child variable data
     $this->aliasedFields = $this->classVariables['aliasedFields'];
     $this->databaseTable = $this->classVariables['databaseTable'];
     $this->databaseFields = $this->classVariables['databaseFields'];
     $this->databaseFieldsFlipped = array_flip($this->databaseFields);
     $this->databaseFieldClassRelationships = $this->classVariables['databaseFieldClassRelationships'];
 }
 /** @param data
  * Initializer of the objects themselves.
  */
 public function __construct($data = '')
 {
     /** FOGBase constructor
      * Allows the rest of the base of fog to come
      * with the object begin called
      */
     parent::__construct();
     try {
         /** sets if to print controller debug information to screen/log/either/both*/
         $this->debug = false;
         /** sets if to print controller general information to screen/log/either/both*/
         $this->info = false;
         // Error checking
         if (!count($this->databaseFields)) {
             throw new Exception('No database fields defined for this class!');
         }
         // Flip database fields and common name - used multiple times
         $this->databaseFieldsFlipped = array_flip($this->databaseFields);
         // Created By
         if (array_key_exists('createdBy', $this->databaseFields) && !empty($_SESSION['FOG_USERNAME'])) {
             $this->set('createdBy', $this->DB->sanitize($_SESSION['FOG_USERNAME']));
         }
         if (array_key_exists('createdTime', $this->databaseFields)) {
             $this->set('createdTime', $this->nice_date()->format('Y-m-d H:i:s'));
         }
         // Add incoming data
         if (is_array($data)) {
             $this->data = $data;
         } else {
             if (is_numeric($data)) {
                 if ($data === 0 || $data < 0) {
                     throw new Exception(sprintf('No data passed, or less than zero, Value: %s', $data));
                 }
                 $this->set('id', $data)->load();
             }
         }
     } catch (Exception $e) {
         $this->error('Record not found, Error: %s', array($e->getMessage()));
     }
     return $this;
 }
예제 #9
0
 /** __construct() initiates the constructor of the pages */
 public function __construct($name = '')
 {
     $this->debug = false;
     $this->info = false;
     parent::__construct();
     if (!empty($name)) {
         $this->name = $name;
     }
     $this->title = $this->name;
     $this->delformat = "?node={$this->node}&sub=delete&{$this->id}={$_REQUEST[id]}";
     $this->linkformat = "?node={$this->node}&sub=edit&{$this->id}={$_REQUEST[id]}";
     $this->membership = "?node={$this->node}&sub=membership&{$this->id}={$_REQUEST[id]}";
     $this->request = $this->REQUEST = $this->DB->sanitize($_REQUEST);
     $this->REQUEST['id'] = $_REQUEST[$this->id];
     $this->request['id'] = $_REQUEST[$this->id];
     $this->post = $this->isPOSTRequest();
     $this->ajax = $this->isAJAXRequest();
     $this->childClass = preg_replace('#ManagementPage#', '', preg_replace('#Mobile#', '', get_class($this)));
     $this->menu = array('search' => $this->foglang['NewSearch'], 'list' => sprintf($this->foglang['ListAll'], _($this->childClass . 's')), 'add' => sprintf($this->foglang['CreateNew'], _($this->childClass)));
     $this->formAction = sprintf('%s?%s', $_SERVER['PHP_SELF'], $_SERVER['QUERY_STRING']);
     $this->HookManager->processEvent('SEARCH_PAGES', array('searchPages' => &$this->searchPages));
     $this->HookManager->processEvent('SUB_MENULINK_DATA', array('menu' => &$this->menu, 'submenu' => &$this->subMenu, 'id' => &$this->id, 'notes' => &$this->notes));
 }
 /** @function __construct the constructor to build the basic defaults
  * @return void
  */
 public function __construct()
 {
     parent::__construct();
     $this->handle = @curl_multi_init();
     $this->contextOptions = array(CURLOPT_HTTPGET => true, CURLOPT_FOLLOWLOCATION => true, CURLOPT_RETURNTRANSFER => true, CURLOPT_SSL_VERIFYPEER => false, CURLOPT_SSL_VERIFYHOST => false, CURLOPT_CONNECTTIMEOUT_MS => 10000, CURLOPT_TIMEOUT_MS => 10000, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 20, CURLOPT_HEADER => false);
 }
예제 #11
0
 public function __construct()
 {
     parent::__construct();
     $this->makeReport();
 }
예제 #12
0
 /** @function __construct() builds the menu base elements
  * @param $Host the host to work across or null otherwise
  * @return void
  */
 public function __construct($Host = null)
 {
     parent::__construct();
     $this->loglevel = 'loglevel=' . $this->FOGCore->getSetting('FOG_KERNEL_LOGLEVEL');
     // Setups of the basic construct for the menu system.
     $StorageNode = current($this->getClass('StorageNodeManager')->find(array('isEnabled' => 1, 'isMaster' => 1)));
     // Sets up the default values stored in the server. Lines 51 - 64
     $webserver = $this->FOGCore->resolveHostname($this->FOGCore->getSetting('FOG_WEB_HOST'));
     $webroot = '/' . ltrim(rtrim($this->FOGCore->getSetting('FOG_WEB_ROOT'), '/'), '/') . '/';
     $this->web = "{$webserver}{$webroot}";
     $this->bootexittype = $this->FOGCore->getSetting('FOG_BOOT_EXIT_TYPE') == 'exit' ? 'exit' : ($this->FOGCore->getSetting('FOG_BOOT_EXIT_TYPE') == 'sanboot' ? 'sanboot --no-describe --drive 0x80' : ($this->FOGCore->getSetting('FOG_BOOT_EXIT_TYPE') == 'grub' ? 'chain -ar http://' . rtrim($this->web, '/') . '/service/ipxe/grub.exe --config-file="rootnoverify (hd0);chainloader +1"' : 'exit'));
     $ramsize = $this->FOGCore->getSetting('FOG_KERNEL_RAMDISK_SIZE');
     $dns = $this->FOGCore->getSetting('FOG_PXE_IMAGE_DNSADDRESS');
     $keymap = $this->FOGCore->getSetting('FOG_KEYMAP');
     $memdisk = 'memdisk';
     $memtest = $this->FOGCore->getSetting('FOG_MEMTEST_KERNEL');
     // Default bzImage and imagefile based on arch received.
     $bzImage = $_REQUEST['arch'] == 'x86_64' ? $this->FOGCore->getSetting('FOG_TFTP_PXE_KERNEL') : $this->FOGCore->getSetting('FOG_TFTP_PXE_KERNEL_32');
     $kernel = $bzImage;
     $imagefile = $_REQUEST['arch'] == 'x86_64' ? $this->FOGCore->getSetting('FOG_PXE_BOOT_IMAGE') : $this->FOGCore->getSetting('FOG_PXE_BOOT_IMAGE_32');
     $initrd = $imagefile;
     // Adjust file info if host is valid.
     if ($Host && $Host->isValid()) {
         $Host->get('kernel') ? $bzImage = $Host->get('kernel') : null;
         $kernel = $bzImage;
         $this->HookManager->processEvent('BOOT_ITEM_NEW_SETTINGS', array('Host' => &$Host, 'StorageGroup' => &$StorageGroup, 'StorageNode' => &$StorageNode, 'memtest' => &$memtest, 'memdisk' => &$memdisk, 'bzImage' => &$bzImage, 'initrd' => &$initrd, 'webroot' => &$webroot, 'imagefile' => &$imagefile));
     }
     // Sets the key sequence.  Only used if the hidden menu option is selected.
     $keySequence = $this->FOGCore->getSetting('FOG_KEY_SEQUENCE');
     if ($keySequence) {
         $this->KS = new KeySequence($keySequence);
     }
     // menu Access sets if the menu is displayed.  Menu access is a url get variable if a user has specified hidden menu it will override if menuAccess is set.
     if (!$_REQUEST['menuAccess']) {
         $this->hiddenmenu = $this->FOGCore->getSetting('FOG_PXE_MENU_HIDDEN');
     }
     $timeout = ($this->hiddenmenu ? $this->FOGCore->getSetting('FOG_PXE_HIDDENMENU_TIMEOUT') : $this->FOGCore->getSetting('FOG_PXE_MENU_TIMEOUT')) * 1000;
     $this->timeout = $timeout;
     // Generate the URL to boot from.
     $this->booturl = "http://{$webserver}{$webroot}service";
     // Store the host call into class global.
     $this->Host = $Host;
     // Capone menu setup.
     $CaponePlugInst = $_SESSION['capone'];
     $DMISet = $CaponePlugInst ? $this->FOGCore->getSetting('FOG_PLUGIN_CAPONE_DMI') : false;
     // If it is installed store the needed elements into variables.
     if ($CaponePlugInst) {
         $this->storage = $this->FOGCore->resolveHostname($StorageNode->get('ip'));
         $this->path = $StorageNode->get('path');
         $this->shutdown = $this->FOGCore->getSetting('FOG_PLUGIN_CAPONE_SHUTDOWN');
     }
     // Create menu item if not exists and Capone is installed as well as the DMI is specified.
     if ($CaponePlugInst && $DMISet) {
         // Check for fog.capone if the pxe menu entry exists.
         $PXEMenuItem = current($this->getClass('PXEMenuOptionsManager')->find(array('name' => 'fog.capone')));
         // If it does exist, generate the updated arguments for each call.
         if ($PXEMenuItem && $PXEMenuItem->isValid()) {
             $PXEMenuItem->set('args', "mode=capone shutdown={$this->shutdown} storage={$this->storage}:{$this->path}");
         } else {
             $PXEMenuItem = new PXEMenuOptions(array('name' => 'fog.capone', 'description' => 'Capone Deploy', 'args' => "mode=capone shutdown={$this->shutdown} storage={$this->storage}:{$this->path}", 'params' => null, 'default' => '0', 'regMenu' => '2'));
         }
         $PXEMenuItem->save();
     }
     // Specify the default calls.
     $this->memdisk = "kernel {$memdisk}";
     $this->memtest = "initrd {$memtest}";
     $this->kernel = "kernel {$bzImage} {$this->loglevel} initrd={$initrd} root=/dev/ram0 rw ramdisk_size={$ramsize} keymap={$keymap} web={$webserver}{$webroot} consoleblank=0" . ($this->FOGCore->getSetting('FOG_KERNEL_DEBUG') ? ' debug' : '');
     $this->initrd = "imgfetch {$imagefile}";
     // Set the default line based on all the menu entries and only the one with the default set.
     $defMenuItem = current($this->getClass('PXEMenuOptionsManager')->find(array('default' => 1)));
     $this->defaultChoice = "choose --default " . ($defMenuItem && $defMenuItem->isValid() ? $defMenuItem->get('name') : 'fog.local') . (!$this->hiddenmenu ? " --timeout {$timeout}" : " --timeout 0") . ' target && goto ${target}';
     // Register the success of the boot to the database:
     $iPXE = current($this->getClass('iPXEManager')->find(array('product' => $_REQUEST['product'], 'manufacturer' => $_REQUEST['manufacturer'], 'file' => $_REQUEST['filename'])));
     if ($iPXE && $iPXE->isValid()) {
         if ($iPXE->get('failure')) {
             $iPXE->set('failure', 0);
         }
         if (!$iPXE->get('success')) {
             $iPXE->set('success', 1);
         }
         if (!$iPXE->get('version')) {
             $iPXE->set('version', $_REQUEST['ipxever']);
         }
     } else {
         if (!$iPXE || !$iPXE->isValid()) {
             $iPXE = new iPXE(array('product' => $_REQUEST['product'], 'manufacturer' => $_REQUEST['manufacturer'], 'mac' => $Host && $Host->isValid() ? $Host->get('mac') : 'no mac', 'success' => 1, 'file' => $_REQUEST['filename'], 'version' => $_REQUEST['ipxever']));
         }
     }
     $iPXE->save();
     if ($_REQUEST['username'] && $_REQUEST['password']) {
         $this->verifyCreds();
     } else {
         if ($_REQUEST['delconf']) {
             $this->delHost();
         } else {
             if ($_REQUEST['key']) {
                 $this->keyset();
             } else {
                 if ($_REQUEST['sessname']) {
                     $this->sesscheck();
                 } else {
                     if ($_REQUEST['aprvconf']) {
                         $this->approveHost();
                     } else {
                         if (!$Host || !$Host->isValid()) {
                             $this->printDefault();
                         } else {
                             $this->getTasking();
                         }
                     }
                 }
             }
         }
     }
 }
예제 #13
0
 /** __construct() initiates
  * @param $MAC the mac either string or object
  * @return void
  */
 public function __construct($MAC)
 {
     parent::__construct();
     $this->tmpMAC = $MAC;
     $this->setMAC();
 }
예제 #14
0
 public function __construct()
 {
     parent::__construct();
     while (@ob_end_clean()) {
     }
     $isMobile = preg_match('#/mobile/#i', @$_SERVER['PHP_SELF']);
     $dispTheme = 'css/' . ($_SESSION['theme'] ? $_SESSION['theme'] : 'default/fog.css');
     if (!file_exists(BASEPATH . '/' . $dispTheme)) {
         $dispTheme = 'css/default/fog.css';
     }
     if (!$isMobile) {
         $this->addCSS('css/jquery-ui.css');
         $this->addCSS('css/jquery.organicTabs.css');
         $this->addCSS($dispTheme);
     } else {
         $this->addCSS('css/main.css');
     }
     $this->addCSS('../management/css/font-awesome.css');
     $this->isHomepage = !$_REQUEST['node'] || in_array($_REQUEST['node'], array('home', 'dashboard', 'schemaupdater', 'client', 'logout', 'login')) || in_array($_REQUEST['sub'], array('configure', 'authorize')) || !$this->FOGUser || !$this->FOGUser->isLoggedIn();
     if ($this->FOGUser && $this->FOGUser->isLoggedIn()) {
         if (!$isMobile) {
             $this->main = array('home' => array($this->foglang['Home'], 'fa fa-home fa-2x'), 'user' => array($this->foglang['User Management'], 'fa fa-users fa-2x'), 'host' => array($this->foglang['Host Management'], 'fa fa-desktop fa-2x'), 'group' => array($this->foglang['Group Management'], 'fa fa-sitemap fa-2x'), 'image' => array($this->foglang['Image Management'], 'fa fa-picture-o fa-2x'), 'storage' => array($this->foglang['Storage Management'], 'fa fa-download fa-2x'), 'snapin' => array($this->foglang['Snapin Management'], 'fa fa-files-o fa-2x'), 'printer' => array($this->foglang['Printer Management'], 'fa fa-print fa-2x'), 'service' => array($this->foglang['Service Configuration'], 'fa fa-cogs fa-2x'), 'task' => array($this->foglang['Task Management'], 'fa fa-tasks fa-2x'), 'report' => array($this->foglang['Report Management'], 'fa fa-file-text fa-2x'), 'about' => array($this->foglang['FOG Configuration'], 'fa fa-wrench fa-2x'), $_SESSION['PLUGSON'] ? 'plugin' : '' => $_SESSION['PLUGSON'] ? array($this->foglang['Plugin Management'], 'fa fa-cog fa-2x') : '', 'logout' => array($this->foglang['Logout'], 'fa fa-sign-out fa-2x'));
         } else {
             $this->main = array('home' => array($this->foglang['Home'], 'fa fa-home fa-2x'), 'host' => array($this->foglang['Host Management'], 'fa fa-desktop fa-2x'), 'task' => array($this->foglang['Task Management'], 'fa fa-tasks fa-2x'), 'logout' => array($this->foglang['Logout'], 'fa fa-sign-out fa-2x'));
         }
         $this->main = array_unique(array_filter($this->main), SORT_REGULAR);
         $this->HookManager->processEvent('MAIN_MENU_DATA', array('main' => &$this->main));
         foreach ($this->main as $link => $title) {
             $links[] = !$isMobile ? $link : ($link != 'logout' ? $link . 's' : $link);
         }
         if (!$isMobile) {
             $links = array_merge((array) $links, array('hwinfo', 'client', 'schemaupdater'));
         }
         if ($_REQUEST['node'] && !in_array($_REQUEST['node'], $links)) {
             $this->FOGCore->redirect('index.php');
         }
         $this->menu = !$isMobile ? '<center><ul>' : '<div id="menuBar">';
         foreach ($this->main as $link => $title) {
             $activelink = !$isMobile ? $_REQUEST['node'] == $link || !$_REQUEST['node'] && $link == 'home' ? $activelink = 1 : 0 : ($_REQUEST['node'] == $link . 's' || !$_REQUEST['node'] && $link == 'home' ? 1 : 0);
             $this->menu .= !$isMobile ? sprintf('<li><a href="?node=%s" title="%s"%s><i class="%s"></i></a></li>', $link, $title[0], $activelink ? ' class="activelink"' : '', $title[1]) : sprintf('<a href="?node=%s"%s><i class="%s"></i></a>', $link != 'logout' ? $link . 's' : $link, $activelink ? ' class="activelink"' : '', $title[1]);
         }
         $this->menu .= !$isMobile ? '</ul></center>' : '</div>';
     }
     if ($this->FOGUser && $this->FOGUser->isLoggedIn() && !preg_match('#/mobile/#i', $_SERVER['PHP_SELF'])) {
         $files = array('js/jquery-latest.js', 'js/jquery-migrate-1.2.1.min.js', 'js/jquery.tipsy.js', 'js/jquery.progressbar.js', 'js/jquery.tmpl.js', 'js/jquery.organicTabs.js', 'js/jquery.placeholder.js', 'js/jquery.disableSelection.js', 'js/jquery-ui.min.js', 'js/flot/jquery.flot.js', 'js/flot/jquery.flot.time.js', 'js/flot/jquery.flot.pie.js', 'js/flot/jquery.flot.JUMlib.js', 'js/flot/jquery.flot.gantt.js', 'js/jquery-ui-timepicker-addon.js', 'js/hideShowPassword.min.js', 'js/fog/fog.js', 'js/fog/fog.main.js');
         if ($_REQUEST['sub'] == 'membership') {
             $_REQUEST['sub'] = 'edit';
         }
         $filepaths = array("js/fog/fog.{$_REQUEST['node']}.js", "js/fog/fog.{$_REQUEST['node']}.{$_REQUEST['sub']}.js");
         foreach ($filepaths as $jsFilepath) {
             if (file_exists($jsFilepath)) {
                 array_push($files, $jsFilepath);
             }
         }
         $pluginfilepaths = array(BASEPATH . "/lib/plugins/{$_REQUEST['node']}/js/fog.{$_REQUEST['node']}.js", BASEPATH . "/lib/plugins/{$_REQUEST['node']}/js/fog.{$_REQUEST['node']}.{$_REQUEST['sub']}.js");
         foreach ($pluginfilepaths as $pluginfilepath) {
             if (file_exists($pluginfilepath) && !file_exists("js/fog/" . basename($pluginfilepath))) {
                 $newfile = "js/fog/" . basename($pluginfilepath);
                 file_put_contents($newfile, file_get_contents($pluginfilepath));
             }
         }
         if ($this->isHomepage) {
             array_push($files, 'js/fog/fog.dashboard.js');
             if (preg_match('#MSIE [6|7|8|9|10|11]#', $_SERVER['HTTP_USER_AGENT'])) {
                 array_push($files, 'js/flot/excanvas.js');
             }
         }
     } else {
         if (!preg_match('#/mobile/#i', $_SERVER['PHP_SELF'])) {
             $files = array('js/jquery-latest.js', 'js/jquery.progressbar.js', 'js/fog/fog.js', 'js/fog/fog.login.js');
         }
     }
     foreach ((array) $files as $path) {
         if (file_exists($path)) {
             $this->addJavascript($path);
         }
     }
 }