Domino 9 und frühere Versionen > ND6: Entwicklung
User per Form registrieren + Passwort-Änderung aus dem Web
Tode:
für einen reinen Web- Zugriff musst Du die User (wie früher erwähnt) nicht registrieren.
Du erstellst einfach ein neues Dokument mit der Maske "Person" im NAB und füllst Vorname, Nachname, Benutzername, Shortname und Kennwort.
FERTIG.
Keine reg- Klasse nötig, keine "echte" Registrierung nötig.
Einfach
set doc = new NotesDocument( DeinNab )
doc.Form = "Person"
doc.FirstName = "Hans"
doc.LastName = "Wurst"
doc.UserName = "Hans Wurst"
doc.HTTPPasword = Inhalt Deines Form-Passwort-Feldes (Feld-eigenschaften im NAB abschauen)
doc.ShortName = "hans.wurst"
doc.MailAddress = "hans.wurst@irgendwo.de"
...
HTH
Tode
umi:
Hi,
Warum so kompliziert?
Ich weiss es ist nicht die sauberste Lösung, aber ich habe da was ähnliches realisiert.
Ich erstelle direkt ein Dokument im Adressbuch mit den benötigten Feldern. Der Account ist dann praktisch sofort aktiv.
gruss
umi
PS: Wichtig: die Felder Form="Person" und Type="Person" setzen, sonst sieht man das Dokument nicht in den Ansichten.
alexbeer:
Okay,
werde ich nachher mal ausprobieren
Alex
alexbeer:
Hallo,
vielleicht kann es jemand anders ja auch noch gebracuhen:
--- Code: --- 'Personendokument erstellen (dd = Domino Directory)
Set ddDoc = dd.CreateDocument()
'Werte von der Anmeldung
ddDoc.comment=##comment##
ddDoc.HTTPPassword=s.HashPassword(##password##)
ddDoc.firstname=##firstname##
ddDoc.lastname=##lastname##
ddDoc.FullName=##firstname##+" "+##lastname##
ddDoc.MailAddress=##email##
ddDoc.shortName=##shortName##
'Spezielle Werte für Personendokumente
' Mailsytem = "5" heißt Mails werden an die im Personendokument angegebene E-Mailadresse weitergeleitet. "100" = Kein Mailsystem
ddDoc.Mailsytem="5"
ddDoc.Type="Person"
ddDoc.form="Person"
success = ddDoc.ComputeWithForm( False, False )
'Wenn valedirung mit person Form nicht erfolgreich Fehler ausgeben und ddDoc nicht speichern
If Not success Then
Print ("Fehler bei der erstellung von:"+doc.lastname(0)+", "+doc.firstname(0))
Else
Call ddDoc.Save(True,True)
Print ("Nutzer "+doc.lastname(0)+", "+doc.firstname(0)+ " erstellt")
End If
--- Ende Code ---
Eigentlich fehlt jtzt nur noch die Abfrage, ob schon ein gleicher User wie der neuanzulegende in der DB vorhanden ist!
Alex
flaite:
1. die Ansicht ($VIMPeople) eignet sich gut zur Überprüfung, ob es dem User schon gibt.
so nach dieser ARt:
--- Code: ---vwUsers = db.getView("($VIMPeople)")
vwUsers.refresh ' wichtig!
set docExistingUser = vwUsers.GetDocumentByKey (doc.FullName(0));
if not ExistingUser is Nothing then
-> name schon da
else
registrieren.
--- Ende Code ---
Das mit dem Mailsystem kannte ich nicht.
Ich würd auch die Meldung
Print ("Nutzer "+doc.lastname(0)+", "+doc.firstname(0)+ " erstellt")
nicht in die Log.nsf schreiben (da steht eh schon zu viel Unsinn), sondern übersichtlich in eine LogDatenbank (suche Designerhilfe nach alog4.ntf. Solche wichtige Ereignisse würd ich immer in eine Log-Datenbank schreiben.
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln