コード例 #1
0
ファイル: Squid.php プロジェクト: azizjonm/app-web-proxy
 /**
  * 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());
     }
 }