diff options
Diffstat (limited to 'application/controllers/ResourceController.php')
| -rw-r--r-- | application/controllers/ResourceController.php | 39 |
1 files changed, 31 insertions, 8 deletions
diff --git a/application/controllers/ResourceController.php b/application/controllers/ResourceController.php index c172bf5..1c9425b 100644 --- a/application/controllers/ResourceController.php +++ b/application/controllers/ResourceController.php @@ -31,7 +31,7 @@ class ResourceController extends Zend_Controller_Action $bootmenuentry = new Application_Model_BootMenuEntries(); $bootmenuentryMapper = new Application_Model_BootMenuEntriesMapper(); - + $bootosMapper = new Application_Model_BootOsMapper(); $bootmenuentryMapper->find($bootmenuentryID, $bootmenuentry); $n = new Pbs_Session(); @@ -39,6 +39,7 @@ class ResourceController extends Zend_Controller_Action $session->setBootosID($bootmenuentry->getBootosID()) ->setBootmenuentryID($bootmenuentry->getID()) ->setTime(time()) + ->setMembershipID($bootosMapper->find($bootmenuentry->getBootmenuID())->getMembershipID()) ->setIp($_SERVER['REMOTE_ADDR']); $this->thisSession = $n->createSession($session); @@ -82,10 +83,32 @@ class ResourceController extends Zend_Controller_Action $bmm = new Application_Model_BootMenuEntriesMapper(); $bmm->find($bootmenuentryID,$bootmenuentry); - $configID = $bootmenuentry->ge(); - - if(is_dir("../resources/config/$configID/") && is_numeric($configID)){ - + $configID = $bootmenuentry->getConfigID(); + + $person = new Application_Model_Person(); + $personMapper = new Application_Model_PersonMapper(); + $membershipMapper = new Application_Model_MembershipMapper(); + $personID = $membershipMapper->find($this->thisSession->getMembershipID())->getPersonID(); + $person = $personMapper->find($personID); + $loginname = strtolower($person->getName()); + $loginname = preg_replace("!\s!","",$loginname); + + + if(is_dir("../resources/config/$configID/")){ + + $path_userconf = "../resources/config/$configID/".$this->thisSession->getMembershipID()."/"; + + if(!is_dir($path_userconf)){ + mkdir($path_userconf ,0777, true); + exec("tar -C $path_userconf -xvf ../resources/config/$configID/default.tgz"); + exec("cp ../resources/config/loginfiles/* $path_userconf/rootfs/etc/"); + exec("tar -C $path_userconf -xvf ../resources/config/$configID/default.tgz"); + exec("echo '$loginname:x:1000:1000:".$person->getName()." ".$person->getFirstname().",,,:/home/$loginname:/bin/bash' >> $path_userconf/rootfs/etc/passwd"); + exec("md5pass ".$person->getPassword(), $pwhash); + exec("echo '$loginname:$pwhash[0]:0:0:99999:7:::' >> $path_userconf/rootfs/etc/shadow"); + exec("echo 'mkdir /home/$loginname' >> $path_userconf/initramfs/postinit.local"); + } + header('Content-Type: application/x-gzip'); $content_disp = ( ereg('MSIE ([0-9].[0-9]{1,2})', $_SERVER['HTTP_USER_AGENT']) == 'IE') ? 'inline' : 'attachment'; header('Content-Disposition: ' . $content_disp . '; filename="default.tgz"'); @@ -93,7 +116,7 @@ class ResourceController extends Zend_Controller_Action header('Expires: 0'); // create the gzipped tarfile. - chdir("../resources/config/$configID/"); + chdir($path_userconf); passthru( "tar cz *"); } } @@ -164,7 +187,7 @@ class ResourceController extends Zend_Controller_Action 'kernel' => $this->generateURL('getkernel', 'alpha', $this->thisSession->getAlphasessionID(), "kernel"), 'initramfs' => $this->generateURL('getinitramfs', 'alpha', $this->thisSession->getAlphasessionID(), "initramfs"), 'kcl' => $this->generateURL('getkcl', 'alpha', $this->thisSession->getAlphasessionID(), "kcl.txt"), - 'config' => $this->thisSession->getAlphasessionID() + 'config' => $this->generateURL('getconfig', 'alpha', $this->thisSession->getAlphasessionID(), 'default.tgz') ); $result = $return_val; @@ -173,7 +196,7 @@ class ResourceController extends Zend_Controller_Action $result2 .= "<tr><td><b>kernel</b>: </td><td><a href=".$result['kernel'].">".$result['kernel']."<a></td></tr>"; $result2 .= "<tr><td><b>initramfs</b>: </td><td><a href=".$result['initramfs'].">".$result['initramfs']."<a></td></tr>"; $result2 .= "<tr><td><b>kcl</b>: </td><td><a href=".$result['kcl'].">".$result['kcl']."<a></td></tr>"; - $result2 .= "<tr><td><b>config</b>: </td><td>".$result['config']."</td></tr>"; + $result2 .= "<tr><td><b>config</b>: </td><td><a href=".$result['config'].">".$result['config']."<a></td></tr>"; $result2 .= "</table>"; echo $result2; } |
