NEWS
[Gelöst] Zugriffsrechte Bedienen vis
-
> P.S. wenn man das Script das erste Mal mit false laufen lässt kommen error. Nach einmal true, dann wieder false läuft es ohne Fehler.
Ggf. standen die rechte vorher falsch so dass kein lesender Zugriff möglich war.> P.P.S. der Fehler kommt jetzt bei meiner weiteren Anpassung. Ich hatte die Massenänderung probiert für HM_IP:
Bei HM_IP kann ich leider nicht weiterhelfen, habe ich selbst nicht im Einsatz.Vielleicht haben die selektierten Objekte keine common Einstellung.
Ggf. mal Objekt editieren und unter raw ansehen.
Gruß, Ralf
-
Habe die Massenänderung von Berechtigungen hinbekommen, Script findet ihr hier:
viewtopic.php?f=21&t=11610&start=40
Gruß, Ralf `
Hallo zusammen,
ich habe ein ähnliches Problem, aber in meinem Fall würde ich ungerne die Gruppe der Objekte ändern. Ich würde viel lieber die Zugriffsrechte zum Schreiben für "Jeder" per Skript aktivieren (das wäre per Hand zu mühselig). Leider bin ich in JS noch ziemlich neu, daher die Frage: kann man das Skript entsprechend abändern? Und wenn ja, was muss ich wie abändern?
Ich bin für jegliche Hilfe dankbar.
Viele Grüße
-
Dann musst Du das Skript wie folgt anpassen:
ALT: obj.acl.ownerGroup = cGroup; NEU: obj.acl.object = 1638;Gruß, Ralf
-
Herzlichen Dank!
-
Hm altes Thema aber hab auch in meinem IOBROKER "lasted" eingestellt alles geupdatet.
Nun klappt VIS nicht mehr .. Berechtigungen fehlen .. sehe auch das mein Tablet User fast nirgends Schreibrechte hat.
Gibt es da eine Lösung ? Script oben Link geht nicht..
Danke -
@ChrisXY Link geht mit "rechte Maustaste" --> Link in neuem Tab öffnen.
Aber ob das der richtige Verweis ist? -
@rk62 Ich hole das alte Thema mal wieder aus der Versenkung
Kann mir jemand bitte sagen, wie das Skript abgeändert werden muss, damit die Berechtigungs-Gruppe wirklich an allen Stellen im Objekt-Explorer geändert wird? -
@iobaer
So werden alle States durchlaufen:log("================== START"); SelectObjects("state[id=*]"); log("================== ENDE");Oder vielleicht besser nur für einen Adapter:
log("================== START"); SelectObjects("state[id=fritzdect.0.*]"); log("================== ENDE");Aber vorsichtig:
- Nicht ohne vorheriges BACKUP laufen lassen!
- Änderung besser erst mit Teilmenge oder wenigen States ausprobieren
- Sicherheitshalber vorher alle Instanzen (außer javascript) stoppen
- Innerhalb javascript würde ich auch alle Scripte während der Änderung anhalten.
Gruß, Ralf
-
@rk62 Danke Dir vielmals. Die obere Lösung hatte ich gestern schon versucht. Es bleiben dann aber alle anderen Objekte, z.B. Channel, der alten Besitzer-Gruppe zugewiesen, z.B. "influxdb.0.info". Gibt es eine Möglichkeit, überall, wo die bisherige Gruppe drin stand, die neue via Skript zu ändern?
Am Ende erscheinen übrigens Fehlermeldungen (hatte ich gestern auch, als ich auf SelectObjects("state[id=*]"); geändert hatte):
21:03:47.398 error javascript.0 (874) script.js.common.Rechteänderung: script.js.common.Rechteänderung:35 21:03:47.398 error javascript.0 (874) at script.js.common.Rechteänderung:35:44 21:03:47.398 error javascript.0 (874) at SelectObjects (script.js.common.Rechteänderung:33:27) 21:03:47.398 error javascript.0 (874) at script.js.common.Rechteänderung:73:1Zeile 35 ist "var vBeschreibung = getObject(id).common.name;", Zeile 33 "$(cacheSelectorState).each(function(id,i) {", Zeile 37 "SelectObjects("state[id=*]");".
-
@iobaer Nein, die verwendete Schleife kann nur auf States zugreifen, Channels liefert die nicht zurück. Da kann ich nichts dran machen, sind für die Anzeige / Verwaltung in VIS aber auch nicht relevant.
Vielleicht wäre es hier einfacher die Standard-Berechtigung im ioBroker anzupassen, die States zu löschen und durch den Adapter neu anlegen zu lassen? Dann gehen allerdings Einstellungen wie History, Funktionen & Räume flöten.
Bei den Fehlermeldungen musst Du die einzelnen Objekte mit log(id); ausgeben lassen und ansehen: Entweder steht die Berechtigung dort momentan so restriktiv oder die haben gar keinen .common Part in dem die Rechte abgelegt werden.
-
@rk62 Danke Dir. Ist auch nicht tragisch, wenn das Skript jetzt eben 90 Prozent erledigt und man den Rest ggf. manuell durchgeht.