iobroker.eos-admin 7.9.36 → 7.9.37

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -25,9 +25,9 @@
25
25
  "Password is too short (min 6 chars)": "Password is too short (min 6 chars)",
26
26
  "Password repeat": "Password repeat",
27
27
  "Password successfully changed for \"%s\"": "Password successfully changed for \"%s\"",
28
- "Schützt ausgewählte Adapter für Installateur-/Endkundenbenutzer über Administrator-ACLs und EOS-UI-Regeln. dontDelete und nondeletable bleiben false, damit Updates weiter funktionieren.": "Protects selected adapters from installer/end-customer users via administrator ACLs and EOS UI rules. dontDelete and nondeletable remain false so updates keep working.",
28
+ "Schützt ausgewählte Adapter in der EOS Oberfläche vor kritischen Aktionen durch Installateur- und Endkundenrollen. Adaptereigene Funktionen und Updates bleiben möglich.": "Protects selected adapters from installer/end-customer users via administrator ACLs and EOS UI rules. dontDelete and nondeletable remain false so updates keep working.",
29
29
  "Set password": "Set password",
30
- "Setzt Administrator-ACLs auf die geschützte Adapterliste. Installateur-/Endkundenbenutzer können diese Adapter nicht stoppen, aktivieren oder löschen; Administratoren können sie weiterhin updaten und warten.": "Applies administrator ACLs to the protected adapter list. Installer/end-customer users cannot stop, enable or delete these adapters; administrators can still update and maintain them.",
30
+ "Blendet kritische Aktionen für Installateur- und Endkundenrollen aus. Harte ACL-Sperren werden nicht auf Runtime-Adapter gesetzt, damit BackItUp und adaptereigene Konfigurationen stabil bleiben.": "Applies administrator ACLs to the protected adapter list. Installer/end-customer users cannot stop, enable or delete these adapters; administrators can still update and maintain them.",
31
31
  "Sperr-Adresse des alten Admins": "Legacy admin lock bind address",
32
32
  "Sperr-Port des alten Admins": "Legacy admin lock port",
33
33
  "The password for user \"%s\" was successfully changed": "The password for user \"%s\" was successfully changed",
package/build/main.js CHANGED
@@ -737,7 +737,8 @@ class Admin extends adapter_core_1.Adapter {
737
737
  return this.config.eosHideLegacyAdminFromNonAdmins !== false && this.config.eosHideLegacyAdminForNonAdmins !== false && this.config.nexowattHideLegacyAdminForNonAdmins !== false;
738
738
  }
739
739
  shouldApplyAdminOnlyAclToProtectedAdapters() {
740
- return this.config.eosApplyAdminOnlyAclToProtectedAdapters !== false;
740
+ const config = this.config;
741
+ return config.eosStrictProtectedAdapterAcl === true && this.config.eosApplyAdminOnlyAclToProtectedAdapters === true;
741
742
  }
