Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Hallo,

ich wollte mal wissen, wir euer Vorgehen ist, wenn ihr eine Webanwendung in PHP entwickelt und die Anwendung mit verschiedenen Masken, abhängig vom jeweiligen Benutzer, arbeitet.

Beispiel - es gibt eine Anwendung an deren erster Stelle ein Login steht. Der "Admin" sieht nach erfolgreichen Login z.B. Punkte wie Administration oder Konfiguration etc. Ein anderer User ist der Gruppe "Leser" zugeordnet und soll keine Eingabemöglichkeit besitzen, sondern lediglich nur Inhalte dargestellt bekommen. Ein anderer User ist "Sacharbeiter" und kann eingaben in Formularen etc. vornehmen.

Ich hoffe, ihr versteht, was ich meine.

Bisher gehe ich immer so damit um, dass ich Gruppen definieren (z.B. in einer Datenbank) und dann im PHP frage (if Gruppe == Admin) -> zeige alles. Das ist aber nicht besonders elegant und auch nicht gerade wartungskonform.

Also suche ich nach neuen Ideen... :-)

ich würde dir vorschlagen du erstellst in deiner Anwendung Module,

also z.B. Admin-Control Panel, User-Frontend

bzw. detailierter (z.B. im Forum gibt es ja auch Moderatoren, die zwar das Frontend nutzen, aber mit wenigen administrativen Funktionen die dort eingebunden sind)

und bestimmst dann, welche Gruppe in Welches Modul gelangen "und" welche Optionen sie in dem einen oder anderen nutzen können.

Ein Administrator hat im Normalfall ja auch Zugang zum Frontend, somit muss das allgemeine Portal variablen sein und nicht "nur" am Login hängen.

Wenn du verschiedene Navigationslinks hast, dann wirst du die ja schon dynamisch anzeigen und nicht fix in deine Seite einbauen. Also hast du irgendwo in der DB (vorzugsweise) deine Menüstruktur hinterlegt. Diese Menüpunkte kannst du jetzt z.b. (da sie ja mit den Modulen bzw angezeigten Inhalten usw. irgendwie verknüpft sein müssen) an deine Berechtigungstabelle hängen und beim Aufbauen des Menüs schon fragen, welcher Benutzer bzw welche Gruppe/Rolle denn angemeldet ist. Dann sieht der Benutzer schonmal nur die Punkte, die er sehen soll.

Die Inhalte (Module) selber hängen am selben Konstrukt, so dass auch dur eine direkte Eingabe der URL im Zweifel nur eine Fehlermeldung angezeigt wird.

Im Prinzip also so wie du es schon hast (Abhängig von der Gruppe wird etwas angezeigt).

EDIT:

Also nicht z.b.


is $gruppe == "admin" // ganz bewußt so "einfach" geschrieben

{

  echo "Adminmenü...";

}

else

{

 echo "";

}

sondern eher z.B.:

sql: SELECT linkname, linkURL from Menu where parentID = 0 

  and userGroup = [Gruppenkenung des Benutzers]

Hallo,

danke für eure bisherigen Antworten. Ich habe noch eine Frage zu JesterDay's Vorschlag:

Die Inhalte (Module) selber hängen am selben Konstrukt, so dass auch dur eine direkte Eingabe der URL im Zweifel nur eine Fehlermeldung angezeigt wird.

Wie meinst du das mit der angezeigten Fehlermeldung - wenn ein richtiger Link übergeben wird, wird die Seite doch immer angezeigt (oder denke ich grade nicht weit genug...?)?

Grüße!

Wie meinst du das mit der angezeigten Fehlermeldung - wenn ein richtiger Link übergeben wird, wird die Seite doch immer angezeigt (oder denke ich grade nicht weit genug...?)?

Wenn jetz irgendjemand hergeht und die URL www.deineSeite.de/admin.php, oder so in der Art eben, eingibt, sollte der die Seite ja nicht sehen, oder? Sonst könntest du die Benutzergruppen u.ä. ja gleich weglassen ;)

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.