Esempio n. 1
0
<?php

//hier gaan we proberen van alle users op te halen uit de ldap die in een home wonen
//vervolgens gaan we zo proberen parsen (home en kamernummer) de gevallen die problemen
//geven worden geoutput.
//PAS OP: dit script is waarschijnlijk redelijk zwaar
require_once 'classes/Config.class.php';
require_once 'LDAP.class.php';
require_once 'Home.class.php';
session_start();
if ($_SESSION['ldapData'] == "") {
    //enkel de eerste keer alle data ophalen
    //data ophalen
    $ldap = new LdapRepair();
    $ldap->connect();
    $ldap->bind();
    $ldap->search("ugentdormpostaladdress=*HOME*");
    $data = $ldap->get_entries();
    $_SESSION['ldapData'] = $data;
} else {
    $data = $_SESSION['ldapData'];
}
//voor de statistiekjes
$aantal = sizeof($data);
$failed = 0;
$home = 0;
$kamer = 0;
//we itereren over de resultset
foreach ($data as $rij) {
    //we parsen de data
    $parse = parseData($rij);
 public function syncLDAP()
 {
     $l = new LdapRepair();
     $gegevens = $l->getUserInfo($this->gebruikersnaam);
     if ($gegevens['homeId'] == "" || $gegevens['homeId'] == "0") {
         //geen homebewoner meer
         self::setVerwijderd(1);
     }
     if ($gegevens['homeId'] != $this->homeId) {
         //andere home
         self::setHome(new Home($gegevens['homeId']));
     }
     if ($gegevens['kamer'] != $this->kamer->getKamernummerLang()) {
         //andere kamer
         self::setKamer(new Kamer($gegevens['kamer']));
     }
 }
Esempio n. 3
0
 /**
  * maak een auth object aan op je pagina om de gebruiker in te loggen
  * de $automatisch parameter geeft aan of de gebruiker vanzelf moet ingelogd worden
  *
  * @param boolean $automatisch als true: automatische redirect naar webauth
  */
 public function __construct($automatisch)
 {
     if (isset($_SESSION['userid'])) {
         //is de gebruiker ingelogd?
         $this->user = User::getUser($_SESSION['userid']);
         $this->isLoggedIn = true;
     } else {
         //de gebruiker is nog niet ingelogd
         if (isset($_GET['key'])) {
             //is hij aan het inloggen?
             //we beginnen met de key public key in te lezen
             $pubkey = openssl_get_publickey(file_get_contents('UGent.pub'));
             if (!$pubkey) {
                 //er loopt iets fout
                 throw new PublicKeyException();
             }
             //we doen wat hocuspocus met de key die we terug krijgen
             $ticket = $_GET['key'];
             $ticket = strtr($ticket, '*-.', '+/=');
             $ticket = base64_decode($ticket);
             if (openssl_public_decrypt($ticket, $data, $pubkey)) {
                 //decrypteren
                 $_data = explode(":", $data);
                 list($user, $time, $aid) = $_data;
                 //gedecrypteerde data verifieren
                 if ($aid == self::$aid) {
                     //klopt het application id?
                     if (time() - $time < self::$threshold) {
                         //is het geen oude key?
                         //zit de gebruiker al in onze databank?
                         $id = User::isExistingUser($user);
                         if ($id != 0) {
                             //als dat zo is maak zijn object aan
                             $this->user = User::getUser($id);
                             if ($this->user->isStudent()) {
                                 $this->user->syncLDAP();
                             }
                             //gegevens updaten als hij student is
                         } else {
                             //anders, haal zen gegevens uit de ldap
                             require_once 'classes/LDAP.class.php';
                             $ldap = new LdapRepair();
                             $data = $ldap->getUserInfo($user);
                             if (isset($data[home])) {
                                 $this->user = new Student("", $data['gebruikersnaam'], $data['voornaam'], $data['achternaam'], "", $data['email'], "nl", $data['homeId'], $data['kamer'], "");
                             } else {
                                 throw new KotadresException();
                             }
                         }
                         $_SESSION['userid'] = $this->user->getId();
                         $this->isLoggedIn = true;
                         //doorsturen naar de juiste pagina
                         if ($this->user->isStudent()) {
                             $_SESSION['taal'] = $this->user->getTaal();
                             echo "<meta http-equiv=\"Refresh\" content=\"0; URL=index.php\">";
                         } else {
                             if ($this->user->isPersoneel()) {
                                 $_SESSION['taal'] = "nl";
                                 echo "<meta http-equiv=\"Refresh\" content=\"0; URL=index.php\">";
                             } else {
                                 throw new Exception("De ingelogde gebruiker is geen student en geen geregistreerd personeelslid");
                             }
                         }
                         die;
                         //stoppen met de output
                     } else {
                         throw new InvalidKeyException("key is too old");
                     }
                 } else {
                     throw new InvalidKeyException("wrong application id");
                 }
             } else {
                 throw new PublicKeyException();
             }
         } else {
             //nog niet ingelogd en niet bezig, dus we zwieren hem naar webauth
             if (!isset($_SESSION['taal'])) {
                 $_SESSION['taal'] = "nl";
             }
             if ($automatisch) {
                 echo "<meta http-equiv=\"Refresh\" content=\"0; URL=" . self::getLoginURL() . "\">";
                 die;
                 //we stoppen de uitvoering
             }
         }
     }
 }
Esempio n. 4
0
require_once 'Status.class.php';
require_once 'Mailer.class.php';
require_once 'Student.class.php';
require_once 'Personeel.class.php';
require_once 'Home.class.php';
$from = "Online Herstelformulier <*****@*****.**>";
$email_student_subject_nl = "[Online herstelformulier] Controle herstelling";
$email_student_body_nl = "Beste,\n\nE�n van uw herstellingen werd een eindje geleden doorgegeven aan de hersteldienst. Graag hadden wij van u gehoord of deze herstelling uitgevoerd is en of u nog opmerkingen heeft. Met deze informatie kunnen we onze diensten verbeteren. Gelieve daarom in te loggen op https://herstelformulier.ugent.be en ze zo te evalueren.\n\nDank bij voorbaat,\nAfdeling Huisvesting.";
$email_student_subject_en = "[Online Repairform] Repair check";
$email_student_body_en = "Dear,\n\nWe notified the repairteam of the defects you reported and we still need to hear from you if the repairs were successfull. We can use this information to improve our service. Can you please login onto https://herstelformulier.ugent.be and evaluate them that way.\n\nThanks in advance,\nHousing Department.";
// overloop alle herstelformulieren die voldoen aan evaluatiecriteria
$list = Herstelformulier::getEvaluationList();
// mail user
foreach ($list as $formulier) {
    $student = $formulier->getStudent();
    $ldap = new LdapRepair();
    $userinfo = $ldap->getUserInfo($student->getGebruikersnaam());
    if (isset($userinfo['homeId'])) {
        // deze student zit hier nog
        $mailer = new Mailer();
        $mailer->setCc("bert.vandeghinste+herstel@gmail.com,mesuerebart+herstel@gmail.com");
        $mailer->setHTMLCharset("UTF-8");
        $mailer->setFrom($from);
        $email_student_subject = $student->getTaal() == "nl" ? $email_student_subject_nl : $email_student_subject_en;
        $email_student_body = $student->getTaal() == "nl" ? $email_student_body_nl : $email_student_body_en;
        $mailer->setSubject($email_student_subject);
        $mailer->setText($email_student_body);
        //$mailer->send(array($student->getEmail()));
    }
}
// doorzenden naar Homemanager als er nieuwe herstelformulieren zijn
Esempio n. 5
0
    die;
} else {
    $velden = json_decode(stripslashes($_GET["velden"]));
    $waarden = json_decode(stripslashes($_GET["waarden"]));
    //query opbouwen
    $filter = "";
    foreach ($waarden as $key => $value) {
        if ($value != "") {
            if (strlen($filter) == 0) {
                $filter = "(" . $velden[$key] . "=*" . $value . "*)";
            } else {
                $filter = "(&" . $filter . "(" . $velden[$key] . "=*" . $value . "*))";
            }
        }
    }
}
$lijst = array();
$ld = new LdapRepair();
$ld->connect();
$ld->bind();
$ld->search($filter);
$result = $ld->get_entries();
array_shift($result);
foreach ($result as $persoon) {
    $p = $ld->parseDataSearch($persoon);
    if ($p['gebruikersnaam'] != NULL) {
        $lijst[] = $p;
    }
}
$uitvoer = array(array(), $lijst);
echo json_encode($uitvoer);
Esempio n. 6
0
<?php

require_once 'classes/LDAP.class.php';
$velden[] = "uid";
$waarden[] = "nvotten";
$filter = "";
foreach ($waarden as $key => $value) {
    if ($value != "") {
        if (strlen($filter) == 0) {
            $filter = "(" . $velden[$key] . "=*" . $value . "*)";
        } else {
            $filter = "(&" . $filter . "(" . $velden[$key] . "=*" . $value . "*))";
        }
    }
}
$lijst = array();
$ld = new LdapRepair();
$ld->connect();
$ld->bind();
$ld->search($filter);
$result = $ld->get_entries();
echo "<pre>";
print_r($result);
echo "</pre>";