ioBroker.javascript
ioBroker.javascript copied to clipboard
Skripte lassen sich nicht mehr löschen oder umbenennen
Describe the bug
Skripte lassen sich nicht mehr löschen oder umbenennen. Es kommt eine Fehlermeldung:
Fehler Permission Error
To Reproduce
- Im Adapter JS Skripte öffnen
- Skript anwählen
- Skript umbenennen
- Neuer Namen eingeben
- mit OK bestätigen
Expected behavior
Adapter Updates:
- Admin V 6.2.20 > V 6.2.22
- SNMP V 2.1.7 > V 2.1.8
- Alexa2 V 3.11.2 > V 3.19.9
- Cloud IoT-Verbindung V 1.11.8 > V 1.11.9
- JS Skript Adapter V 6.0.0 > V 6.0.3
- Pushover V 3.0.2 > V 3.0.3
Versions:
- Adapter version: siehe oben
- JS-Controller version: 4.0.23
- Node version: 14.18.1
- Operating system: Raspbian GNU Linux 10 (Buster)
Additional context
Es haben scheinbar weitere User Probleme damit. Ein Downgrade auf V6.2.12 schafft scheinbar Abhilfe. Siehe auch im Forum:
https://forum.iobroker.net/topic/58249/skript-l%C3%B6schen-geht-nicht-permissionerror/134?lang=de
Hier noch ein Screenshot…
Schönen Guten Abend Zusammen,
ich habe eben auch mal getestet, ein neues Objekt (Bool Variable) anzulegen und anschließend wieder zu löschen. Auch hier kommt eine Fehlermeldung: Cannot delete object: permissionError
So haben auch einige User aus dem Forum berichtet. Daher hatte ich ursprünglich den Beitrag unter dem ADMIN Adapter gepostet.
Hier noch ein Screenshot:
Der Fehler kommt schon direkt nach einer Neuinstallation. Getestet auf Proxmox LXC+VM Außerdem nativ auf einem Raspi 3B+ mit Bullseye lite 32 und 64 Bit. Keinerlei Fehler im Log oder im Browser-Log. Beim Versuch ein State zu löschen, kommt im Browser-Log nur diese Fehler. `
(anonym) | @ | instrument.ts:123 | |
---|---|---|---|
window.alert | @ | App.jsx:294 | |
(anonym) | @ | Objects.jsx:97 | |
Promise.catch (asynchron) | |||
onDelete | @ | Objects.jsx:97 | |
onClick | @ | Objects.jsx:153 | |
ga | @ | react-dom.production.min.js:54 | |
ka | @ | react-dom.production.min.js:54 | |
Sa | @ | react-dom.production.min.js:55 | |
Po | @ | react-dom.production.min.js:105 | |
To | @ | react-dom.production.min.js:106 | |
(anonym) | @ | react-dom.production.min.js:117 | |
ou | @ | react-dom.production.min.js:274 | |
Ou | @ | react-dom.production.min.js:52 | |
oi | @ | react-dom.production.min.js:109 | |
Ql | @ | react-dom.production.min.js:74 | |
ja | @ | react-dom.production.min.js:73 | |
Z1 | @ | helpers.ts:95 |
Habe mal probeweise die Berechtigungen geändert:
Freigabe für Alle User:
Browserverlauf zuvor nochmals gelöscht. Trotzdem kann das Objekt nicht mehr gelöscht werden:
Man kann aber ein Verzeichnis mit allen darin enthaltenen States löschen.
Danke für den Hinweis, scheint ein Bug in der Berechtigungsverwaltung zu sein.
Gleiches gilt auch für die Aufzählungen.
Ein Löschen einer Funktion (enum) ist nicht möglich.
Cannot delete enum: permissionError
Komisch, ich habe die gleichen Versionen im Einsatz und bei mir läuft alles. Neu erstellen und löschen von Scripts, Enums usw. alles kein Problem.
Ich hatte es aber neulich auch in einer Neuinstallation (per Dev-Server), dass ich ein enum nicht löschen konnte. Die Frage ist ja, wo der Bug steckt. Im js-controller, admin oder JavaScript-Adapter. Letzteres wäre ja eigentlich auszuschließen, wenn es auch andere Objekte betrifft.
Könnt ihr die Objekte noch per CLI löschen?
In meinem Produktivsystem habe ich auch keine Probleme. (Erst vor ca. 2 Wochen aus Backup neu installiert) Alle Versionen aktuelle Beta. Aber jeder Versuch einer Neuinstallation endet sofort mit diesem Fehler. Getestet auf Proxmox, nativ Raspi und jetzt auch Docker. Das mit der CLI kann ich erst später testen, bin noch auf Schicht.
Löschen eines Objekts per CLI klappt.
` pi@testpi:~$ iobroker object del 0_userdata.0.TestState2
The object "0_userdata.0.TestState2" was deleted. pi@testpi:~$ `
Guten Morgen,
löschen von Objekten funktioniert bei mir auch im Command Line Interface:
Dokumentation meiner Suche bisher:
Da das Problem sowohl den JavaScript-Adapter betrifft, als auch den Admin. Ging ich davon aus, dass Problem in der Library zu finden ist, welche beide verwenden: @iobroker/adapter-react-v5
- Der JavaScript-Adapter nutzt in Version 6.0.3 die Version 3.1.34
- Der Admin-Adapter nutzt in Version 6.2.22 die Version 3.1.34
- Version 6.0.1 vom JavaScript-Adapter nutzt noch 3.1.20
- Version 6.2.20 vom Admin-Adapter nutzt noch 3.1.33
Leider wird das Problem auch mit einem Downgrade auf diese Versionen nicht behoben. Es muss also wo anders liegen
Objekte
Da es auf meinem Live-System geht und auf einer Neuinstallation nicht, habe ich die Objekte verglichen:
-
system.group.administrator
- identisch -
system.user.admin
- identisch -
system.config
:
"defaultNewAcl": {
"owner": "system.user.admin",
"ownerGroup": "system.group.administrator",
"state": 1636
}
Und produktiv:
"defaultNewAcl": {
"object": 1636,
"state": 1636,
"file": 1632,
"owner": "system.user.admin",
"ownerGroup": "system.group.administrator"
},
Fehlen bei Euch in dem Objekt auch die Attribute object
, state
und file
?
Das könnte natürlich auch ein dev-server thema sein. Denn auch nach dem Hinzufügen der Standard-ACL kann ich keine Objekte löschen. Ich bin langsam ein bisschen ratlos, wo die Unterschiede bei den Systemen liegen...
habe gerade nochmals eine Test Variable angelegt. Bei mir ist das Attribute object
enthalten. Bei mir sieht es
folgendermaßen aus:
{
"common": {
"name": "Temp_Test_BX",
"desc": "Manuell erzeugt",
"role": "state",
"type": "boolean",
"read": true,
"write": true,
"def": false
},
"type": "state",
"native": {},
"from": "system.adapter.admin.0",
"user": "system.user.admin",
"ts": 1664876732575,
"_id": "0_userdata.0.Temp_Test_BX",
"acl": {
"object": 1636,
"state": 1636,
"owner": "system.user.admin",
"ownerGroup": "system.group.administrator"
}
}
Habe das Problem gefunden!
Es liegt an der Version von @iobroker/socket-classes
. 0.5.3 funktioniert, 0.5.4 nicht mehr!
https://github.com/ioBroker/ioBroker.socket-classes/compare/v0.5.3...v0.5.4
Habe ein Upgrade auf 0.5.4 gemacht und jetzt kann ich auch keine Objekte mehr löschen. Yeah 😄
Wenn man sich Commits dort anschaut, dann findet man (bluefox) Fixed error in delObjects method
. Klingt ja schon verdächtig, oder? Und scheinbar ist eher das Gegenteil der Fall. Suche weiter und mache einen Issue im richtigen Repo auf.
@GermanBluefox @Apollon77
Danke für Eure Unterstützung!
Mit Admin Adapter 6.2.12 geht es wieder.
@bergjet Ja, weil der als Depenency "@iobroker/socket-classes": "^0.4.12"
hat und man somit nicht die 0.5.4 bekommt.
Hi, bei mir das selbe Problem:
Admin Version 6.2.22 JavaScript 6.0.3 Node.js 14.20.1 NPM 6.14.17
Ich kann bestätigen das das Löschen von Objekten nicht geht. In ioBroker.socket-classes v0.5.3...v0.5.4 erlaubt die Funktion delObject nur noch das löschen von flot objekten. Bei allen anderen Objekten gibt sie permissionError zurück.
Es gibt noch die funktion deleteFile welche dateien im FileSystem löscht. Diese Funktion wirft keinen permissionError.
Meine Vermutung: Die JavaScripte werden auch wie Objekte behandelt und es wird versucht die delObject Funktion aufzurufen welche dafür nicht funktionieren kann.
erlaubt die Funktion delObject nur noch das löschen von flot objekten.
Der Admin hat seine eigene Commands und überschreibt einige Funktionen. Der Filter auf flot.
ist nur in der Basis-Klasse enthalten. Aber nicht in den socketCommandsAdmin
Aber hier ist der falsch Ort um das zu diskutieren.
Moin allerseits,
Frage von einem Noob: Wie bekomme ich die 1.01 von Bluefox auf mein System?
Wie bekomme ich die 1.01 von Bluefox auf mein System?
Indem Du auf eine neue Stable-Version vom Admin-Adapter wartest und nicht irgendwelche Pakete npm selbst installierst 😄
Ah ja, hab ich verstanden 😊. Danke Dir.
Von: Matthias Kleine Gesendet: Dienstag, 11. Oktober 2022 09:43 An: ioBroker/ioBroker.javascript Cc: emmpee; Comment Betreff: Re: [ioBroker/ioBroker.javascript] Skripte lassen sich nicht mehr löschen oder umbenennen (Issue #1151)
Wie bekomme ich die 1.01 von Bluefox auf mein System? Indem Du auf eine neue Stable-Version vom Admin-Adapter wartest und nicht irgendwelche Pakete npm selbst installierst 😄 — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.***>
Nach Update auf Admin 6.2.23 funktioniert das löschen bei mir wieder. Hier kann also dich gemacht werden 👍
Ich möchte auf die stable
Freigabe warten. Hab es daher bisher noch nicht getestet. Sollte aber dann funktionieren. Danke nochmals!
Super Arbeit, danke vielmals!
Wann kommt denn die Stable ?
Hallo,
habe es gestern, nachdem ich ein komplettes Backup erstellt habe, die 6.2.23
auf meinem Live System installiert. Funktioniert wieder. Bisher keine Probleme festgestellt.
Dankeschön :-)