@kreiseck/kasseneck-api 0.6.7 → 0.6.8
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.
|
@@ -254,12 +254,24 @@ function pflichtfeld(functionName, daten, feld) {
|
|
|
254
254
|
}
|
|
255
255
|
return wert;
|
|
256
256
|
}
|
|
257
|
-
/**
|
|
257
|
+
/**
|
|
258
|
+
* Rechte lesen: Schalter werden zu Wahrheitswerten, alles Fehlende gilt als
|
|
259
|
+
* nicht erteilt.
|
|
260
|
+
*
|
|
261
|
+
* **Reichweiten sind keine Schalter.** `cancelScope` und `receiptsScope`
|
|
262
|
+
* tragen `none | own | all`; wer sie mit `=== true` liest, macht aus jedem
|
|
263
|
+
* `own` ein `false` — und [cancelScopeOf] liest daraus dann `none`. Der Kassier
|
|
264
|
+
* saehe seine eigenen Belege nicht mehr und der Chef koennte nicht stornieren,
|
|
265
|
+
* obwohl das Backend beides erlaubt. Diese beiden Felder kommen deshalb als
|
|
266
|
+
* Text durch, aber nur mit bekanntem Inhalt: ein unbekannter Wert wird nicht
|
|
267
|
+
* zur Reichweite erhoben (die Grenze zieht ohnehin das Backend, die Oberflaeche
|
|
268
|
+
* soll im Zweifel weniger anbieten).
|
|
269
|
+
*/
|
|
258
270
|
function rechte(wert) {
|
|
259
271
|
const roh = (typeof wert === 'object' && wert !== null && !Array.isArray(wert) ? wert : {});
|
|
260
272
|
const gelesen = {};
|
|
261
273
|
for (const [name, inhalt] of Object.entries(roh)) {
|
|
262
|
-
gelesen[name] = inhalt === true;
|
|
274
|
+
gelesen[name] = REICHWEITEN_FELDER.has(name) ? reichweite(inhalt) : inhalt === true;
|
|
263
275
|
}
|
|
264
276
|
return {
|
|
265
277
|
sell: false,
|
|
@@ -271,6 +283,12 @@ function rechte(wert) {
|
|
|
271
283
|
...gelesen,
|
|
272
284
|
};
|
|
273
285
|
}
|
|
286
|
+
/** Felder, die eine Reichweite tragen statt eines Schalters. */
|
|
287
|
+
const REICHWEITEN_FELDER = new Set(['cancelScope', 'receiptsScope']);
|
|
288
|
+
/** Bekannte Reichweite oder `none` — dieselbe Zurueckhaltung wie [cancelScopeOf]. */
|
|
289
|
+
function reichweite(wert) {
|
|
290
|
+
return wert === 'own' || wert === 'all' || wert === 'none' ? wert : 'none';
|
|
291
|
+
}
|
|
274
292
|
/** Leere Zeichenkette statt `undefined` — Anzeigefelder duerfen leer sein. */
|
|
275
293
|
const text = (wert) => (typeof wert === 'string' ? wert : '');
|
|
276
294
|
/** Die Antwort meldete Erfolg, trug aber nicht, was der Aufruf zusagt. */
|
|
@@ -245,12 +245,24 @@ function pflichtfeld(functionName, daten, feld) {
|
|
|
245
245
|
}
|
|
246
246
|
return wert;
|
|
247
247
|
}
|
|
248
|
-
/**
|
|
248
|
+
/**
|
|
249
|
+
* Rechte lesen: Schalter werden zu Wahrheitswerten, alles Fehlende gilt als
|
|
250
|
+
* nicht erteilt.
|
|
251
|
+
*
|
|
252
|
+
* **Reichweiten sind keine Schalter.** `cancelScope` und `receiptsScope`
|
|
253
|
+
* tragen `none | own | all`; wer sie mit `=== true` liest, macht aus jedem
|
|
254
|
+
* `own` ein `false` — und [cancelScopeOf] liest daraus dann `none`. Der Kassier
|
|
255
|
+
* saehe seine eigenen Belege nicht mehr und der Chef koennte nicht stornieren,
|
|
256
|
+
* obwohl das Backend beides erlaubt. Diese beiden Felder kommen deshalb als
|
|
257
|
+
* Text durch, aber nur mit bekanntem Inhalt: ein unbekannter Wert wird nicht
|
|
258
|
+
* zur Reichweite erhoben (die Grenze zieht ohnehin das Backend, die Oberflaeche
|
|
259
|
+
* soll im Zweifel weniger anbieten).
|
|
260
|
+
*/
|
|
249
261
|
function rechte(wert) {
|
|
250
262
|
const roh = (typeof wert === 'object' && wert !== null && !Array.isArray(wert) ? wert : {});
|
|
251
263
|
const gelesen = {};
|
|
252
264
|
for (const [name, inhalt] of Object.entries(roh)) {
|
|
253
|
-
gelesen[name] = inhalt === true;
|
|
265
|
+
gelesen[name] = REICHWEITEN_FELDER.has(name) ? reichweite(inhalt) : inhalt === true;
|
|
254
266
|
}
|
|
255
267
|
return {
|
|
256
268
|
sell: false,
|
|
@@ -262,6 +274,12 @@ function rechte(wert) {
|
|
|
262
274
|
...gelesen,
|
|
263
275
|
};
|
|
264
276
|
}
|
|
277
|
+
/** Felder, die eine Reichweite tragen statt eines Schalters. */
|
|
278
|
+
const REICHWEITEN_FELDER = new Set(['cancelScope', 'receiptsScope']);
|
|
279
|
+
/** Bekannte Reichweite oder `none` — dieselbe Zurueckhaltung wie [cancelScopeOf]. */
|
|
280
|
+
function reichweite(wert) {
|
|
281
|
+
return wert === 'own' || wert === 'all' || wert === 'none' ? wert : 'none';
|
|
282
|
+
}
|
|
265
283
|
/** Leere Zeichenkette statt `undefined` — Anzeigefelder duerfen leer sein. */
|
|
266
284
|
const text = (wert) => (typeof wert === 'string' ? wert : '');
|
|
267
285
|
/** Die Antwort meldete Erfolg, trug aber nicht, was der Aufruf zusagt. */
|