/** * 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()); } }
/** * 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"); }
/** * 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; }