summaryrefslogblamecommitdiffstats
path: root/library/Pbs/NewMember.php
blob: 9deb933517f95a5089be3eaf2c4be46695bf429d (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
     









                                                                           
 
                     
 

























































                                                                                                             

 
  
<?php
/*
 * Copyright (c) 2011 - OpenSLX GmbH, RZ Uni Freiburg
 * This program is free software distributed under the GPL version 2.
 * See http://gpl.openslx.org/
 *
 * If you have any feedback please consult http://feedback.openslx.org/ and
 * send your suggestions, praise, or complaints to feedback@openslx.org
 *
 * General information about OpenSLX can be found at http://openslx.org/
 */

class Pbs_NewMember {

  public function createDefaults(Application_Model_Membership $membership) {
    $personMapper     = new Application_Model_PersonMapper();
    $bootmenuMapper     = new Application_Model_BootMenuMapper();
    $bootmenuentriesMapper  = new Application_Model_BootMenuEntriesMapper();
    $filterMapper       = new Application_Model_FilterMapper();
    $filterentriesMapper  = new Application_Model_FilterEntriesMapper();

    // First we copy the default bootmenu with all the entries
    $groupID = $membership->getGroupID();
    $person = $personMapper->find($membership->getPersonID());
    $personname = $person->getFirstName(). " " . $person->getName();

    $defaultBootmenu = $bootmenuMapper->findBy(array('groupID' => $groupID, 'defaultbootmenu' => '1'));
    $defaultBootmenu = $defaultBootmenu[0];

    $userBootmenu = new Application_Model_BootMenu();
    $userBootmenu->setID(null);
    $userBootmenu->setGroupID(null);
    $userBootmenu->setMembershipID($membership->getID());
    $userBootmenu->setTitle("BootMenu of ".$personname);
    $userBootmenu->setStartcounter(300);
    $userBootmenu->setCreated(time());
    $userBootmenu->setDefaultbootmenu(0);
    $userBootmenuID = $bootmenuMapper->save($userBootmenu);
    $userBootmenu->setID($userBootmenuID);

# print_a('userbootmenu',$userBootmenu);
    if($defaultBootmenu != '') {
      $bootmenuentries = $bootmenuentriesMapper->findBy(array('bootmenuID' => $defaultBootmenu->getID()));
      foreach($bootmenuentries as $bme) {
        $bme->setID(null);
        $bme->setBootmenuID($userBootmenuID);
        $bootmenuentriesMapper->save($bme);
#print_a('bootmenuentry',$bme);
      }
    }

    // Second we create a filter
    $filter = new Application_Model_Filter();
    $filter->setTitle("Filter of ".$personname);
    $filter->setDescription("This filter was automatically created to forward the user to his own bootmenu");
    $filter->setMembershipID($membership->getID());
    $filter->setGroupID($membership->getGroupID());
    $filter->setBootmenuID($userBootmenuID);
    $filter->setCreated(time());
    $filter->setPriority(25);
    $filterID = $filterMapper->save($filter);
# print_a('filter',$filter);

    $filterentry = new Application_Model_FilterEntries();
    $filterentry->setFilterID($filterID);
    $filterentry->setFiltertypeID(5);
    $filterentry->setFiltervalue($membership->getID());
    $filterentriesMapper->save($filterentry);
# print_a('filterentry',$filterentry);


  }
}

?>