2017-02-10 2 views
0

Ich brauche ein paar Ratschläge/Tipps mit etwas, das ich noch nie zuvor getan habe. Als Support-Benutzer muss ich mich als angemeldeter Benutzer ausgeben und die Benutzeroberfläche dieses Benutzers blockieren, während der Support-Benutzer Wartungsaufgaben ausführt (mit derselben Erfahrung wie der angemeldete Benutzer).User Identity

Das Front-End der App ist in Angular 2 geschrieben und erhält Daten von einem Drupal-basierten Back-End.

Das Problem ist, dass ich Web-Sockets verwenden möchte, um den angemeldeten Benutzer Live-Informationen zu senden und wie blockiere ich seine Schnittstelle?

Edit: Also ich habe neue Anforderungen. Der Support-Benutzer kann also die Identität eines Benutzers annehmen, aber wenn ein Benutzer angemeldet ist, muss der Support Live-Benachrichtigungen an den anderen Benutzer senden und dann sein Interface blockieren (normaler Benutzer). Kann ich das nur mit drupal + angular oder brauche ich Knoten js als die mittlere SV.

Antwort

0

ich folgendes tun würde: Erweitere Benutzertabelle von 2 Säulen [ImpersonatedAsUserKey], [UiBlocked]

Einige Gitter, wo der Anhänger für die ActiveUsers mit einem Knopf suchen zu imitieren. Wenn die Fan klickt auf „Impersonate“

Aktualisieren der Datenbank Reihe der Unterstützung Benutzer auf [ImpersonatedAsUserKey] = „selectedUserKey“

Aktualisieren der Datenbank Reihe der betroffenen Benutzer auf [UiBlocked] = true

ein senden SocketMessage an den betroffenen Benutzer, um die Benutzeroberfläche mit einem modalen Dialogfeld zu ändern ihm mitzuteilen, dass er Support von einem Support-Benutzer erhält.

Dann auf der Instanz der Supporter Wiederaufladen die Bahn wie die affectedUser durch die [ImpersonatedAsUserKey]

Eine Sache im Auge haben: wenn der Benutzer eine Aktualisierung der Seite nimmt im Auge zu Check macht für den UiBlocked-Wert in der Datenbank, um das Drop-Modal anzuzeigen, wenn ein Wert vorhanden ist.

Wenn Sie mit "Identitätswechsel" fertig sind, setzen Sie die Datenbankwerte auf den Standardwert zurück und senden Sie eine Socketnachricht an den Benutzer, um das Dropmodal auszublenden.

und laden Sie die Support-Benutzeroberfläche neu, um die Standardbenutzeroberfläche zu erhalten.

Mit freundlichen Grüßen!

Verwandte Themen