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.
- package/admin/i18n/de.json +7 -3
- package/admin/i18n/en.json +5 -3
- package/admin/i18n/es.json +5 -3
- package/admin/i18n/fr.json +5 -3
- package/admin/i18n/it.json +5 -3
- package/admin/i18n/nl.json +5 -3
- package/admin/i18n/pl.json +5 -3
- package/admin/i18n/pt.json +5 -3
- package/admin/i18n/ru.json +5 -3
- package/admin/i18n/uk.json +5 -3
- package/admin/i18n/zh-cn.json +5 -3
- package/admin/jsonConfig.json5 +8 -7
- package/adminWww/assets/bootstrap-COulQZax.js +1 -1
- package/adminWww/css/eos-branding.css +99 -1
- package/adminWww/index.html +4 -4
- package/adminWww/js/eos-branding.js +171 -6
- package/adminWww/js/eos-runtime-fixes.js +144 -0
- package/adminWww/js/eos-security-ui.js +37 -7
- package/build/i18n/de.json +2 -2
- package/build/i18n/en.json +2 -2
- package/build/main.js +13 -3
- package/docs/NEXOWATT_EOS_UI_V37_STABILITY_DE.md +13 -0
- package/io-package.json +10 -9
- package/package.json +2 -2
- package/tools/nexowatt-validate-package.cjs +3 -0
package/build/i18n/en.json
CHANGED
|
@@ -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
|
|
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
|
-
"
|
|
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
|
-
|
|
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.
|
|
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.
|
|
22
|
-
"en": "
|
|
23
|
-
"de": "
|
|
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.
|
|
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.
|
|
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.
|
|
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":
|
|
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
|
|
4
|
-
"version": "7.9.
|
|
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');
|