modules/register/include/register.php
0d1b7607
 <?php
c208bd90
 /*
 This file belongs to the Webinterface of schokokeks.org Hosting
 
cf54502a
 Written 2008-2018 by schokokeks.org Hosting, namely
c208bd90
   Bernd Wurst <bernd@schokokeks.org>
   Hanno Böck <hanno@schokokeks.org>
 
 To the extent possible under law, the author(s) have dedicated all copyright and related and neighboring rights to this software to the public domain worldwide. This software is distributed without any warranty.
 
2626dd47
 You should have received a copy of the CC0 Public Domain Dedication along with this software. If not, see
c208bd90
 http://creativecommons.org/publicdomain/zero/1.0/
 
 Nevertheless, in case you use a significant part of this code, we ask (but not require, see the license) that you keep the authors' names in place and return your changes to the public. We would be especially happy if you tell us what you're going to do with this code.
 */
0d1b7607
 
9c17ce59
 require_once('mail.php');
0d1b7607
 
 function customer_with_email($email)
 {
2626dd47
     $email = db_escape_string($email);
     $result = db_query("SELECT id FROM kundendaten.kunden WHERE email='{$email}' OR email_rechnung='{$email}' OR email_extern='{$email}' LIMIT 1;");
     if ($result->rowCount() == 0) {
         return null;
     } else {
         return $result->fetch(PDO::FETCH_OBJ)->id;
     }
0d1b7607
 }
 
 
 
 function create_customer($data)
 {
2626dd47
     if (customer_with_email($data['email']) !== null) {
         logger(LOG_WARNING, 'modules/register/include/register', 'register', "Attempt to create customer with duplicate email »{$data['email']}«");
         return null;
     }
0d1b7607
 
2626dd47
     logger(LOG_INFO, 'modules/register/include/register', 'register', "Creating new account: ".print_r($data, true));
9086c9ad
 
2626dd47
     db_query("INSERT INTO kundendaten.kunden (firma, nachname, vorname, anrede, email, erstellungsdatum,status) VALUES (:firma, :nachname, :vorname, :anrede, :email, CURDATE(), 3)", $data);
     $customerno = db_insert_id();
     return $customerno;
0d1b7607
 }
 
 
9c17ce59
 function send_initial_customer_token($customerno)
 {
2626dd47
     $customerno = (int) $customerno;
     $token = get_customer_token($customerno);
     $customer = get_customer_info($customerno);
     $anrede = "Sehr geehrte Damen und Herren";
     if ($customer['title'] == 'Herr') {
         $anrede = "Sehr geehrter Herr {$customer['name']}";
     } elseif ($customer['title'] == 'Frau') {
         $anrede = "Sehr geehrte Frau {$customer['name']}";
     }
     $msg = "{$anrede},
9c17ce59
 
 wir freuen uns, Sie bei schokokeks.org begrüßen zu dürfen.
 
 
df910182
 Sie haben sich als Kunde von schokokeks.org Webhosting 
 angemeldet. Diese E-Mail ist ein Zwischenschritt um die Gültigkeit 
 Ihrer E-Mail-Adresse zu überprüfen.
9c17ce59
 
df910182
 Um ein Passwort für Ihren Kunden-Zugang festzulegen, rufen Sie 
 bitte die folgende Adresse auf:
9c17ce59
  https://config.schokokeks.org/go/index/validate_token.php?customerno={$customer['customerno']}&token={$token}
 
 Sollte Ihr E-Mail-Programm diesen Link nicht korrekt an den Browser
 übertragen, rufen Sie bitte die Seite
  https://config.schokokeks.org/go/index/validate_token.php
 auf und geben Sie die folgenden Daten ein:
  Kundennummer: {$customer['customerno']}
  Code:         {$token}
 
 Diese Prozedur müssen Sie bis spätestens 24 Stunden nach Erhalt
 dieser Nachricht durchführen, sonst verliert der Code seine
df910182
 Gültigkeit und der Zugang wird wieder gelöscht.
9c17ce59
 
 Sofern Sie keinen Account bei schokokeks.org angemeldet haben, 
df910182
 können Sie diese Nachricht ignorieren.
9c17ce59
 ";
2626dd47
     send_mail($customer['email'], "Willkommen bei schokokeks.org Webhosting", $msg);
9c17ce59
 }
 
 
df910182
 function notify_admins_about_new_customer($customerno)
 {
2626dd47
     $customerno = (int) $customerno;
     $customer = get_customer_info($customerno);
     $msg = "Folgender Kunde hat sich gerade über's Webinterface neu angemeldet:
df910182
 
 Kundennummer: {$customerno}
 Name: {$customer['name']}
5a312ede
 E-mail: {$customer['email']}
df910182
 
 Registriert von IP-Adresse {$_SERVER['REMOTE_ADDR']}.
 ";
2626dd47
     send_mail("root@schokokeks.org", "[Webinterface] Neuer Kunde", $msg);
df910182
 }
 
9c17ce59
 function welcome_customer($customerno)
 {
2626dd47
     $customerno = (int) $customerno;
     $customer = get_customer_info($customerno);
     $anrede = "Sehr geehrte Damen und Herren";
     if ($customer['title'] == 'Herr') {
         $anrede = "Sehr geehrter Herr {$customer['name']}";
     } elseif ($customer['title'] == 'Frau') {
         $anrede = "Sehr geehrte Frau {$customer['name']}";
     }
     $msg = "{$anrede}.
9c17ce59
 
 Herzlich willkommen bei schokokeks.org!
 
 Wir freuen uns, dass Sie sich für schokokeks.org entschieden haben.
 
 Um Ihnen den Einstieg besonders angenehm zu gestalten, haben wir in 
 unserem Wiki eine Seite eingerichtet, die Ihnen die ersten Schritte 
 erläutern soll.
 Rufen Sie dazu bitte die Adresse 
  https://wiki.schokokeks.org/Erste_Schritte
 auf.
 
 Auch die anderen Bereiche des Wikis stecken voller Tipps und 
 Informationen. Schauen Sie sich um, es lohnt sich!
 
 ";
2626dd47
     /*
      * FIXME: Diese Mail muss noch überarbeitet werden!
      */
9c17ce59
 
2626dd47
     send_mail($customer['email'], "Willkommen bei schokokeks.org", $msg);
9c17ce59
 }