742
743
  getAdminOnlyGroup() {
743
744
  const configuredGroups = normalizeAdminOnlyGroups(this.config.eosAdminOnlyGroups || this.config.eosSecurityAdminGroups);
@@ -837,8 +838,8 @@ class Admin extends adapter_core_1.Adapter {
837
838
  obj.common.nondeletable = false;
838
839
  changed = true;
839
840
  }
841
+ const targetAcl = this.getAdminOnlyAcl();
840
842
  if (options.adminOnlyAcl) {
841
- const targetAcl = this.getAdminOnlyAcl();
842
843
  const acl = (obj.acl ||= {});
843
844
  if (acl.owner !== targetAcl.owner) {
844
845
  acl.owner = targetAcl.owner;
@@ -853,6 +854,10 @@ class Admin extends adapter_core_1.Adapter {
853
854
  changed = true;
854
855
  }
855
856
  }
857
+ else if (obj.acl && obj.acl.owner === targetAcl.owner && obj.acl.ownerGroup === targetAcl.ownerGroup && obj.acl.object === targetAcl.object) {
858
+ delete obj.acl;
859
+ changed = true;
860
+ }
856
861
  if (changed) {
857
862
  await this.setForeignObjectAsync(id, obj);
858
863
  }
@@ -863,7 +868,12 @@ class Admin extends adapter_core_1.Adapter {
863
868
  return;
864
869
  }
865
870
  const isEosAdmin = adapter === EOS_ADMIN_ADAPTER_NAME;
866
- const adminOnlyAcl = isEosAdmin || this.shouldApplyAdminOnlyAclToProtectedAdapters();
871
+ const adminOnlyAcl = isEosAdmin || (this.shouldApplyAdminOnlyAclToProtectedAdapters() && adapter !== 'backitup');
872
+ // v37 BackItUp/runtime-adapter compatibility: keep default protection UI/role based.
873
+ // Do not rewrite common/ACL of runtime adapters unless explicitly configured.
874
+ if (!isEosAdmin && !adminOnlyAcl) {
875
+ return;
876
+ }
867
877
  let changed = await this.ensureObjectProtectionPolicy(`system.adapter.${adapter}`, {
868
878
  keepDontDelete: false,
869
879
  adminOnlyAcl,
@@ -0,0 +1,13 @@
1
+ # NexoWatt EOS Admin v37
2
+
3
+ ## Fokus
4
+
5
+ Diese Version stabilisiert drei produktive Bereiche:
6
+
7
+ - Benachrichtigungsdialoge bleiben vollständig klickbar und können sauber geschlossen bzw. bestätigt werden.
8
+ - BackItUp und andere Runtime-Adapter werden vom EOS-Sicherheitswächter standardmäßig nicht mehr über Objekt-/ACL-Umschreibungen verändert. Der Schutz läuft über EOS Rollen/UI.
9
+ - EOS-Sicherheitstexte werden auch auf Adapter-Konfigurationsseiten gegen UTF-8/Latin1-Mojibake repariert.
10
+
11
+ ## Hinweise
12
+
13
+ BackItUp-Fehler wie `cannot found source "undefined" for compress` kommen typischerweise aus der BackItUp-Quell-/Zielkonfiguration. v37 sorgt dafür, dass EOS Admin BackItUp nicht durch ACL/common-Änderungen beeinflusst. Die BackItUp-Konfiguration selbst muss weiterhin im BackItUp-Adapter geprüft werden.
package/io-package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "common": {
3
3
  "name": "eos-admin",
4
- "version": "7.9.36",
4
+ "version": "7.9.37",
5
5
  "titleLang": {
6
6
  "en": "NexoWatt EOS Admin",
7
7
  "de": "NexoWatt EOS Admin",
@@ -18,9 +18,9 @@
18
18
  "connectionType": "local",
19
19
  "dataSource": "push",
20
20
  "news": {
21
- "7.9.36": {
22
- "en": "Restores official admin session handling, fixes bad login redirect paths, and enables full native adapter configuration compatibility without EOS overlays blocking adapter UI actions.",
23
- "de": "Stellt die offizielle Admin-Sitzungslogik wieder her, korrigiert fehlerhafte Login-Redirect-Pfade und aktiviert volle native Adapter-Konfigurationskompatibilität ohne blockierende EOS-Overlays."
21
+ "7.9.37": {
22
+ "en": "Fixes notification dialog closing/acknowledgement handling, keeps BackItUp untouched by EOS object protection, and repairs German EOS Security text encoding on settings pages.",
23
+ "de": "Korrigiert das Schließen/Bestätigen von Benachrichtigungen, lässt BackItUp von EOS-Objektschutz unverändert und repariert deutsche EOS-Sicherheitsbeschriftungen in den Einstellungen."
24
24
  },
25
25
  "7.9.35": {
26
26
  "en": "Fixes EOS Admin login redirect/logout origin handling and restores reliable interaction with adapter instance configuration dialogs.",
@@ -206,7 +206,7 @@
206
206
  "icon": "admin.svg",
207
207
  "messagebox": true,
208
208
  "enabled": true,
209
- "extIcon": "https://unpkg.com/iobroker.eos-admin@7.9.36/admin/admin.svg",
209
+ "extIcon": "https://unpkg.com/iobroker.eos-admin@7.9.37/admin/admin.svg",
210
210
  "keywords": [
211
211
  "NexoWatt",
212
212
  "EOS",
@@ -217,7 +217,7 @@
217
217
  "licensed"
218
218
  ],
219
219
  "compact": true,
220
- "readme": "https://unpkg.com/iobroker.eos-admin@7.9.36/README.md",
220
+ "readme": "https://unpkg.com/iobroker.eos-admin@7.9.37/README.md",
221
221
  "authors": [
222
222
  "bluefox <bluefox@ccu.io>",
223
223
  "hobbyquaker <hq@ccu.io>"
@@ -286,7 +286,7 @@
286
286
  "nondeletable": false,
287
287
  "allowAdapterUpdate": true,
288
288
  "allowAdapterDelete": false,
289
- "meta": "https://unpkg.com/iobroker.eos-admin@7.9.36/io-package.json",
289
+ "meta": "https://unpkg.com/iobroker.eos-admin@7.9.37/io-package.json",
290
290
  "npmPackage": "iobroker.eos-admin"
291
291
  },
292
292
  "native": {
@@ -349,9 +349,10 @@
349
349
  }
350
350
  ],
351
351
  "eosAdminOnlyGroup": "system.group.administrator",
352
- "eosApplyAdminOnlyAclToProtectedAdapters": true,
352
+ "eosApplyAdminOnlyAclToProtectedAdapters": false,
353
353
  "eosAssistantEnabled": true,
354
- "eosAssistantAdminOnly": false
354
+ "eosAssistantAdminOnly": false,
355
+ "eosStrictProtectedAdapterAcl": false
355
356
  },
356
357
  "notifications": [
357
358
  {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "iobroker.eos-admin",
3
- "description": "NexoWatt EOS Admin standalone interface for Energy Operation System",
4
- "version": "7.9.36",
3
+ "description": "NexoWatt EOS Admin standalone interface with notification, BackItUp isolation and EOS Security text fixes",
4
+ "version": "7.9.37",
5
5
  "contributors": [
6
6
  "bluefox <dogafox@gmail.com>",
7
7
  "apollon77",
@@ -62,5 +62,8 @@ if (!webBuild.includes('Follow upstream admin semantics again')) fail('build/lib
62
62
  if (index.includes('eos-hard-logout.js')) fail('adminWww/index.html must not load the removed custom hard-logout timer');
63
63
  if (!branding.includes('isAdapterConfigSurface')) fail('eos-branding.js lacks native adapter config safe-mode detection');
64
64
  if (!branding.includes('Adapter UIs must remain 100% functional')) fail('eos-branding.js lacks native adapter config interaction guard');
65
+ if (!branding.includes('v37 eos notification close compatibility')) fail('eos-branding.js lacks v37 notification close guard');
66
+ const mainBuild = fs.readFileSync(path.join(root, 'build/main.js'), 'utf8');
67
+ if (!mainBuild.includes('v37 BackItUp/runtime-adapter compatibility')) fail('build/main.js lacks v37 BackItUp compatibility guard');
65
68
 
66
69
  console.log('[NexoWatt EOS package validation] OK');