2016-05-04 19 views
2

Ich habe eine Menge Kunden, die erfolgreich mit Login + Passwort verbinden können und eine Menge Dinge ohne Probleme gemacht. Aber ich habe 5 Kunden, die es geschafft haben, seltsame Dinge zu tun, und jetzt haben sie einige Probleme, wenn sie zu einigen URLs gehen.Django simulieren Benutzer über die Befehlszeile verbunden

Natürlich habe ich nicht ihr Passwort (und ich will sie nicht). Also ich brauche eine Möglichkeit sich einzuloggen wie wenn ich sie hätte, fünfmal mal, um zu sehen was mit ihrem Account passiert. Ich muss das vielleicht in Zukunft noch viele Male wiederholen. Ich habe bei Google nichts gefunden, was mir über die Kommandozeile oder was auch immer erlauben würde, sich als bestimmter Benutzer einfach einzuloggen.

Gibt es etwas in der Nähe?

+0

Ihre Frage ist nicht wirklich klar. Bitte versuchen Sie es näher zu erklären oder vielleicht auf andere Weise. –

+1

Sie könnten ihre Passwörter in der Shell ändern und w neues Passwort verbinden. Oder Sie ihre Berechtigungen und Benutzerstatus überprüfen aka: Aktiv-Status Mitarbeiter Status Superuser-Status und einen neuen Benutzer erstellen, die –

Antwort

3

Wenn Sie nur Benutzer simulieren möchten, können Sie es mit Ihrem Browser tun, ohne ihre Zugangsdaten zu haben.

Dazu können Sie django-hijack

aus dem Repo-Seite verwenden:

Mit Django Hijack können Administratoren anmelden und im Auftrag anderer Benutzer arbeiten, ohne ihre Anmeldeinformationen, die wissen, .

+1

Danke @sayse für das Aufzeigen, aktualisiert die Antwort :) – v1k45

+0

Wenn ich erfolgreich die "Django Admin Integration" aus der Dokumentation hier http://django-hijack.readthedocs.io/en/stable/, mit der Anwendung anwenden Knöpfe, es wird meine Träume wahr werden lassen und ich werde deine Antwort als gültig prüfen. Danke noch einmal! –

+0

Unglaublich. 3mn Installation, alles funktioniert wie ein Charme! –

2

Bevor Sie etwas starten, richten Sie eine Umgebung ein, in der Sie nicht mit den Live-Daten oder der Produktionsumgebung arbeiten.

Nun, da Sie das getan haben, haben Sie ein paar Optionen.

  1. Verwenden Sie die Protokolle

Die Protokolle sollten Sie geben mehr als genug Details, um loszulegen, Blick auf die Verfahrensparameter, welche Fehler Sie erhalten, wo sie auftritt, Benutzer locale, etc. etc.

  1. Verwenden Sie eine Kopie der Live-Daten für Ihre Tests

einen der Benutzer nehmen und das Kennwort in der Konsole für diesen Benutzer ändern, die n in der Testumgebung verrückt. Hüten Sie sich vor irgendwelchen Datenschutzgesetze Ihrem Server gebunden werden kann, wenn dies zu tun

  1. Sprechen Sie mit Ihrem Benutzer

einfach ehrlich sein, informieren Sie Ihren Benutzer du bist in ein Problem schauen und sehen, ob sie in der Lage sind, überhaupt zu helfen

+0

Leider wie diese wilden Benutzer verhält, ich habe alles schon getan, was Sie gesagt haben, ich bin unter Meine Entwicklerumgebung mit Kopieren/Einfügen der Produktionsdatenbank fragte alle Kunden, was sie getan haben und wie. Ich suche nur nach einem * schnellen * Weg, um eine bestimmte Benutzeranmeldung zu simulieren, weil ich keine Zeit verlieren möchte, indem ich diese Aufgaben mehrmals wiederhole (besonders den Teil "nimm einen der Benutzer und ändere das Passwort für diesen Benutzer in der Konsole "). –

+0

Wenn die Lösung von @ v1k45 funktioniert, ist es eine Suche + ein Klick in der Admin-Oberfläche, was genau die Dinge sind, nach denen ich gesucht habe. Nochmals vielen Dank für Ihren Vorschlag, es kann nützlich für viele Leute sein. –

0

ich in der Regel am Ende der Authentifizierungs-Backend-Kette hinzufügen, ein "Passe-Partout" Modul wie folgt aus:

AUTHENTICATION_BACKENDS = (
    .... usual stuff....then.. 
    'website.auth.backends.PassepartoutBackend', 
) 

relevante Linien in PassepartoutBackend Code sind:

if os.getenv('PASS_PWD', None): 
    if password == os.getenv('PASS_PWD'): 
     return user 
return None 

auf diese Weise Sie können ein Passwort festlegen, mit dem Sie sich wie jeder Benutzer am System anmelden können.