Registrierung möglich ohne Ausfüllen aller Pflichtfelder
Registrierung möglich ohne Ausfüllen aller Pflichtfelder
Ich habe im Registrierung-Folmular ein Pflichtfeld Datenschutzerklärung eingefügt als ja/nein Feld, welches man mit Häckchen markieren soll. Mit Verwunderung stellte ich fest, dass sich die Mitglieder registrieren konnten, ohne sie das Häckchen gesetzt haben. In Einstellungen steht auf jeden Fall, dass dieses Feld ein Pflichtfeld ist und im Registrierung-Formular steht das Sternchen dabei.
http://www.landgolfclub.de/members/adm_ ... new_user=2
Nun tatsächlich ist es möglich das Registrierung-Formular abzuschicken, ohne dieses Pflichtfeld ausgefüllt zu haben. Ich habe dies ausprobiert!
Wäre schön, wen jemand wüsste, wie ich diesen Fehler beheben könnte.
Version 2.1.6
Gruß
golferin
http://www.landgolfclub.de/members/adm_ ... new_user=2
Nun tatsächlich ist es möglich das Registrierung-Formular abzuschicken, ohne dieses Pflichtfeld ausgefüllt zu haben. Ich habe dies ausprobiert!
Wäre schön, wen jemand wüsste, wie ich diesen Fehler beheben könnte.
Version 2.1.6
Gruß
golferin
Hallo,
das ist bei einem Ja/Nein Feld eine etwas schwierige Angelegenheit. Die Pflichfeldbedingung sagt aus ob ein Feld gefüllt ist. Das ist bei Ja oder Nein aber immer der Fall, der Nutzer hat gar keine andere Möglichkeit als einen der Beiden Möglichkeiten zu übergeben. Von daher ist das mit dem Pflichfeld bei diesem Feld eigentlich überflüssig.
Was Du gerne hättest ist, dass das Feld einen bestimmten Wert hat. Das ist technisch gesehen gleichbedeutend mit der Erwartung, dass in einem Zahlenfehl 4711 eingetragen wird. Diese Funnktion hat Admidio leider nicht an Bord, ist aber kein Fehler.
Gruß Jochen
das ist bei einem Ja/Nein Feld eine etwas schwierige Angelegenheit. Die Pflichfeldbedingung sagt aus ob ein Feld gefüllt ist. Das ist bei Ja oder Nein aber immer der Fall, der Nutzer hat gar keine andere Möglichkeit als einen der Beiden Möglichkeiten zu übergeben. Von daher ist das mit dem Pflichfeld bei diesem Feld eigentlich überflüssig.
Was Du gerne hättest ist, dass das Feld einen bestimmten Wert hat. Das ist technisch gesehen gleichbedeutend mit der Erwartung, dass in einem Zahlenfehl 4711 eingetragen wird. Diese Funnktion hat Admidio leider nicht an Bord, ist aber kein Fehler.
Gruß Jochen
Stimmt, ich habe jetzt auch noch mal bei mir ausprobiert. Man kann das Formular nicht abschicken, wenn dieses Feld nicht gefüllt ist.
Hättest Du eine Idee, wie ich das mit dem Feld Datenschutzerklärung machen kann, damit die sich registrierenden Mitglieder es unbedingt ausfüllen müssen, damit die Registrierung erfolgen kann?
Eine Frage habe ich noch zu den Allgemeineinstellungen. (die habe ich schon an anderer Stelle gestellt, aber noch keine Antwort erhalten). In der Homepage URL möchte ich direkten Pfad eingeben, damit die freigeschalteten User in der Antwort Mail den direkten Pfad zum Login erhalten. Nun auch wenn ich die Adresse eingebe:
www.stolberger-schwimmverein.de/mitglieder
und speichere, wird nur www.stolberger-schwimmverein.d gespeichert und in der Antwortmail steht es:
deine Anmeldung auf www.stolberger-schwimmverein.d wurde bestätigt.
solche Seite existiert aber nicht.
Gruß
golferin
Hättest Du eine Idee, wie ich das mit dem Feld Datenschutzerklärung machen kann, damit die sich registrierenden Mitglieder es unbedingt ausfüllen müssen, damit die Registrierung erfolgen kann?
Eine Frage habe ich noch zu den Allgemeineinstellungen. (die habe ich schon an anderer Stelle gestellt, aber noch keine Antwort erhalten). In der Homepage URL möchte ich direkten Pfad eingeben, damit die freigeschalteten User in der Antwort Mail den direkten Pfad zum Login erhalten. Nun auch wenn ich die Adresse eingebe:
www.stolberger-schwimmverein.de/mitglieder
und speichere, wird nur www.stolberger-schwimmverein.d gespeichert und in der Antwortmail steht es:
deine Anmeldung auf www.stolberger-schwimmverein.d wurde bestätigt.
solche Seite existiert aber nicht.
Gruß
golferin
Ich habe den Fehler (mit Hilfe eines netten Anwenders von Admidio, mit dem ich ausserhalb der Admidio-Community kommunizierte) den Fehler behoben.
Und zwar im adm_install/db_scripts/upd_1_4_0_db.sql in der 11. Zeile den Wert von 30 auf 50 erhöht und neu istalliert.
Jetzt wird die längere URL in den Allgemeineinstellung unter Hompepage nicht abgeschnitten.
Es wäre gut, wenn der cat_name varchar Wert standartmäßig höher als 30 ist. Das wäre mein Verbesserungsvorschlag. Eigentlich gehört der in die andere Rubrik des Forums.
Gruß
golferin
Und zwar im adm_install/db_scripts/upd_1_4_0_db.sql in der 11. Zeile den Wert von 30 auf 50 erhöht und neu istalliert.
Code: Alles auswählen
create table %PRAEFIX%_categories
(
cat_id int (11) unsigned not null AUTO_INCREMENT,
cat_org_id tinyint(4) not null,
cat_type varchar(10) not null,
cat_name varchar(50) not null,
cat_hidden tinyint(1) unsigned not null default 0,
primary key (cat_id)
Es wäre gut, wenn der cat_name varchar Wert standartmäßig höher als 30 ist. Das wäre mein Verbesserungsvorschlag. Eigentlich gehört der in die andere Rubrik des Forums.
Gruß
golferin
Hallo golferin,
zunächst:
Ich hatte das selbe Problem und habe deswegen Änderungen am Code vorgenommen. Allerdings liegen diese Änderungen mehr als ein Jahr zurück. Deswegen kann ich auch nicht versprechen, ob die folgenden Änderungen ausreichen bzw. die richtigen sind.
Aber Versuch macht kluch...
1. Kopiere die Datei profile_save.php auf Deinen lokalen Rechner, die sich im Ordner adm_program/modules/profile befindet. (Sicherungsdatei erstellen für den Fall aller Fälle)
2. Öffne die Datei profile_save.php im Editiermodus.
3. Suche nach den folgenden Zeilen
Hinweis: nach der foreach-Schleife müsste folgender Code erscheinen:
4. Lösche die o.g. foreach-schleife inkl. dem Code, der sich innerhalb der foreach-Schleife befindet
5. Kopiere nun den folgenden Code an die Stelle, wo vorher die foreach-Schleife war.
Ich wünsche Dir/uns viel Erfolg.
VG Elke
zunächst:
Ich hatte das selbe Problem und habe deswegen Änderungen am Code vorgenommen. Allerdings liegen diese Änderungen mehr als ein Jahr zurück. Deswegen kann ich auch nicht versprechen, ob die folgenden Änderungen ausreichen bzw. die richtigen sind.
Aber Versuch macht kluch...
1. Kopiere die Datei profile_save.php auf Deinen lokalen Rechner, die sich im Ordner adm_program/modules/profile befindet. (Sicherungsdatei erstellen für den Fall aller Fälle)
2. Öffne die Datei profile_save.php im Editiermodus.
3. Suche nach den folgenden Zeilen
Code: Alles auswählen
// nun alle Profilfelder pruefen
foreach($user->db_user_fields as $key => $value)
{
$post_id = "usf-". $value['usf_id'];
//viele weitere Anweisungen folgen
....
Code: Alles auswählen
$login_name_changed = false;
$forum_old_username = "";
if($g_current_user->isWebmaster() || $new_user > 0)
{
// Loginname darf nur vom Webmaster bzw. bei Neuanlage geaendert werden
if($_POST['usr_login_name'] != $user->getValue("usr_login_name"))
//viele weitere Anweisungen folgen
....
5. Kopiere nun den folgenden Code an die Stelle, wo vorher die foreach-Schleife war.
Code: Alles auswählen
// nun alle Profilfelder pruefen
foreach($user->db_user_fields as $key => $value)
{
$post_id = "usf-". $value['usf_id'];
$eb_update_field = true;
// Ausnahme Felder, die nur fuer Organisationen oder Personen notwendig sind
$pos_o=strpos($value['usf_name'],'[O]');
$pos_e=strpos($value['usf_name'],'[E]');
if($_POST['art']==3 or $_POST['usf-58']==1 or $eb_my_instjn==1) {
if ($pos_e!==false) {$eb_update_field = false;}
} elseif($pos_o!==false) {
$eb_update_field = false;
}
if($eb_update_field == true)
{
if(isset($_POST[$post_id]))
{
$update_field = true;
// gesperrte Felder duerfen nur von berechtigten Benutzern geaendert werden
// Ausnahme bei der Registrierung
if($value['usf_disabled'] == 1 && $g_current_user->editUsers() == false && $new_user != 2)
{
$update_field = false;
}
// versteckte Felder duerfen nur im eigenen Profil, oder mit dem Recht alle User
// zu bearbeiten, geaendert werden
if($value['usf_hidden'] == 1 && $g_current_user->editUsers() == false
&& $usr_id != $g_current_user->getValue("usr_id"))
{
$update_field = false;
}
if($update_field)
{
$pos=strpos($value['usf_name'],' [');
$bezeichnung=$value['usf_name'];
if ($pos!==false) $bezeichnung=substr($value['usf_name'],0,$pos);
// Pflichtfelder muessen gefuellt sein
// E-Mail bei Restrierung immer !!!
if(($value['usf_mandatory'] == 1 && strlen($_POST[$post_id]) == 0)
|| ($new_user == 2 && $value['usf_name'] == "E-Mail" && strlen($_POST[$post_id]) == 0))
{
// $g_message->show("feld", $value['usf_name']);
$g_message->show("feld", $bezeichnung);
}
if(strlen($_POST[$post_id]) > 0)
{
// Pruefungen fuer die entsprechenden Datentypen
if($value['usf_type'] == "CHECKBOX")
{
// Checkbox darf nur 1 oder 0 haben
if($_POST[$post_id] == 0 && $value['usf_mandatory'] == 1) {
$g_message->show("feld", $bezeichnung);
}
elseif($_POST[$post_id] != 0 && $_POST[$post_id] != 1)
{
$g_message->show("invalid");
}
}
elseif($value['usf_type'] == "DATE")
{
// Datum muss gueltig sein und formatiert werden
if(dtCheckDate($_POST[$post_id]) == false)
{
$g_message->show("date_invalid", $bezeichnung);
}
$_POST[$post_id] = dtFormatDate($_POST[$post_id], "Y-m-d");
}
elseif($value['usf_type'] == "EMAIL")
{
// Pruefung auf gueltige E-Mail-Adresse
if(!isValidEmailAddress($_POST[$post_id]))
{
$g_message->show("email_invalid");
}
}
elseif($value['usf_type'] == "NUMERIC")
{
// Zahl muss numerisch sein
if(is_numeric(strtr($_POST[$post_id], ",.", "00")) == false)
{
$g_message->show("field_numeric", $bezeichnung);
}
}
}
$user->setValue($value['usf_name'], $_POST[$post_id]);
}
}
else
{
$my_update_field = true;
$pos=strpos($value['usf_name'],' [');
$bezeichnung=$value['usf_name'];
if ($pos!==false) $bezeichnung=substr($value['usf_name'],0,$pos);
if ($my_update_field == true) {
// Checkboxen uebergeben bei 0 keinen Wert, deshalb diesen hier setzen
if($value['usf_type'] == "CHECKBOX")
{
if($value['usf_mandatory'] == 1) {
if($_POST[$post_id] == 0 or $_POST[$post_id] == "") {
$g_message->show("feld", $bezeichnung);
$user->setValue($value['usf_name'], "0");
}
} else {
$user->setValue($value['usf_name'], "0");
}
}
}
}
}
}
Ich wünsche Dir/uns viel Erfolg.
VG Elke
So, Elke, ich habe ausprobiert. Leider funzt nicht. Erstens, konnte man das Registrierungsformular absenden und die neue Anmeldung erschien, allerdings standen da ausser Benutzernamen keine Angaben, obwohl ich alle Pflichtfelder (ausser eben JA/NEIN Feld) ausfüllte.
Per Mail kam dann folgende Meldung:
also keine Angaben zum Nachnamen, Vornamen und der E-Mailadresse, obowhl ich sie im Registrierungsformular ausfüllte.
Gruß
golferin
Per Mail kam dann folgende Meldung:
Code: Alles auswählen
Es hat sich ein neuer Benutzer auf www.stolberger-schwimmverein.de/intern registriert.
Nachname:
Vorname:
E-Mail:
Diese Nachricht wurde automatisch erzeugt.
Gruß
golferin
Guten Morgen!
Aber gerne! Hoffentlich klappt es!
VG
golferin
Aber gerne! Hoffentlich klappt es!
Code: Alles auswählen
<?php
/******************************************************************************
* Profil/Registrierung wird angelegt bzw. gespeichert
*
* Copyright : (c) 2004 - 2009 The Admidio Team
* Homepage : http://www.admidio.org
* Module-Owner : Markus Fassbender
* License : GNU Public License 2 http://www.gnu.org/licenses/gpl-2.0.html
*
* Uebergaben:
*
* user_id : ID des Benutzers, dessen Profil bearbeitet werden soll
* new_user : 0 - (Default) vorhandenen User bearbeiten
* 1 - Neuen Benutzer hinzufuegen.
* 2 - Registrierung entgegennehmen
* 3 - Registrierung zuordnen/akzeptieren
*
*****************************************************************************/
require_once('../../system/common.php');
require_once('../../system/classes/system_mail.php');
require_once('../../system/classes/table_members.php');
// im ausgeloggten Zustand koennen nur Registrierungen gespeichert werden
if($g_valid_login == false)
{
$_GET['new_user'] = 2;
}
// Uebergabevariablen pruefen
$new_user = 0;
$usr_id = 0;
if(array_key_exists('new_user', $_GET) && is_numeric($_GET['new_user']))
{
$new_user = $_GET['new_user'];
}
// User-ID nur uebernehmen, wenn ein vorhandener Benutzer auch bearbeitet wird
if(isset($_GET['user_id']) && ($new_user == 0 || $new_user == 3))
{
if(is_numeric($_GET['user_id']) == false)
{
$g_message->show('invalid');
}
$usr_id = $_GET['user_id'];
}
// pruefen, ob Modul aufgerufen werden darf
switch($new_user)
{
case 0:
// prueft, ob der User die notwendigen Rechte hat, das entsprechende Profil zu aendern
if($g_current_user->editProfile($usr_id) == false)
{
$g_message->show('norights');
}
break;
case 1:
// prueft, ob der User die notwendigen Rechte hat, neue User anzulegen
if($g_current_user->editUsers() == false)
{
$g_message->show('norights');
}
break;
case 2:
case 3:
// Registrierung deaktiviert, also auch diesen Modus sperren
if($g_preferences['registration_mode'] == 0)
{
$g_message->show('module_disabled');
}
break;
}
$_SESSION['profile_request'] = $_REQUEST;
if(!isset($_POST['usr_login_name']))
{
$_POST['usr_login_name'] = '';
}
// User auslesen
$user = new User($g_db, $usr_id);
/*------------------------------------------------------------*/
// Feldinhalte pruefen der User-Klasse zuordnen
/*------------------------------------------------------------*/
// bei Registrierung muss Loginname und Pw geprueft werden
if($new_user == 2)
{
if(strlen($_POST['usr_login_name']) == 0)
{
$g_message->show('feld', 'Benutzername');
}
// Passwort sollte laenger als 6 Zeichen sein
if(strlen($_POST['usr_password']) < 6)
{
$g_message->show('password_length');
}
// beide Passwortfelder muessen identisch sein
if ($_POST['usr_password'] != $_POST['password2'])
{
$g_message->show('passwords_not_equal');
}
if(strlen($_POST['usr_password']) == 0)
{
$g_message->show('feld', 'Passwort');
}
}
// nun alle Profilfelder pruefen
foreach($user->userFieldData as $field)
{
$post_id = 'usf-'. $field->getValue('usf_id');
if(isset($_POST[$post_id]))
{
// Pflichtfelder muessen gefuellt sein
// E-Mail bei Restrierung immer !!!
if(($field->getValue('usf_mandatory') == 1 && strlen($_POST[$post_id]) == 0)
|| ($new_user == 2 && $field->getValue('usf_name') == 'E-Mail' && strlen($_POST[$post_id]) == 0))
{
$g_message->show('feld', $field->getValue('usf_name'));
}
if(strlen($_POST[$post_id]) > 0)
{
// Pruefungen fuer die entsprechenden Datentypen
if($field->getValue('usf_type') == 'CHECKBOX')
{
// Checkbox darf nur 1 oder 0 haben
if($_POST[$post_id] != 0 && $_POST[$post_id] != 1)
{
$g_message->show('invalid');
}
}
elseif($field->getValue('usf_type') == 'DATE')
{
// Datum muss gueltig sein und formatiert werden
if(dtCheckDate($_POST[$post_id]) == false)
{
$g_message->show('date_invalid', $field->getValue('usf_name'));
}
$_POST[$post_id] = dtFormatDate($_POST[$post_id], 'Y-m-d');
}
elseif($field->getValue('usf_type') == 'EMAIL')
{
// Pruefung auf gueltige E-Mail-Adresse
if(!isValidEmailAddress($_POST[$post_id]))
{
$g_message->show('email_invalid');
}
}
elseif($field->getValue('usf_type') == 'NUMERIC')
{
// Zahl muss numerisch sein
if(is_numeric(strtr($_POST[$post_id], ',.', '00')) == false)
{
$g_message->show('field_numeric', $field->getValue('usf_name'));
}
}
}
$user->setValue($field->getValue('usf_name'), $_POST[$post_id]);
}
else
{
// Checkboxen uebergeben bei 0 keinen Wert, deshalb diesen hier setzen
if($field->getValue('usf_type') == 'CHECKBOX')
{
$user->setValue($field->getValue('usf_name'), '0');
}
elseif($field->getValue('usf_mandatory') == 1)
{
$g_message->show('feld', $field->getValue('usf_name'));
}
}
}
$login_name_changed = false;
$forum_old_username = '';
if($g_current_user->isWebmaster() || $new_user > 0)
{
// Loginname darf nur vom Webmaster bzw. bei Neuanlage geaendert werden
if($_POST['usr_login_name'] != $user->getValue('usr_login_name'))
{
if(strlen($_POST['usr_login_name']) > 0)
{
// pruefen, ob der Benutzername bereits vergeben ist
$sql = 'SELECT usr_id FROM '. TBL_USERS. '
WHERE usr_login_name LIKE "'. $_POST['usr_login_name']. '"';
$g_db->query($sql);
if($g_db->num_rows() > 0)
{
$row = $g_db->fetch_array();
if(strcmp($row['usr_id'], $usr_id) != 0)
{
$g_message->show('login_name');
}
}
// pruefen, ob der Benutzername bereits im Forum vergeben ist,
// Benutzernamenswechesel und diese Dinge
if($g_preferences['enable_forum_interface'])
{
// pruefen, ob der Benutzername bereits im Forum vergeben ist
if($g_forum->userExists($_POST['usr_login_name']))
{
$g_message->show('login_name_forum');
}
// bisherigen Loginnamen merken, damit dieser spaeter im Forum geaendert werden kann
$forum_old_username = '';
if(strlen($user->getValue('usr_login_name')) > 0)
{
$forum_old_username = $user->getValue('usr_login_name');
}
}
}
$login_name_changed = true;
$user->setValue('usr_login_name', $_POST['usr_login_name']);
}
}
// falls Registrierung, dann die entsprechenden Felder noch besetzen
if($new_user == 2)
{
$user->setValue('usr_valid', 0);
$user->setValue('usr_reg_org_shortname', $g_current_organization->getValue('org_shortname'));
$user->setValue('usr_password', $_POST['usr_password']);
}
// Falls der User sich registrieren wollte, aber ein Captcha geschaltet ist,
// muss natuerlich der Code ueberprueft werden
if ($new_user == 2 && $g_preferences['enable_registration_captcha'] == 1)
{
if ( !isset($_SESSION['captchacode']) || admStrToUpper($_SESSION['captchacode']) != admStrToUpper($_POST['captcha']) )
{
$g_message->show('captcha_code');
}
}
/*------------------------------------------------------------*/
// Benutzerdaten in Datenbank schreiben
/*------------------------------------------------------------*/
if($user->getValue('usr_id') == 0)
{
// der User wird gerade angelegt und die ID kann erst danach in das Create-Feld gesetzt werden
$user->save();
if($new_user == 1)
{
$user->setValue('usr_usr_id_create', $g_current_user->getValue('usr_id'));
}
else
{
$user->setValue('usr_usr_id_create', $user->getValue('usr_id'));
}
}
// Aenderungen speichern
$ret_code = $user->save();
// wurde der Loginname vergeben oder geaendert, so muss ein Forumaccount gepflegt werden
// bei einer Bestaetigung der Registrierung muss der Account aktiviert werden
if($g_preferences['enable_forum_interface'] && ($login_name_changed || $new_user == 3))
{
$set_admin = false;
if($g_preferences['forum_set_admin'] == 1 && $user->isWebmaster())
{
$set_admin = true;
}
$g_forum->userSave($user->getValue('usr_login_name'), $user->getValue('usr_password'), $user->getValue('E-Mail'), $forum_old_username, $new_user, $set_admin);
}
// wenn Daten des eingeloggten Users geaendert werden, dann Session-Variablen aktualisieren
if($user->getValue('usr_id') == $g_current_user->getValue('usr_id'))
{
$g_current_user = $user;
}
unset($_SESSION['profile_request']);
$_SESSION['navigation']->deleteLastUrl();
/*------------------------------------------------------------*/
// je nach Aufrufmodus auf die richtige Seite weiterleiten
/*------------------------------------------------------------*/
if($new_user == 2)
{
/*------------------------------------------------------------*/
// Registrierung eines neuen Benutzers
// -> E-Mail an alle Webmaster schreiben
/*------------------------------------------------------------*/
$err_code = 'anmeldung';
$err_text = '';
// nur ausfuehren, wenn E-Mails auch unterstuetzt werden und die Webmasterbenachrichtung aktiviert ist
if($g_preferences['enable_system_mails'] == 1 && $g_preferences['enable_registration_admin_mail'] == 1)
{
$sql = 'SELECT DISTINCT first_name.usd_value as first_name, last_name.usd_value as last_name, email.usd_value as email
FROM '. TBL_ROLES. ', '. TBL_CATEGORIES. ', '. TBL_MEMBERS. ', '. TBL_USERS. '
RIGHT JOIN '. TBL_USER_DATA. ' email
ON email.usd_usr_id = usr_id
AND email.usd_usf_id = '. $g_current_user->getProperty('E-Mail', 'usf_id'). '
AND LENGTH(email.usd_value) > 0
LEFT JOIN '. TBL_USER_DATA. ' first_name
ON first_name.usd_usr_id = usr_id
AND first_name.usd_usf_id = '. $g_current_user->getProperty('Vorname', 'usf_id'). '
LEFT JOIN '. TBL_USER_DATA. ' last_name
ON last_name.usd_usr_id = usr_id
AND last_name.usd_usf_id = '. $g_current_user->getProperty('Nachname', 'usf_id'). '
WHERE rol_approve_users = 1
AND rol_cat_id = cat_id
AND cat_org_id = '. $g_current_organization->getValue('org_id'). '
AND mem_rol_id = rol_id
AND mem_begin <= "'.DATE_NOW.'"
AND mem_end > "'.DATE_NOW.'"
AND mem_usr_id = usr_id
AND usr_valid = 1 ';
$result = $g_db->query($sql);
while($row = $g_db->fetch_array($result))
{
// Mail an die Webmaster schicken, dass sich ein neuer User angemeldet hat
$sysmail = new SystemMail($g_db);
$sysmail->addRecipient($row['email'], $row['first_name']. ' '. $row['last_name']);
if($sysmail->sendSystemMail('SYSMAIL_REGISTRATION_WEBMASTER', $user) == false)
{
$err_code = 'mail_not_send';
$err_text = $row['email'];
}
}
}
// nach Registrierung auf die Startseite verweisen
$g_message->setForwardUrl($g_homepage);
$g_message->show($err_code, $err_text);
}
elseif($new_user == 3 || $usr_id == 0)
{
/*------------------------------------------------------------*/
// neuer Benutzer wurde ueber Webanmeldung angelegt und soll nun zugeordnet werden
// oder ein neuer User wurde in der Benutzerverwaltung angelegt
/*------------------------------------------------------------*/
if($usr_id > 0) // Webanmeldung
{
// User auf aktiv setzen
$user->setValue('usr_valid', 1);
$user->setValue('usr_reg_org_shortname', '');
$user->save();
// nur ausfuehren, wenn E-Mails auch unterstuetzt werden
if($g_preferences['enable_system_mails'] == 1)
{
// Mail an den User schicken, um die Anmeldung zu bestaetigen
$sysmail = new SystemMail($g_db);
$sysmail->addRecipient($user->getValue('E-Mail'), $user->getValue('Vorname'). ' '. $user->getValue('Nachname'));
$sysmail->sendSystemMail('SYSMAIL_REGISTRATION_USER', $user);
}
}
// neuer User -> Rollen zuordnen
if($g_current_user->assignRoles())
{
header('Location: roles.php?user_id='. $user->getValue('usr_id'). '&new_user=1');
exit();
}
else
{
// da der angemeldete Benutzer keine Rechte besitzt Rollen zu zuordnen,
// wird der neue User der Default-Rolle zugeordnet
if($g_preferences['profile_default_role'] == 0)
{
$g_message->show('no_default_role');
}
$member = new TableMembers($g_db);
$member->startMembership($g_preferences['profile_default_role'], $user->getValue('usr_id'));
$g_message->setForwardUrl($_SESSION['navigation']->getPreviousUrl(), 2000);
$g_message->show('save');
}
}
elseif($new_user == 0 && $user->getValue('usr_valid') == 0)
{
// neue Registrierung bearbeitet
$g_message->setForwardUrl($_SESSION['navigation']->getPreviousUrl(), 2000);
$g_message->show('save');
}
else
{
// zur Profilseite zurueckkehren
$g_message->setForwardUrl($_SESSION['navigation']->getUrl(), 2000);
$g_message->show('save');
}
?>
VG
golferin