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.
- 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 +82 -1
- package/adminWww/index.html +4 -4
- package/adminWww/js/eos-branding.js +169 -6
- package/adminWww/js/eos-runtime-fixes.js +144 -0
- package/adminWww/js/eos-security-ui.js +40 -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 +14 -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.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.
|
|
22
|
-
"en": "
|
|
23
|
-
"de": "
|
|
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.
|
|
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.
|
|
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.
|
|
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":
|
|
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
|
|
4
|
-
"version": "7.9.
|
|
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');
|