Redash-Dashboards und Abfragen können nur vom Administrator oder vom Eigentümer geändert werden. Es spielt keine Rolle, ob Sie derselben Gruppe angehören.
Da es möglich ist, einzelnen Benutzern eine Änderungsberechtigung zu erteilen, werden wir beschreiben, wie dies getan wird.
Redash 8.0.0+b32245 (a16f551e)
Dies kann erreicht werden, indem ein Datensatz zur Redash-Tabelle "access_permissions" hinzugefügt wird. Ich möchte PostgreSQL nicht direkt berühren, daher füge ich einen Datensatz hinzu, indem ich "AccessPermission.grant" verwende.
Gewähren Sie einem anderen Benutzer (new_user) die Berechtigung zum Ändern des Dashboards, die von einem Benutzer (old_user) gehalten wird.
Öffnen Sie die Shell in Redash.
/opt/redash
docker-compose exec server ./manage.py shell
Kopieren Sie Folgendes und fügen Sie es ein.
#
# ./manage.py shell
#
from redash.models.users import AccessPermission, User
from redash.models.base import db
from redash.models import Dashboard
from redash import permissions
from contextlib import contextmanager
old_user = User.get_by_id(5)
new_user = User.get_by_id(2)
def grant_dashboards():
all_dashboards = Dashboard.all(
old_user.org,
old_user.group_ids,
old_user.id,
)
not_exists_dashboards = not_exists_obj(all_dashboards)
grant(not_exists_dashboards)
def not_exists_obj(objects):
return [
obj for obj in objects
if not AccessPermission.exists(obj, permissions.ACCESS_TYPE_MODIFY, new_user)
]
@contextmanager
def grant(objects):
try:
for obj in objects:
# !!! grantee == grantor
AccessPermission.grant(obj, permissions.ACCESS_TYPE_MODIFY, new_user, new_user)
db.session.commit()
except Exception:
db.session.rollback()
raise
grant_dashboards()
Der Grantor ist auf new_user gesetzt, aber es gibt keine tiefe Bedeutung. https://github.com/getredash/redash/blob/004bc7a2ac0de041907ab0b9b560151ea7057332/redash/models/users.py#L332
Die Abfrage kann auch auf die gleiche Weise wie oben beschrieben realisiert werden. Durch Aktivieren von "Unterstützung für experimentelle Mehrfachbesitzer aktivieren" in den Einstellungen ("/ settings / organisation") kann dem Benutzer auch die Berechtigung über den Abfragebearbeitungsbildschirm erteilt werden.