summaryrefslogtreecommitdiffstats
path: root/application/controllers/ResourceController.php
diff options
context:
space:
mode:
Diffstat (limited to 'application/controllers/ResourceController.php')
-rw-r--r--application/controllers/ResourceController.php39
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;
}