Hallo,
wir haben folgendes vor: In Contenido gibt es ein Mitarbeiterverzeichnis, als eigene Tabelle. Aus dieser Tabelle möchte ich nun für jeden Mitarbeiter ein eigenes Login/Passwort (md5 kodiert) für den Frontendbereich generieren.
Dazu schreibe ich die benötigten Felder in die Tabelle con_frontendusers und con_frontendgroupmembers (Gruppenzuordnung). Die User werden auch unter Administration - Frontenduser (Gruppe) richtig angezeigt, nur klappt das Login nicht (Invalid Username or Password! - sonst keine Fehlermeldung in den Logs).
Habe ich etwas vergessen?
Danke für Eure Unterstützung.
Markus
Automatisiertes Anlegen von Frontendusern
Verwende die entsprechenden Contenido-Objekte. D.h. class.frontend.user.php um sicherzustellen, dass die Informationen so in der DB gespeichert werden, wie es erwartet wird (urlencoded z.B.).
Ein Beispiel, wie man das Objekt nutzt, findest Du im Newsletter-Handler-Modul (Output), siehe Signatur.
Ansonsten stellt sich die Frage, wann Du diese Fehlermeldung erhältst:
- Wenn Du das Login-Modul oder ein ähnliches verwendest, hast Du noch ein Problem bei der Eintragung.
- Wenn Du das Login-Formular meinst, welches erscheint, wenn man auf eine geschützte Kategorie klickt, so gibt es da noch einen Fehler in der front_crcloginform.inc.php - eine Anmeldung darüber scheitert fürs Frontend fast immer.
Empfehlung: Eigenes Login-Modul verwenden und geschützte Kategorie erst in der Navi anzeigen, wenn der User angemeldet ist (Beispiel siehe Hauptnavigations-Modul des Beispiel-Mandanten zu V4.6.x).
Gruß
HerrB
Ein Beispiel, wie man das Objekt nutzt, findest Du im Newsletter-Handler-Modul (Output), siehe Signatur.
Ansonsten stellt sich die Frage, wann Du diese Fehlermeldung erhältst:
- Wenn Du das Login-Modul oder ein ähnliches verwendest, hast Du noch ein Problem bei der Eintragung.
- Wenn Du das Login-Formular meinst, welches erscheint, wenn man auf eine geschützte Kategorie klickt, so gibt es da noch einen Fehler in der front_crcloginform.inc.php - eine Anmeldung darüber scheitert fürs Frontend fast immer.
Empfehlung: Eigenes Login-Modul verwenden und geschützte Kategorie erst in der Navi anzeigen, wenn der User angemeldet ist (Beispiel siehe Hauptnavigations-Modul des Beispiel-Mandanten zu V4.6.x).
Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Kenne mich leider beim objektorientierten Programmieren nicht mehr so aus. Daher der herkömmliche Weg - leider ohne Erfolg...
Der Fehler tritt auf, nachdem ich im Loginmodul (Einfaches Login-Modul/Author: Andreas Lindner/Version:1.0) User/Passwort eingebe.
Code: Alles auswählen
<?php
include("../db.inc");
$ZID = $_GET['ID']; // Einschränkung des Imports
$idfrontenduser = 13; // manueller Startwert User-ID
$idfrontendgroupmember = 16; // manueller Startwert Gruppen-ID
$result = @mysql_db_query("contenido","SELECT ID, mail, sn, Funktion FROM con_adr_sih WHERE (aktiv=1 AND mail!='' AND ID>$ZID)");
while ($row = mysql_fetch_array($result)) {
$Email = urlencode($row["mail"]); //Username
$SYS = md5(sysadmin); // Author und Modifiedby
$Default = "01234567890AbCdEfGhIjKlMnOpQrStUvWxYz";
$Default = str_shuffle($Default); // Passwort erzeugen
$Funktion = $row["Funktion"];
$Funktion = substr($Funktion,0,1)+ 4; //Bestimmt Gruppennummer aus Userinfo
if (strlen($Default) < 6) { //Normiert Passwort
$Default=str_pad($Default,6,'a');
} else {
$Default=substr($Default,0,6);
}
$Passwort = md5($Default); //Codiert Passwort
//Kontrollausgabe
echo ("User: ".$Email."<br>");
echo ("User-ID: ".$idfrontenduser."<br>");
echo ("Group-ID: ".$idfrontendgroupmember."<br>");
echo ("Passwort: ".$Default."<br>");
echo ("Funktion: ".$Funktion."<br>");
echo ("<br>");
$idfrontenduser = $idfrontenduser + 1; //Erhöht User-ID
$idfrontendgroupmember = $idfrontendgroupmember +1; //Erhöht Gruppen-ID
mysql_query("INSERT INTO con_frontendgroupmembers SET
idfrontendgroupmember ='$idfrontendgroupmember',
idfrontendgroup = '$Funktion',
idfrontenduser = '$idfrontenduser'") or die(mysql_error());
mysql_query("INSERT INTO con_frontendusers SET
idfrontenduser ='$idfrontenduser',
idclient = '2',
username = '$Email',
password = '$Passwort',
active = '1',
author = '$SYS',
created = 'date(Y-m-d H:i:s)',
modified = ' date(Y-m-d H:i:s)',
modifiedby = '$SYS'") or die(mysql_error());
?>
Sieht grundsätzlich gut aus - sollte gehen.
Ansonsten das ganze nochmal via Objekten...
Ist ein Modul (Output), in ein Template einbauen, Template einem Artikel zuweisen und einmal im Backend Artikel anklicken
(so dass man in den Editor gelangt).
Ungetestet.
Gruß
HerrB
Ansonsten das ganze nochmal via Objekten...
Ist ein Modul (Output), in ein Template einbauen, Template einem Artikel zuweisen und einmal im Backend Artikel anklicken
(so dass man in den Editor gelangt).
Ungetestet.
Code: Alles auswählen
<?php
cInclude("classes", "class.frontend.users.php");
cInclude("classes", "class.frontend.groups.php");
$oFEUsers = new FrontendUserCollection;
$oFEGroupMembers = new FrontendGroupMemberCollection;
$db2 = new DB_Contenido;
$ZID = $_REQUEST['ID']; // Einschränkung des Imports
$sSQL = "SELECT ID, mail, sn, Funktion FROM con_adr_sih WHERE aktiv='1' AND mail != '' AND ID > '".$ZID."'";
$db2->query($sSQL);
while ($db2->next_record()) {
$Email = $db2->f("mail");
if (!$oFEUsers->userExists($Email)) {
$Default = "01234567890AbCdEfGhIjKlMnOpQrStUvWxYz";
$Default = str_shuffle($Default); // Passwort erzeugen
if (strlen($Default) < 6) { //Normiert Passwort
$Default=str_pad($Default,6,'a');
} else {
$Default=substr($Default,0,6);
}
$oFEUser = $oFEUsers->create($Email, $Default);
$oFEUser->set("active", 1);
$oFEUser->store();
$Funktion = $row["Funktion"];
$Funktion = substr($Funktion,0,1)+ 4; //Bestimmt Gruppennummer aus Userinfo
$oFEGroupMembers->create($Funktion, $oFEUser->get($oFEUser->primaryKey));
//Kontrollausgabe
echo ("User: ".$Email."<br>");
echo ("User-ID: ".$idfrontenduser."<br>");
echo ("Group-ID: ".$oFEUser->get($oFEUser->primaryKey)."<br>");
echo ("Passwort: ".$Default."<br>");
echo ("Funktion: ".$Funktion."<br>");
echo ("<br>");
} else {
echo $db2->f("mail")." existiert bereits.<br>";
}
}
?>
HerrB
Zuletzt geändert von HerrB am Fr 21. Jul 2006, 17:17, insgesamt 1-mal geändert.
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net