2017-09-06 3 views
-5

Es gibt zwei Arten von Benutzern in meinem System. Der Administrator und normale Benutzer. Hier plane ich, die Sitzungsvariable zu verwenden, um entsprechend ihrer Benutzergruppen nach der Anmeldung umzuleiten. Zur Zeit hat Admin Zugriff auf einzigartige Funktionen (Admin-Dashboard usw.). Normale Benutzer haben ein Profil. Ich muss dem Administrator die Möglichkeit geben, zwischen dem Admin-Dashboard und dem Benutzerprofil zu wechseln, ohne sich mehr als einmal an- oder abzumelden. Kann mir jemand eine ungefähre Vorstellung geben, wie kann ich das umsetzen?Verwalten von zwei Arten von Benutzerkonten in derselben Sitzung

+3

Ja. (Stellen Sie eine vage Frage, erhalten Sie eine vage Antwort) –

+0

Ich habe es eingerichtet, indem ich zwei Sitzungen für den Admin-Benutzer machte und zum Admin-Panel umadressierte, sobald er sich beim Erstellen der Admin-Sitzung angemeldet hatte. Und wenn er mit dem normalen Benutzerprofil zu tun haben soll, wird er dazu aufgefordert, die Benutzersitzung zu erstellen. – jsb9009

Antwort

1

Die bessere Übung besteht darin, Gruppen zu haben (was so klingt) und jeder Gruppe Ebenen zuzuweisen.

Zum Beispiel, sagen normale Benutzer sind 1 und Admin-Benutzer sind 2.

Dann, wenn Ihre Seiteninhalt sowohl zeigen will, normale Benutzer und Administratoren können Sie so lange sagen, wie der angemeldete Benutzer ist> = 1 Zeigen Sie dann den Inhalt.

Wenn Ihre Seite nur Inhalt für Administratoren anzeigen möchte, können Sie sagen, dass der angemeldete Benutzer> = 2 ist, und dann den Inhalt anzeigen.

Dies ist nur ein grobes Beispiel, da Sie nicht viel Kontext oder Beispiele angegeben haben.

1

Dies ist keine Antwort, aber haben Sie versucht, viel einfacher und nur Ausnahmen in Ihrem Code auf der regulären Benutzer-Seite für den Administrator zu machen?

Beispiel, kann für Admin und für normale Benutzer nehmen:

admin.php kann nur, wenn die $row['privilege'] == 1 vice versa für reguläre Benutzer zugegriffen werden: $row['privilege'] == 2.

Warum auf den regulären Benutzer Seite etwas nicht tun:

<?php 
if ($row['username'] == "admin" && $row['privilege'] == "1") { 
// let admin access page 
} else { 
// don't let anyone access page 
} 
?> 

Ich meine es mir so wie etwas aussieht, der einfachste Weg wäre?

Das ist meine Meinung, aber jemand anderes eine bessere Lösung

1

Obwohl die Frage ziemlich vage haben. Ich werde versuchen, den normalen Prozess der Verwaltung der Benutzerrollen, Authentifizierung und Autorisierung in einer normalen Webanwendung zu erklären.

DB Modell:

1. Table: User 
Columns: id, username, password, .. 

2. Table: Roles 
Columns: roleId, RoleName 

3. Table: UserRoles 
Columns: userId, roleId 

Wenn der Benutzer sich in Ihrem AuthController authentifiziert, bei erfolgreicher Authentifizierung, müssen Sie die Rollen holen, wird Benutzer zugeordnet ist. Und dann müssen Sie diese Informationen in die Sitzung einfügen.

In Ihren Ansichten müssen Sie die Bedingungen wie unten basierend auf Ihren Geschäftsbedingungen überprüfen.

View1.php 
if(role in session is 'ADMIN') 
Show the data 

View2.php 
if(role in session is 'USER') 
Show the data 
Verwandte Themen