Skip to content
Snippets Groups Projects
insertRequest2.php 1.7 KiB
Newer Older
  • Learn to ignore specific revisions
  • <?php
    
    /**
     * Header
     */
     
    header('X-ATEndpoint: YES');
    header('Access-Control-Allow-Origin: *');
    
    include '../include/config.inc.php';
    include '../include/tgSqliteDB.class.php';
    include '../include/tgLdap.class.php';
    include '../include/tgImap.class.php';
    
    $db = new tgSqliteDB($conf);
    $ldap = new tgLdap($conf);
    $imap = new tgImap($conf);
    
    // Work around magic_quotes_gpc
    
    if (get_magic_quotes_gpc()) {
        $data = stripslashes($_POST['data']);
    } else {
        $data = $_POST['data'];
    }
    
    /**
     * Validation 
     */
    
    $in = json_decode($data, TRUE);
    $out['status'] = 'Validating ...';
    
    if($in['name'] == $in['surname']) {
        $out['error']['surname'] = 'spamSuspicion';
    }
    
    if($ldap->uidExists($in['userid'])) {
        $out['error']['userid'] = 'uidUsed';
    }
    
    if(empty($in['email'])) {
        $out['error']['email'] = 'emailMissing';
    }
    
    if($ldap->emailExists($in['email'])) {
        $out['error']['email'] = 'emailUsed';
    }
    
    if(isset($out['error'])) {
        echo json_encode($out);
        return;
    }
    
    /**
     * Insert request
     */
     
    // If no language given, default to English
    
    if(!isset($in['lang'])) {
        $in['lang'] = 'en';
    }
     
    $db->insertUserRequest($in);
    
    /**
     * Send e-mails
     */
    
    function sendMails($conf, $imap, $db, $data) {
    
        // User
    
        $templateID = ($data['lang'] == 'de') ? 6 : 5;
        $mail = $db->getMailTemplate($templateID);
    
        $imap->mail($data['email'], $mail['subject'], $mail['body']);
    
        // TextGrid team
    
        $body = '';
        foreach($data as $key => $value) {
            $body .= $key . ': ' . $value . "\n";
        }
        $body .= "\nLink zum Backend: " . $conf['url'];
    
        $imap->mail($conf['mail']['cc'], 'New request', $body);
    }
    
    sendMails($conf, $imap, $db, $in);
    
    /**
     * Return data
     */
     
    echo json_encode(array('status' => 'done'));
    
    ?>