public function init()
 {
     global $CC_CONFIG;
     $isDemo = isset($CC_CONFIG['demo']) && $CC_CONFIG['demo'] == 1;
     $isStreamConfigable = Application_Model_Preference::GetEnableStreamConf() == "true";
     $isSaas = Application_Model_Preference::GetPlanLevel() == 'disabled' ? false : true;
     $defaultFade = Application_Model_Preference::GetDefaultTransitionFade();
     if ($defaultFade == "") {
         $defaultFade = '00.000000';
     }
     // automatic trasition on source disconnection
     $auto_transition = new Zend_Form_Element_Checkbox("auto_transition");
     $auto_transition->setLabel("Auto Switch Off")->setValue(Application_Model_Preference::GetAutoTransition())->setDecorators(array('ViewHelper'));
     $this->addElement($auto_transition);
     // automatic switch on upon source connection
     $auto_switch = new Zend_Form_Element_Checkbox("auto_switch");
     $auto_switch->setLabel("Auto Switch On")->setValue(Application_Model_Preference::GetAutoSwitch())->setDecorators(array('ViewHelper'));
     $this->addElement($auto_switch);
     // Default transition fade
     $transition_fade = new Zend_Form_Element_Text("transition_fade");
     $transition_fade->setLabel("Switch Transition Fade (s)")->setFilters(array('StringTrim'))->addValidator('regex', false, array('/^[0-9]{1,2}(\\.\\d{1,6})?$/', 'messages' => 'enter a time in seconds 00{.000000}'))->setValue($defaultFade)->setDecorators(array('ViewHelper'));
     $this->addElement($transition_fade);
     //Master username
     $master_username = new Zend_Form_Element_Text('master_username');
     $master_username->setAttrib('autocomplete', 'off')->setAllowEmpty(true)->setLabel('Master Username')->setFilters(array('StringTrim'))->setValue(Application_Model_Preference::GetLiveStreamMasterUsername())->setDecorators(array('ViewHelper'));
     $this->addElement($master_username);
     //Master password
     if ($isDemo) {
         $master_password = new Zend_Form_Element_Text('master_password');
     } else {
         $master_password = new Zend_Form_Element_Password('master_password');
         $master_password->setAttrib('renderPassword', 'true');
     }
     $master_password->setAttrib('autocomplete', 'off')->setAttrib('renderPassword', 'true')->setAllowEmpty(true)->setValue(Application_Model_Preference::GetLiveStreamMasterPassword())->setLabel('Master Password')->setFilters(array('StringTrim'))->setDecorators(array('ViewHelper'));
     $this->addElement($master_password);
     //Master source connection url
     $master_dj_connection_url = new Zend_Form_Element_Text('master_dj_connection_url');
     $master_dj_connection_url->setAttrib('readonly', true)->setLabel('Master Source Connection URL')->setValue(Application_Model_Preference::GetMasterDJSourceConnectionURL())->setDecorators(array('ViewHelper'));
     $this->addElement($master_dj_connection_url);
     //Show source connection url
     $live_dj_connection_url = new Zend_Form_Element_Text('live_dj_connection_url');
     $live_dj_connection_url->setAttrib('readonly', true)->setLabel('Show Source Connection URL')->setValue(Application_Model_Preference::GetLiveDJSourceConnectionURL())->setDecorators(array('ViewHelper'));
     $this->addElement($live_dj_connection_url);
     //liquidsoap harbor.input port
     if (!$isSaas) {
         $m_port = Application_Model_StreamSetting::getMasterLiveStreamPort();
         $master_dj_port = new Zend_Form_Element_Text('master_harbor_input_port');
         $master_dj_port->setLabel("Master Source Port")->setValue($m_port)->setValidators(array(new Zend_Validate_Between(array('min' => 1024, 'max' => 49151))))->addValidator('regex', false, array('pattern' => '/^[0-9]+$/', 'messages' => array('regexNotMatch' => 'Only numbers are allowed.')))->setDecorators(array('ViewHelper'));
         $this->addElement($master_dj_port);
         $m_mount = Application_Model_StreamSetting::getMasterLiveStreamMountPoint();
         $master_dj_mount = new Zend_Form_Element_Text('master_harbor_input_mount_point');
         $master_dj_mount->setLabel("Master Source Mount Point")->setValue($m_mount)->setValidators(array(array('regex', false, array('/^[^ &<>]+$/', 'messages' => 'Invalid character entered'))))->setDecorators(array('ViewHelper'));
         $this->addElement($master_dj_mount);
         //liquidsoap harbor.input port
         $l_port = Application_Model_StreamSetting::getDjLiveStreamPort();
         $live_dj_port = new Zend_Form_Element_Text('dj_harbor_input_port');
         $live_dj_port->setLabel("Show Source Port")->setValue($l_port)->setValidators(array(new Zend_Validate_Between(array('min' => 1024, 'max' => 49151))))->addValidator('regex', false, array('pattern' => '/^[0-9]+$/', 'messages' => array('regexNotMatch' => 'Only numbers are allowed.')))->setDecorators(array('ViewHelper'));
         $this->addElement($live_dj_port);
         $l_mount = Application_Model_StreamSetting::getDjLiveStreamMountPoint();
         $live_dj_mount = new Zend_Form_Element_Text('dj_harbor_input_mount_point');
         $live_dj_mount->setLabel("Show Source Mount Point")->setValue($l_mount)->setValidators(array(array('regex', false, array('/^[^ &<>]+$/', 'messages' => 'Invalid character entered'))))->setDecorators(array('ViewHelper'));
         $this->addElement($live_dj_mount);
     }
     // demo only code
     if (!$isStreamConfigable) {
         $elements = $this->getElements();
         foreach ($elements as $element) {
             if ($element->getType() != 'Zend_Form_Element_Hidden') {
                 $element->setAttrib("disabled", "disabled");
             }
         }
     }
 }
 public function checkLiveStreamAuthAction()
 {
     $request = $this->getRequest();
     $username = $request->getParam('username');
     $password = $request->getParam('password');
     $djtype = $request->getParam('djtype');
     if ($djtype == 'master') {
         //check against master
         if ($username == Application_Model_Preference::GetLiveStreamMasterUsername() && $password == Application_Model_Preference::GetLiveStreamMasterPassword()) {
             $this->view->msg = true;
         } else {
             $this->view->msg = false;
         }
     } elseif ($djtype == "dj") {
         //check against show dj auth
         $showInfo = Application_Model_Show::getCurrentShow();
         // there is current playing show
         if (isset($showInfo[0]['id'])) {
             $current_show_id = $showInfo[0]['id'];
             $CcShow = CcShowQuery::create()->findPK($current_show_id);
             // get custom pass info from the show
             $custom_user = $CcShow->getDbLiveStreamUser();
             $custom_pass = $CcShow->getDbLiveStreamPass();
             // get hosts ids
             $show = new Application_Model_Show($current_show_id);
             $hosts_ids = $show->getHostsIds();
             // check against hosts auth
             if ($CcShow->getDbLiveStreamUsingAirtimeAuth()) {
                 foreach ($hosts_ids as $host) {
                     $h = new Application_Model_User($host['subjs_id']);
                     if ($username == $h->getLogin() && md5($password) == $h->getPassword()) {
                         $this->view->msg = true;
                         return;
                     }
                 }
             }
             // check against custom auth
             if ($CcShow->getDbLiveStreamUsingCustomAuth()) {
                 if ($username == $custom_user && $password == $custom_pass) {
                     $this->view->msg = true;
                 } else {
                     $this->view->msg = false;
                 }
             } else {
                 $this->view->msg = false;
             }
         } else {
             // no show is currently playing
             $this->view->msg = false;
         }
     }
 }