summaryrefslogtreecommitdiffstats
path: root/application/controllers
diff options
context:
space:
mode:
authormichael pereira2011-04-25 11:40:40 +0200
committermichael pereira2011-04-25 11:40:40 +0200
commite2d929c54a0d951c9bae51df7df5178bf9f0066f (patch)
tree142a271540cb0467350c91d1818340b0b09c8b7f /application/controllers
parentauto-close removed, handled by fbgui now (diff)
downloadpbs2-e2d929c54a0d951c9bae51df7df5178bf9f0066f.tar.gz
pbs2-e2d929c54a0d951c9bae51df7df5178bf9f0066f.tar.xz
pbs2-e2d929c54a0d951c9bae51df7df5178bf9f0066f.zip
config fertig
Diffstat (limited to 'application/controllers')
-rw-r--r--application/controllers/ResourceController.php90
1 files changed, 57 insertions, 33 deletions
diff --git a/application/controllers/ResourceController.php b/application/controllers/ResourceController.php
index 6344a6e..d48867a 100644
--- a/application/controllers/ResourceController.php
+++ b/application/controllers/ResourceController.php
@@ -53,13 +53,13 @@ class ResourceController extends Zend_Controller_Action
$bootmenuentry = new Application_Model_BootMenuEntries();
$bootmenuentryMapper = new Application_Model_BootMenuEntriesMapper();
- $bootosMapper = new Application_Model_BootOsMapper();
+ $bootmenuMapper = new Application_Model_BootMenuMapper();
$bootmenuentryMapper->find($bootmenuentryID, $bootmenuentry);
$session->setBootosID($bootmenuentry->getBootosID())
->setBootmenuentryID($bootmenuentry->getID())
->setTime(time())
- ->setMembershipID($bootosMapper->find($bootmenuentry->getBootosID())->getMembershipID())
+ ->setMembershipID($bootmenuMapper->find($bootmenuentry->getBootmenuID())->getMembershipID())
->setIp($_SERVER['REMOTE_ADDR'])
->setAlphasessionID('0');
@@ -126,7 +126,8 @@ class ResourceController extends Zend_Controller_Action
$bootos->setCreated(time());
$bootos->setPublic('-1');
$bootosID = $bootosMapper->save($bootos);
-
+ $bootos->setID($bootosID);
+
$initpath = "../resources/bootos/".$bootosID."/initramfs/";
$kernelpath = "../resources/bootos/".$bootosID."/kernel/";
$configpath = "../resources/bootos/".$bootosID."/config/";
@@ -137,12 +138,15 @@ class ResourceController extends Zend_Controller_Action
if($_FILES['config']['name'] != ''){
move_uploaded_file($_FILES['config']['tmp_name'], $configpath."default.tgz");
+
}
- if($_FILES['config']['name'] != ''){
+ if($_FILES['kernel']['name'] != ''){
move_uploaded_file($_FILES['kernel']['tmp_name'], $kernelpath."kernel");
}
- if($_FILES['config']['name'] != ''){
+ if($_FILES['init']['name'] != ''){
move_uploaded_file($_FILES['init']['tmp_name'], $initpath."initramfs");
+ $newconfig = new Pbs_NewConfig();
+ $newconfig->createDefaultConfig($bootos);
}
header('HTTP/1.0 201 Bootos created');
@@ -205,11 +209,11 @@ class ResourceController extends Zend_Controller_Action
$bootos->setSource($_SERVER['REMOTE_ADDR']);
move_uploaded_file($_FILES['config']['tmp_name'], $configpath."default.tgz");
}
- if($_FILES['config']['name'] != ''){
+ if($_FILES['kernel']['name'] != ''){
$bootos->setSource($_SERVER['REMOTE_ADDR']);
move_uploaded_file($_FILES['kernel']['tmp_name'], $kernelpath."kernel");
}
- if($_FILES['config']['name'] != ''){
+ if($_FILES['init']['name'] != ''){
$bootos->setSource($_SERVER['REMOTE_ADDR']);
move_uploaded_file($_FILES['init']['tmp_name'], $initpath."initramfs");
}
@@ -381,40 +385,60 @@ class ResourceController extends Zend_Controller_Action
header('Pragma: no-cache');
header('Expires: 0');
- if($this->thisSession->getMembershipID() != null){
- if($configID == null)
- $configID = 'default';
- $path_userconf = "../resources/config/$bootosID/".$this->thisSession->getMembershipID()."/$configID/";
-
- if(!is_dir($path_userconf)){
-
+ if($configID == null){
+ chdir("../resources/bootos/$bootosID/config/");
+ passthru( "cat default.tgz");
+ }else{
+
+ $bootosuserMapper = new Application_Model_BootOsUserMapper();
+ $bootosuser = $bootosuserMapper->findBy(array('configID' => $configID));
+
+ $hash = md5(microtime(1));
+ $tmp_conf = "../resources/config/$hash";
+ mkdir($tmp_conf ,0777, true);
+ exec("tar -C $tmp_conf -xvf ../resources/bootos/$bootosID/config/default.tgz");
+ //exec("cp ../resources/config/loginfiles/* $path_userconf/rootfs/etc/");
+
+ if($this->thisSession->getMembershipID() != null){
$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);
-
- 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);
- // crypt(password, '$6$'.randomString(8).'$')
- exec("echo '$loginname:$pwhash[0]:0:0:99999:7:::' >> $path_userconf/rootfs/etc/shadow");
- exec("echo 'mkdir /home/$loginname' >> $path_userconf/initramfs/postinit.local");
+ $username = strtolower($person->getName());
+ $username = preg_replace("!\s!","",$username);
+ $userpassword = $person->getLoginPassword();
+ }
+
+ foreach($bootosuser as $user){
+ if($user->getLogin == '%username%'){
+ $loginname = $username;
+ }else{
+ $loginname = $user->getLogin();
+ }
+
+ if($user->getPassword == '%password%'){
+ $password = $userpassword;
+ }else{
+ $password = $user->getPassword();
+ }
+
+ if($user->getHometypeID() == 2){
+ $homepath = $user->getHomepath();
+ }elseif($user->getHometypeID() == 1){
+ $homepath = "/home/$loginname";
+ }else{
+ $homepath = "/home/$loginname";
+ }
+
+ exec("echo 'chroot /mnt useradd -d ".$homepath." -m -p '".$password."'".$loginname."' >> $tmp_conf/initramfs/postinit.local");
+
}
// create the gzipped tarfile.
- chdir($path_userconf);
+ chdir($tmp_conf);
passthru( "tar cz *");
- }else {
- if($configID == null)
- $configID = 'default';
- chdir("../resources/config/$configID/");
-
- passthru( "cat default.tgz");
+ exec("rm -rf $tmp_conf");
+
}
}else{
header('HTTP/1.0 404 Not Found');