iobroker.eos-admin 7.9.36 → 7.9.38

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.38",
5
5
  "titleLang": {
6
6
  "en": "NexoWatt EOS Admin",
7
7
  "de": "NexoWatt EOS Admin",
@@ -18,9 +18,13 @@
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.38": {
22
+ "en": "Fixed native dialog/popup compatibility and adapter install search after EOS overlay changes.",
23
+ "de": "Native Dialoge, Popups und Adapter-Installationssuche nach EOS-Overlay-Anpassungen korrigiert."
24
+ },
25
+ "7.9.37": {
26
+ "en": "Fixes notification dialog closing/acknowledgement handling, keeps BackItUp untouched by EOS object protection, and repairs German EOS Security text encoding on settings pages.",
27
+ "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
28
  },
25
29
  "7.9.35": {
26
30
  "en": "Fixes EOS Admin login redirect/logout origin handling and restores reliable interaction with adapter instance configuration dialogs.",
@@ -206,7 +210,7 @@
206
210
  "icon": "admin.svg",
207
211
  "messagebox": true,
208
212
  "enabled": true,
209
- "extIcon": "https://unpkg.com/iobroker.eos-admin@7.9.36/admin/admin.svg",
213
+ "extIcon": "https://unpkg.com/iobroker.eos-admin@7.9.38/admin/admin.svg",
210
214
  "keywords": [
211
215
  "NexoWatt",
212
216
  "EOS",
@@ -217,7 +221,7 @@
217
221
  "licensed"
218
222
  ],
219
223
  "compact": true,
220
- "readme": "https://unpkg.com/iobroker.eos-admin@7.9.36/README.md",
224
+ "readme": "https://unpkg.com/iobroker.eos-admin@7.9.38/README.md",
221
225
  "authors": [
222
226
  "bluefox <bluefox@ccu.io>",
223
227
  "hobbyquaker <hq@ccu.io>"
@@ -286,7 +290,7 @@
286
290
  "nondeletable": false,
287
291
  "allowAdapterUpdate": true,
288
292
  "allowAdapterDelete": false,
289
- "meta": "https://unpkg.com/iobroker.eos-admin@7.9.36/io-package.json",
293
+ "meta": "https://unpkg.com/iobroker.eos-admin@7.9.38/io-package.json",
290
294
  "npmPackage": "iobroker.eos-admin"
291
295
  },
292
296
  "native": {
@@ -349,9 +353,10 @@
349
353
  }
350
354
  ],
351
355
  "eosAdminOnlyGroup": "system.group.administrator",
352
- "eosApplyAdminOnlyAclToProtectedAdapters": true,
356
+ "eosApplyAdminOnlyAclToProtectedAdapters": false,
353
357
  "eosAssistantEnabled": true,
354
- "eosAssistantAdminOnly": false
358
+ "eosAssistantAdminOnly": false,
359
+ "eosStrictProtectedAdapterAcl": false
355
360
  },
356
361
  "notifications": [
357
362
  {
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.38",
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('v38: All native Admin dialogs') || !branding.includes('ensurePopupCompatibility')) fail('eos-branding.js lacks v38 popup compatibility 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');