Sorry old post but why don’t you set up your theme as a repo in GitHub? Permission your design and UX team to have access to update the Theme in GitHub.
In Discourse you can now set Themes to auto update upon rebuild.
Your admins will now only need to rebuild to bring in any changes made by the Design and UX team and the latter will not need access to admin at all.
When coding matters of access control, in general, these RBAC checks should be performed on the server side.
RBAC code in client-side Javascript can be manipulated by the client.
This means that when defining core RBAC permissions for staff, admins and moderators, this should be done (generally speaking) in Rails, not in Javascript.
OBTW, this is also how Discourse does RBAC now, using what Discourse calls “guardian”, a Ruby class called class Guardian, here:
If a developer is going to add RBAC checks in Javascript code by calling the Discourse API, keep in mind that this code can be compromised because code which runs in the browser can be manipulated.
My recommendation is to make sure all core RBAC code is performed on the server side and do not try to short cut this in client-side Javascript.
I have a similar use case, in that I run a small non-profit community where one of our users is maintaining the themes and design.
I do not wish to give anyone beside me and my co-owner access to private user data (e-mail addresses etc.), but I do have 4 moderators.
In order for the designer to work, I’ve had to create a copy site with no content where he is the admin, and I then copy themes and components manually. However it is not desirable since some changes requires content in order to proof.
So let the developer develop on the staging site, and push the themes to github. But you’ll still need to upgrade them yourself. You might contrive to do the upgrade with the API and somehow make the developer be able to trigger it.
I’m working of a tool that might be able to help with that.
Wenn Sie dem Designer nicht vertrauen, dass er Ihre Daten sieht, welche Lösung würden Sie sich vorstellen?
Könnten Sie ihm nur einen API-Schlüssel geben, mit dem er die discourse_cli verwenden kann, um das Thema dort hochzuladen, und ihn dann deaktivieren, wenn er fertig ist, vielleicht?
Es gibt absolut keinen Grund, warum ein Designer Zugriff auf 100.000 Benutzer haben sollte, lol. Außerdem würde dies gegen die DSGVO-Regeln verstoßen. Ist es möglich, einen CLI-Schlüssel nur für Theme-Updates zu geben?
Entschuldigen Sie vielmals! Ich glaube, Sie haben Recht.
Im Gegensatz zu dem Zeitpunkt, als dieses Thema erstellt wurde (was offenbar der Zustand meines Gehirns war, als ich meine Antwort schrieb), haben wir jetzt granulare API-Schlüssel. Es sollte nicht allzu schwer sein, einen neuen Geltungsbereich nur für die Verwaltung von Themes hinzuzufügen.
Es könnte sich lohnen, ein neues Thema in Feature zu erstellen und nach einem Theme-Entwickler-API-Schlüssel-Geltungsbereich zu fragen. Das scheint eine gute Idee zu sein.
Es wäre gut, wenn @AV_C vielleicht einen Verweis auf diese Anforderung posten könnte. Obwohl ich gut verstehen kann, warum ein Kunde den Zugriff auf die Benutzerbasis und sogar auf private Kategorien aus verschiedenen Gründen einschränken möchte. Vollständige Administratoren können die Anmelde-E-Mails der Mitglieder einsehen und private Kategorien können andere sensible Inhalte enthalten, je nach Anwendungsfall des Kunden.
Ich denke, @pfaffman hat eine gute Idee, um sicherzustellen, dass diese Art von Lücke durch eine eingeschränkte Admin-API abgedeckt werden kann. Sobald die Designerarbeit abgeschlossen ist, kann der Schlüssel widerrufen werden, bis er benötigt wird.
Dies würde auch zu Jays Idee passen, einen Benutzer nicht als Administrator auf der Über-uns-Seite anzuzeigen.