Es gibt bestimmte Benutzerfelder, die ich mit CSS ausgeblendet habe. Sie könnten jedoch immer noch über die Rails-Konsole, die API oder die Entwicklertools aktualisiert werden. Wie stelle ich sicher, dass niemand diese Felder (z. B. Website oder Standort) mit den oben genannten Methoden aktualisieren kann?
Schreiben Sie ein Plugin, um die API zu ändern (d. h. die Controller, das Modell oder die zugehörigen Bibliotheksfunktionen zu überschreiben)
Das ist übrigens sehr unwahrscheinlich, nur Administratoren werden Zugriff auf die Rails-Konsole haben.
Wenn Sie die Anzeige dieser Werte ausblenden, was spielt es für eine Rolle, ob sie sie ausfüllen? Es würde einige Anstrengungen des Benutzers erfordern, einen Standort hinzuzufügen, und ein anderer Benutzer müsste sich bemühen, sein Profil zu besuchen und zu sehen, was er eingegeben hat.
Abgesehen vom Forken von Discourse, um diese Felder aus dem Modell zu entfernen, gibt es nicht viele Möglichkeiten, jemanden mit Zugriff auf die Rails-Konsole daran zu hindern, Daten darin einzugeben.
Sie könnten ein Plugin schreiben, das periodisch ausgeführt wird und die gewünschten Felder auf nil setzt. Oder Sie könnten einen Hook haben, der aufgerufen wird, wenn das Benutzerprofil aktualisiert wird, der diese Felder auf nil setzt. Suchen Sie in GitHub - discourse/all-the-plugins nach einem Plugin mit einem “add_model_callback” und “:before_save” als Beispiele. Und dann würden Sie es für UserProfile tun.
Vielen Dank für Ihre Antworten, damit werde ich es zum Laufen bringen. Und ich stimme zu, dass es übertrieben ist, in diesem Maße zu blockieren, aber das ist die Aufgabe.
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.