Frage

In meinem Datenmodell, ich habe ein Feld bekommt, die nur Admin-editierbar sein sollten. Normale Benutzer können Datensätze im Modell bearbeiten und dieses spezielle Feld sehen, aber sie sollten es nicht zu bearbeiten können. Gibt es einen einfachen / clean Ansatz, dies zu tun? Ich glaube, dass es notwendig ist eine zusätzliche admin_edit Controller-Aktion zu erstellen, aber was ist der beste Weg, ein Datenfeld in der Steuerung auf „lock“?

War es hilfreich?

Lösung

Es ist nicht notwendig, eine neue Controller-Aktion zu erstellen, aber Sie können so entscheiden. Beachten Sie, dass Sie immer noch die gleiche Ansicht für sie mit $this->render("edit") verwenden können, finden Sie unter: http: //book.cakephp. org / view / 428 / render

Ich denke, Sie sollten:

  • verwenden die gleiche Controller-Aktion, wenn das nicht für die Benutzer und Administratoren
  • verwirrend
  • Anzeige nur ein Eingabefeld, wenn der Benutzer admin und geben Sie den Text für andere Benutzer
  • Prüfung für die Zulassung in der Steuerung

Andere Tipps

Abhängig von Ihrem System, das leicht als Validierungsmethode im Modell behandelt werden könnte. Schreiben Sie eine benutzerdefinierte Funktion im Modell zu überprüfen, ob der Benutzer die Berechtigung hat.

Sie können auch mit before () in Modell tun. Wenn das Feld ist, und sie haben keine Berechtigung, es entfernen.

Sie können simly auf der Admin-Rolle überprüfen in der Bearbeitungsansicht

if (hasRoleAdmin) {
 echo $this->Form->input(...);
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top