summaryrefslogblamecommitdiffstats
path: root/application/modules/fbgui/controllers/IndexController.php
blob: 541f9070a8d848b1ba1c34638f44406580ebb826 (plain) (tree)
1
2
3
4
5
6
7
8
9



                                                          

                              


                                               


                                                                                             

     








                                                                                           
                                 
          
                                                               
                

                                              
                                     
                                                                                                                    
                        
                                                                                                    




                                                                       

                                                                                 

                                                          

                                                                                                                              
                                                         
                                                                                                     
                                 
                                                          
                                                                  


                                                          

                                                         

                                                                                        



                                                            























                                                                                                                         


                                                             
                                                
                                





                                                                                                        
                                



                                                                                         
                                                                                                       
                                                                                                                
                                                            
                                                                               






                                                                                                                                                                                                                                    
                                 

                             
                                





                                                                                                
                                


                                                                                                                                                                                                                                                        
                         

                     
                                                                             
                
        
     






                                                                                       
                                                                                                                        



                                                            
                                         

                                                                     
                                               
                
                                                   
                                                                                

                

 
<?php

class Fbgui_IndexController extends Zend_Controller_Action
{
	protected $membership;
	
    public function init()
    {
        /* Initialize action controller here */
        $membershipMapper = new Application_Model_MembershipMapper();
		$this->membership = new Application_Model_Membership();
		$membershipMapper->find($userIDsNamespace['membershipID'],$this->membership);
    }

    public function errorAction()
    {
    	$result = $this->_request->getParam('serialresult');
		if($result != ""){
			$pbsNotifier = new Pbs_Notifier();
			$this->view->notification = $pbsNotifier->notify('serial',$result);
		} 
    }
    
    public function indexAction()
    {     
		$mySession = new Zend_Session_Namespace('pbs');
		
		print_a($mySession->postdata);
		
		$d = new Pbs_Debug();
		$d->debug(array('FBGuiIndexController',$_SERVER['REMOTE_ADDR'],implode("\t",$mySession->postdata)));
			
        if(isset($mySession->postdata['bootisoID']) || isset($mySession->postdata['serialnumber'])){
        	// Create a session
        	$n = new Pbs_Session();
        	
        	$bootisomapper = new Application_Model_BootIsoMapper();
        	$bootiso = new Application_Model_BootIso();
        	if(isset($mySession->postdata['bootisoID'])){
    	    	$bootisomapper->find($mySession->postdata['bootisoID'],$bootiso);
	        	$groupID = $bootiso->getGroupID();
        	}
        	elseif(isset($mySession->postdata['serialnumber'])){   
        		$results = $bootisomapper->findBy(array('serialnumber' => $mySession->postdata['serialnumber']),true);
				if(count($results) == 0){
					$this->_redirect('/fbgui/index/error/serialresult/noserial');
				}
        		$bootiso->setOptions($results[0]);
        		$bootiso->setID($results[0]['bootisoID']);
	        	$groupID = $bootiso->getGroupID();
        	
        	}
        	
        	$client = new Application_Model_Client();
        	$client->setMacadress($mySession->postdata['mac']);       	
			$client->setHardwarehash($mySession->postdata['hardwarehash']);	
			$client->setGroupID($groupID);
			$client = $n->createClient($client);
			$clientID = $client->getID();
        	
        	$userIDsNamespace = Zend_Session::namespaceGet('userIDs');
        	
        	if(!isset($_SESSION['alphasessionID'])){
				$session = new Application_Model_Session();
				$session->setBootisoID($bootiso->getID());
				$session->setClientID($clientID);
				$session->setTime(time());
				if($this->membership->getID() != ''){
					$session->setMembershipID($this->membership->getID());
				}
		   		$session->setIp($_SERVER['REMOTE_ADDR']);
				$session = $n->createSession($session);
				$_SESSION['alphasessionID'] = $session->getAlphasessionID();				
			}
			else{
				$session = new Application_Model_Session();
				$sessionMapper = new Application_Model_SessionMapper();
				$sessions = $sessionMapper->findBy(array('alphasessionID'=>$_SESSION['alphasessionID']));
				$session = $sessions[0];
				if($this->membership->getID() != ''){
					$session->setMembershipID($this->membership->getID());
					$session->save();
				}
			}
			// Request Bootmenu
			$pbsFilter = new Pbs_Filter();
			$bootmenuID = $pbsFilter->evaluate();
			if($bootmenuID != null){
				
//					print_a('Debug Output',
//						'Session is now set',
//						'Your sessionID is '.$session->getID(),
//						'Your alphasessionID is '.$session->getAlphasessionID(),
//						'Your client is '.$session->getClientID(),
//						'goto bootmenu '.$bootmenuID);
				
				$bootmenuMapper = new Application_Model_BootMenuMapper();
				$bm = $bootmenuMapper->find($bootmenuID);
				$this->view->title = $bm->getTitle();
				
				$bootmenuentriesMapper = new Application_Model_BootMenuEntriesMapper();
				$res = $bootmenuentriesMapper->findBy(array('bootmenuID' => $bootmenuID),false);
				$this->view->entries = $res;
				if (!Zend_Auth::getInstance()->hasIdentity()) {
					#echo "<a href='/fbgui/auth/login/'>Goto Login to get your Bootmenu</a>";
					$pbsNotifier = new Pbs_Notifier();
					$this->view->notification = $pbsNotifier->notify("This is not your Bootmenu. You have to login to get your own Bootmenu.<br />Click here to <a href='/fbgui/auth/login/'>login</a>",'info');
				}
				if(Zend_Auth::getInstance()->hasIdentity() && $bm->MembershipID != $this->membership->getID() ){					
					$pbsNotifier = new Pbs_Notifier();
					$this->view->notification = $pbsNotifier->notify("This is not your Bootmenu. There is currently a BootMenu with a higher priority active.",'info');					
				}
			}
			else{
				
//				print_a('Debug Output',
//					'Session is now set',
//					'Your sessionID is '.$session->getID(),
//					'Your alphasessionID is '.$session->getAlphasessionID(),
//					'Your client is '.$session->getClientID(),
//					'there is no bootmenu for you');
				
				$pbsNotifier = new Pbs_Notifier();
				$this->view->notification = $pbsNotifier->notify("There is no BootMenu to show. Please log in to get your BootMenu.<br />Click here to <a href='/fbgui/auth/login/'>login</a>",'error');				
				
			}
		}
		else{
    		$this->_redirect('/fbgui/index/error/serialresult/noserial');
    	}    	
    	
    }
	public function startAction(){
		$bootmenuntryID = $this->_request->getParam('bme');
		$bootmenuentriesMapper = new Application_Model_BootMenuEntriesMapper();
		$bootmenuentry = new Application_Model_BootMenuEntries();
		$bootmenuentriesMapper->find($bootmenuntryID,$bootmenuentry);
		
		$sessionMapper = new Application_Model_SessionMapper();
		$session_k = $sessionMapper->findBy(array('alphasessionID' => $_SESSION['alphasessionID']),true);	
		
    	$session = new Application_Model_Session();	
		$session->setOptions($session_k[0]);
		$session->setID($session_k[0]['sessionID']);
		#print_a($bootmenuentry);
		$session->setBootmenuentryID($bootmenuntryID);
		$session->setBootosID($bootmenuentry->getBootosID());
		$sessionMapper->save($session);
		
		$this->view->host = '132.230.4.27';
		$this->view->alphaid = $_SESSION['alphasessionID'];		
		
	}

}