ioBroker.javascript icon indicating copy to clipboard operation
ioBroker.javascript copied to clipboard

Skripte lassen sich nicht mehr löschen oder umbenennen

Open mbausm opened this issue 2 years ago • 25 comments

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

mbausm avatar Sep 29 '22 14:09 mbausm

Hier noch ein Screenshot… 94D9F409-B66D-4BA4-9461-6C63EC32CFF7

mbausm avatar Sep 30 '22 18:09 mbausm

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:

2022 09 30 - Delete Object Permission Error

mbausm avatar Sep 30 '22 18:09 mbausm

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. `


instrument.ts:123
Cannot delete object: permissionError
  (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

`

mrjeschke avatar Sep 30 '22 18:09 mrjeschke

Habe mal probeweise die Berechtigungen geändert:

2022 09 30 - Permissions

Freigabe für Alle User:

2022 09 30 - Permissions All User

Browserverlauf zuvor nochmals gelöscht. Trotzdem kann das Objekt nicht mehr gelöscht werden:

2022 09 30 - Permissions Denied

mbausm avatar Sep 30 '22 18:09 mbausm

Man kann aber ein Verzeichnis mit allen darin enthaltenen States löschen.

mrjeschke avatar Sep 30 '22 18:09 mrjeschke

Danke für den Hinweis, scheint ein Bug in der Berechtigungsverwaltung zu sein.

mbausm avatar Sep 30 '22 19:09 mbausm

Gleiches gilt auch für die Aufzählungen. Ein Löschen einer Funktion (enum) ist nicht möglich. Cannot delete enum: permissionError

lessthanmore1 avatar Oct 01 '22 17:10 lessthanmore1

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?

klein0r avatar Oct 03 '22 17:10 klein0r

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.

mrjeschke avatar Oct 03 '22 18:10 mrjeschke

Löschen eines Objekts per CLI klappt.

mrjeschke avatar Oct 03 '22 18:10 mrjeschke

1

` pi@testpi:~$ iobroker object del 0_userdata.0.TestState2

The object "0_userdata.0.TestState2" was deleted. pi@testpi:~$ `

2

mrjeschke avatar Oct 03 '22 20:10 mrjeschke

Guten Morgen,

löschen von Objekten funktioniert bei mir auch im Command Line Interface:

2022 10 04 - ioBroker del object at cli

mbausm avatar Oct 04 '22 07:10 mbausm

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

  1. Version 6.0.1 vom JavaScript-Adapter nutzt noch 3.1.20
  2. 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...

klein0r avatar Oct 04 '22 09:10 klein0r

habe gerade nochmals eine Test Variable angelegt. Bei mir ist das Attribute objectenthalten. 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"
  }
}

mbausm avatar Oct 04 '22 09:10 mbausm

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

klein0r avatar Oct 04 '22 11:10 klein0r

Danke für Eure Unterstützung!

mbausm avatar Oct 04 '22 11:10 mbausm

Mit Admin Adapter 6.2.12 geht es wieder.

bergjet avatar Oct 04 '22 17:10 bergjet

@bergjet Ja, weil der als Depenency "@iobroker/socket-classes": "^0.4.12" hat und man somit nicht die 0.5.4 bekommt.

klein0r avatar Oct 04 '22 17:10 klein0r

Hi, bei mir das selbe Problem:

Fehler Skript löschen

Admin Version 6.2.22 JavaScript 6.0.3 Node.js 14.20.1 NPM 6.14.17

FreunderNacht avatar Oct 08 '22 10:10 FreunderNacht

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.

ftrueck avatar Oct 09 '22 06:10 ftrueck

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.

klein0r avatar Oct 09 '22 07:10 klein0r

Moin allerseits,

Frage von einem Noob: Wie bekomme ich die 1.01 von Bluefox auf mein System?

emmpee avatar Oct 11 '22 06:10 emmpee

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 😄

klein0r avatar Oct 11 '22 07:10 klein0r

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: @.***>

emmpee avatar Oct 12 '22 02:10 emmpee

Nach Update auf Admin 6.2.23 funktioniert das löschen bei mir wieder. Hier kann also dich gemacht werden 👍

klein0r avatar Oct 13 '22 20:10 klein0r

Ich möchte auf die stable Freigabe warten. Hab es daher bisher noch nicht getestet. Sollte aber dann funktionieren. Danke nochmals!

mbausm avatar Oct 14 '22 06:10 mbausm

Super Arbeit, danke vielmals!

ChrWieg avatar Oct 14 '22 17:10 ChrWieg

Wann kommt denn die Stable ?

basti2015 avatar Oct 14 '22 20:10 basti2015

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 :-)

mbausm avatar Oct 15 '22 11:10 mbausm