User-ID ändern - wie?

Django, Flask, Bottle, WSGI, CGI…
Antworten
Benutzeravatar
dusselmann
User
Beiträge: 70
Registriert: Donnerstag 28. Juli 2005, 12:47
Kontaktdaten:

Sonntag 13. November 2005, 12:42

Hi,

kann ich ne User-ID ändern? Geht das zufällig mit userFolderEditUser?

Danke schon mal & Gruß, Dussel
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Sonntag 13. November 2005, 16:17

dusselmann hat geschrieben: kann ich ne User-ID ändern? Geht das zufällig mit userFolderEditUser?
Hi Dussel!

Das ist nicht so ohne weiteres möglich, da die ID das eindeutige Kennzeichen eines Benutzers ist, wird diese ID an ziemlich vielen Orten als Referenz zum User verwendet. Da das Ändern der ID eines Benutzers so weitreichende Auswirkungen hätte, ist es nicht möglich, diese zu ändern.

1. Neuen Benutzer erstellen
2. Alten Benutzer löschen.

Wenn der alte Benutzer noch nicht viel gemacht hat, ist es wahrscheinlich auch kein Problem, den Bezug mancher Objekte zum alten Benutzer einfach stehen zu lassen. Eine Nachfrage nach dem Ersteller wird dann halt ins Leere laufen.

Ein Beispiel für diese Beziehung findest du in Plone. Da kann man in der Suche, alle Artikel/Objekte eines Benutzers suchen. Die Objekte des "alten" Benutzers wirst du damit also nicht mehr finden. Das ist aber meistens nicht so schlimm. Es ist aber eine Inkonsistenz, die ich in einem professionellen Programm niemals zulassen würde.

lg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
dusselmann
User
Beiträge: 70
Registriert: Donnerstag 28. Juli 2005, 12:47
Kontaktdaten:

Sonntag 13. November 2005, 16:38

hi, danke für die Antwort.

Inkonsistenz will ich ja gerade damit vermeiden. Ich habe eine andere, selbst generierte ID, die den User ausweist. Das Problem besteht darin, dass ein User sich über seine Mailadresse einloggen soll. Diese soll er natürlich ändern können. Also will ich die von ihm erstellen Objekte durch diese ID als eindeutig referenzieren. Hmm.. gibt es nicht noch ne andere Möglichkeit? Vielleicht sollte doch jeder seinen Nickname nutzen und nicht die Mailaddi... *grübel* was meinst du?

Gruß, Daniel
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Sonntag 13. November 2005, 17:25

dusselmann hat geschrieben: Das Problem besteht darin, dass ein User sich über seine Mailadresse einloggen soll.
Hi Daniel!

Bei Plone 2.1 könnte man das Skript "login_form_validate" so anpassen, dass es, immer dann, wenn ein "@" im Namen vorkommt, vorher alle Benutzer oder einen dafür geschaffenen Index nach dieser Emailadresse durchsucht. Wenn die Emailadresse gefunden wurde, dann gibt man, statt der vom Benutzer eingegebenen Emailadresse, die UserID weiter.

Das führt aber unweigerlich zu einer zusätzlichen Prüfung beim Anlegen eines neuen Benutzers oder beim Ändern einer Emailadresse. Es muss geprüft werden, ob die Emailadresse auch wirklich eindeutig ist.

Für Plone 2.0 musst du selber nachsehen, welches Skript für die Prüfung der Authentifizierung zuständig ist.

lg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Sonntag 13. November 2005, 17:30

Hi Daniel!

Falls du Zope direkt benutzt, musst du vorher dein Login mit dem CookieCrumbler so umstellen, dass du ein Formular zum Anmelden verwenden kannst.

Danach musst du herausfinden, wie der Benutzername an den Server weitergegeben wird. Wenn du diesen Weg herausgefunden hast, dürfte es auch in diesem Fall nicht mehr so schwierig sein, sich in das dafür zuständige Skript einzuschalten.

lg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Antworten