Example #1
0
 /**
  * Enables/disables YouTube EDU ID
  *
  * @param string  $enable enable/disable YouTube EDU ID header
  * @param array   $id     YouTube EDU ID
  *
  * @return void
  * @throws Engine_Exception, Validation_Exception
  */
 public function set_youtube_edu($enable, $id)
 {
     clearos_profile(__METHOD__, __LINE__);
     if ($enable) {
         Validation_Exception::is_valid($this->validate_youtube_edu_id($id));
         $this->_delete_parameter('acl youtube dstdomain .youtube.com', self::FILE_ACLS_CONFIG);
         $file = new File(self::FILE_ACLS_CONFIG, TRUE);
         $file->delete_lines("/acl youtube dstdomain\\s+.*/");
         $file->add_lines("acl youtube dstdomain .youtube.com\n");
         $ecap_enable = 'ecap_enable on';
     } else {
         // Leave alone or Squid freaks out
         // $this->_delete_parameter('acl youtube dstdomain .youtube.com', self::FILE_ACLS_CONFIG);
         $ecap_enable = 'ecap_enable off';
     }
     $file = new File(self::FILE_ECAP_SQUID_CONFIG, TRUE);
     $file->replace_one_line("/^ecap_enable\\s*/i", "{$ecap_enable}\n");
     if (strlen($id)) {
         $file = new File(self::FILE_ECAP_XML_CONFIG, TRUE);
         $xml_source = $file->get_contents();
         $xml = simplexml_load_string($xml_source);
         if ($xml === FALSE) {
             return;
         }
         foreach ($xml->header as $i => $hdr) {
             if ($hdr['name'] != 'X-YouTube-Edu-Filter') {
                 continue;
             }
             $xml->header[0] = $id;
             break;
         }
         $file->delete_lines('/.*/');
         $file->add_lines($xml->asXML());
     }
 }
Example #2
0
 /**
  * Sets auto-configure state.
  *
  * @param boolean $state state
  *
  * @return void
  * @throws Engine_Exception, Validation_Exception
  */
 public function set_auto_configure_state($state)
 {
     clearos_profile(__METHOD__, __LINE__);
     $config_value = $state ? 'yes' : 'no';
     $file = new File(self::FILE_APP_CONFIG);
     if ($file->exists()) {
         $file->delete();
     }
     $file->create('root', 'root', '0644');
     $file->add_lines("auto_configure = {$config_value}\n");
 }
Example #3
0
 /**
  * Sets a parameter in the config file.
  *
  * @param string $key   name of the key in the config file
  * @param string $value value for the key
  *
  * @access private
  * @return void
  * @throws Engine_Exception
  */
 protected function _set_parameter($key, $value)
 {
     clearos_profile(__METHOD__, __LINE__);
     $file = new File(self::FILE_CONFIG);
     $match = $file->replace_lines("/^{$key}\\s*=/", "{$key}={$value}\n");
     if ($match === 0) {
         $match = $file->replace_lines("/^#\\s*{$key}\\s*=/", "{$key}={$value}\n");
         if ($match === 0) {
             $file->add_lines("{$key}={$value}\n");
         }
     }
     $this->is_loaded = FALSE;
 }