Location: PHPKode > scripts > Admidio > admidio-2.2.9/adm_program/administration/new_user/new_user_function.php
<?php
/******************************************************************************
 * Neuen User zuordnen - Funktionen
 *
 * Copyright    : (c) 2004 - 2011 The Admidio Team
 * Homepage     : http://www.admidio.org
 * License      : GNU Public License 2 http://www.gnu.org/licenses/gpl-2.0.html
 *
 * mode: 1 - Registrierung einem Benutzer zuordnen, der bereits Mitglied der Orga ist
 *       2 - Registrierung einem Benutzer zuordnen, der noch KEIN Mitglied der Orga ist
 *       3 - Benachrichtigung an den User, dass er nun fuer die aktuelle Orga freigeschaltet wurde
 *       4 - User-Account loeschen
 *       6 - Registrierung muss nicht zugeordnet werden, einfach Logindaten verschicken
 * new_user_id: Id des Logins, das verarbeitet werden soll
 * user_id:     Id des Benutzers, dem das neue Login zugeordnet werden soll
 *
 *****************************************************************************/

require_once('../../system/common.php');
require_once('../../system/login_valid.php');
require_once('../../system/classes/system_mail.php');

// nur Webmaster duerfen User bestaetigen, ansonsten Seite verlassen
if($g_current_user->approveUsers() == false)
{
   $g_message->show($g_l10n->get('SYS_NO_RIGHTS'));
}

// pruefen, ob Modul aufgerufen werden darf
if($g_preferences['registration_mode'] == 0)
{
    $g_message->show($g_l10n->get('SYS_MODULE_DISABLED'));
}

// lokale Variablen der Uebergabevariablen initialisieren
$req_user_id     = 0;
$req_new_user_id = 0;
$req_mode        = 0;

// Uebergabevariablen pruefen

if(isset($_GET['user_id']))
{
    if(is_numeric($_GET['user_id']) == false)
    {
        $g_message->show($g_l10n->get('SYS_INVALID_PAGE_VIEW'));
    }
    $req_user_id = $_GET['user_id'];
}

if(isset($_GET['new_user_id']))
{
    if(is_numeric($_GET['new_user_id']) == false)
    {
        $g_message->show($g_l10n->get('SYS_INVALID_PAGE_VIEW'));
    }
    $req_new_user_id = $_GET['new_user_id'];
}

if(is_numeric($_GET['mode']) == false
|| $_GET['mode'] < 1 || $_GET['mode'] > 6)
{
    $g_message->show($g_l10n->get('SYS_INVALID_PAGE_VIEW'));
}
else
{
    $req_mode = $_GET['mode'];
}

$err_code = '';
$err_text = '';

if($req_new_user_id > 0)
{
    $new_user = new User($g_db, $req_new_user_id);
}

if($req_user_id > 0)
{
    $user = new User($g_db, $req_user_id);
}

if($req_mode == 1 || $req_mode == 2)
{
    // User-Account einem existierenden Mitglied zuordnen

    // Daten kopieren, aber nur, wenn noch keine Logindaten existieren
    if(strlen($user->getValue('usr_login_name')) == 0 && strlen($user->getValue('usr_password')) == 0)
    {
        $user->setValue('EMAIL', $new_user->getValue('EMAIL'));
        $user->setValue('usr_login_name', $new_user->getValue('usr_login_name'));
        $user->setValue('usr_password', $new_user->getValue('usr_password'));
    }

    // zuerst den neuen Usersatz loeschen, dann den alten Updaten,
    // damit kein Duplicate-Key wegen dem Loginnamen entsteht
    $new_user->delete();
    $user->save();
}

if($req_mode == 2)
{
    // User existiert bereits, ist aber bisher noch kein Mitglied der aktuellen Orga,
    // deshalb erst einmal Rollen zuordnen und dann spaeter eine Mail schicken
    $_SESSION['navigation']->addUrl($g_root_path.'/adm_program/administration/new_user/new_user_function.php?mode=3&user_id='.$req_user_id.'&new_user_id='.$req_new_user_id);
    header('Location: '.$g_root_path.'/adm_program/modules/profile/roles.php?user_id='.$req_user_id);
    exit();
}

if($req_mode == 1 || $req_mode == 3)
{
    $g_message->setForwardUrl($g_root_path.'/adm_program/administration/new_user/new_user.php');

    // nur ausfuehren, wenn E-Mails auch unterstuetzt werden
    if($g_preferences['enable_system_mails'] == 1)
    {
        // Mail an den User schicken, um die Anmeldung bwz. die Zuordnung zur neuen Orga zu bestaetigen
        $sysmail = new SystemMail($g_db);
        $sysmail->addRecipient($user->getValue('EMAIL'), $user->getValue('FIRST_NAME'). ' '. $user->getValue('LAST_NAME'));
        if($sysmail->sendSystemMail('SYSMAIL_REGISTRATION_USER', $user) == true)
        {
            $g_message->show($g_l10n->get('NWU_ASSIGN_LOGIN_EMAIL'));
        }
        else
        {
            $g_message->show($g_l10n->get('SYS_EMAIL_NOT_SEND', $user->getValue('EMAIL')));
        }
    }
    else
    {
        $g_message->show($g_l10n->get('NWU_ASSIGN_LOGIN_SUCCESSFUL'));
    }
}
elseif($req_mode == 4)
{
    // Registrierung loeschen    
    // im Forum muss er nicht geloescht werden, da der User erst nach der vollstaendigen 
    // Registrierung im Forum angelegt wird.
    $new_user->delete();

    // Loeschen erfolgreich -> Rueckgabe fuer XMLHttpRequest
    echo 'done';
}
elseif($req_mode == 6)
{
    // Der User existiert schon und besitzt auch ein Login
    
    // Registrierung loeschen
    // im Forum muss er nicht geloescht werden, da der User erst nach der vollstaendigen 
    // Registrierung im Forum angelegt wird.
    $new_user->delete();

    // Zugangsdaten neu verschicken
    $_SESSION['navigation']->addUrl($g_root_path.'/adm_program/administration/new_user/new_user.php');
    header('Location: '.$g_root_path.'/adm_program/administration/members/members_function.php?mode=4&usr_id='.$req_user_id);
    exit();
}

?>
Return current item: Admidio