diff options
| author | michael pereira | 2011-04-25 11:40:40 +0200 |
|---|---|---|
| committer | michael pereira | 2011-04-25 11:40:40 +0200 |
| commit | e2d929c54a0d951c9bae51df7df5178bf9f0066f (patch) | |
| tree | 142a271540cb0467350c91d1818340b0b09c8b7f /application/controllers | |
| parent | auto-close removed, handled by fbgui now (diff) | |
| download | pbs2-e2d929c54a0d951c9bae51df7df5178bf9f0066f.tar.gz pbs2-e2d929c54a0d951c9bae51df7df5178bf9f0066f.tar.xz pbs2-e2d929c54a0d951c9bae51df7df5178bf9f0066f.zip | |
config fertig
Diffstat (limited to 'application/controllers')
| -rw-r--r-- | application/controllers/ResourceController.php | 90 |
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'); |
