@multiplatform.one/frappe-ui 7.19.0 → 7.21.0
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/dist/cjs/FrappeForm.cjs +80 -50
- package/dist/cjs/FrappeForm.native.js +82 -55
- package/dist/cjs/FrappeForm.native.js.map +1 -1
- package/dist/cjs/FrappeListView.cjs +6 -1
- package/dist/cjs/FrappeListView.native.js +6 -1
- package/dist/cjs/FrappeListView.native.js.map +1 -1
- package/dist/cjs/FrappeTable.cjs +10 -1
- package/dist/cjs/FrappeTable.native.js +10 -1
- package/dist/cjs/FrappeTable.native.js.map +1 -1
- package/dist/cjs/formEngine/docPermissions.cjs +83 -0
- package/dist/cjs/formEngine/docPermissions.native.js +155 -0
- package/dist/cjs/formEngine/docPermissions.native.js.map +1 -0
- package/dist/cjs/formEngine/index.cjs +9 -1
- package/dist/cjs/formEngine/index.native.js +8 -0
- package/dist/cjs/formEngine/index.native.js.map +1 -1
- package/dist/cjs/formEngine/useDocRights.cjs +54 -0
- package/dist/cjs/formEngine/useDocRights.native.js +60 -0
- package/dist/cjs/formEngine/useDocRights.native.js.map +1 -0
- package/dist/cjs/formEngine/useSessionRoles.cjs +47 -18
- package/dist/cjs/formEngine/useSessionRoles.native.js +53 -19
- package/dist/cjs/formEngine/useSessionRoles.native.js.map +1 -1
- package/dist/cjs/index.cjs +6 -0
- package/dist/cjs/index.native.js +6 -0
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/esm/FrappeForm.mjs +82 -52
- package/dist/esm/FrappeForm.mjs.map +1 -1
- package/dist/esm/FrappeForm.native.js +84 -57
- package/dist/esm/FrappeForm.native.js.map +1 -1
- package/dist/esm/FrappeListView.mjs +6 -1
- package/dist/esm/FrappeListView.mjs.map +1 -1
- package/dist/esm/FrappeListView.native.js +6 -1
- package/dist/esm/FrappeListView.native.js.map +1 -1
- package/dist/esm/FrappeTable.mjs +10 -1
- package/dist/esm/FrappeTable.mjs.map +1 -1
- package/dist/esm/FrappeTable.native.js +10 -1
- package/dist/esm/FrappeTable.native.js.map +1 -1
- package/dist/esm/formEngine/docPermissions.mjs +55 -0
- package/dist/esm/formEngine/docPermissions.mjs.map +1 -0
- package/dist/esm/formEngine/docPermissions.native.js +124 -0
- package/dist/esm/formEngine/docPermissions.native.js.map +1 -0
- package/dist/esm/formEngine/index.mjs +4 -2
- package/dist/esm/formEngine/index.mjs.map +1 -1
- package/dist/esm/formEngine/index.native.js +4 -2
- package/dist/esm/formEngine/index.native.js.map +1 -1
- package/dist/esm/formEngine/useDocRights.mjs +29 -0
- package/dist/esm/formEngine/useDocRights.mjs.map +1 -0
- package/dist/esm/formEngine/useDocRights.native.js +32 -0
- package/dist/esm/formEngine/useDocRights.native.js.map +1 -0
- package/dist/esm/formEngine/useSessionRoles.mjs +47 -19
- package/dist/esm/formEngine/useSessionRoles.mjs.map +1 -1
- package/dist/esm/formEngine/useSessionRoles.native.js +53 -20
- package/dist/esm/formEngine/useSessionRoles.native.js.map +1 -1
- package/dist/esm/index.mjs +2 -2
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +2 -2
- package/dist/esm/index.native.js.map +1 -1
- package/dist/jsx/FrappeForm.mjs +82 -52
- package/dist/jsx/FrappeForm.mjs.map +1 -1
- package/dist/jsx/FrappeForm.native.js +82 -55
- package/dist/jsx/FrappeForm.native.js.map +1 -1
- package/dist/jsx/FrappeListView.mjs +6 -1
- package/dist/jsx/FrappeListView.mjs.map +1 -1
- package/dist/jsx/FrappeListView.native.js +6 -1
- package/dist/jsx/FrappeListView.native.js.map +1 -1
- package/dist/jsx/FrappeTable.mjs +10 -1
- package/dist/jsx/FrappeTable.mjs.map +1 -1
- package/dist/jsx/FrappeTable.native.js +10 -1
- package/dist/jsx/FrappeTable.native.js.map +1 -1
- package/dist/jsx/formEngine/docPermissions.mjs +55 -0
- package/dist/jsx/formEngine/docPermissions.mjs.map +1 -0
- package/dist/jsx/formEngine/docPermissions.native.js +155 -0
- package/dist/jsx/formEngine/docPermissions.native.js.map +1 -0
- package/dist/jsx/formEngine/index.mjs +4 -2
- package/dist/jsx/formEngine/index.mjs.map +1 -1
- package/dist/jsx/formEngine/index.native.js +8 -0
- package/dist/jsx/formEngine/index.native.js.map +1 -1
- package/dist/jsx/formEngine/useDocRights.mjs +29 -0
- package/dist/jsx/formEngine/useDocRights.mjs.map +1 -0
- package/dist/jsx/formEngine/useDocRights.native.js +60 -0
- package/dist/jsx/formEngine/useDocRights.native.js.map +1 -0
- package/dist/jsx/formEngine/useSessionRoles.mjs +47 -19
- package/dist/jsx/formEngine/useSessionRoles.mjs.map +1 -1
- package/dist/jsx/formEngine/useSessionRoles.native.js +53 -19
- package/dist/jsx/formEngine/useSessionRoles.native.js.map +1 -1
- package/dist/jsx/index.js +2 -2
- package/dist/jsx/index.js.map +1 -1
- package/dist/jsx/index.mjs +2 -2
- package/dist/jsx/index.mjs.map +1 -1
- package/dist/jsx/index.native.js +6 -0
- package/dist/jsx/index.native.js.map +1 -1
- package/package.json +16 -16
- package/src/FrappeForm.tsx +94 -62
- package/src/FrappeListView.tsx +12 -7
- package/src/FrappeTable.rights.spec.tsx +154 -0
- package/src/FrappeTable.tsx +21 -2
- package/src/formEngine/docPermissions.spec.ts +145 -0
- package/src/formEngine/docPermissions.ts +128 -0
- package/src/formEngine/index.ts +14 -1
- package/src/formEngine/useDocRights.ts +41 -0
- package/src/formEngine/useSessionRoles.ts +55 -29
- package/src/frappeRoutes.spec.tsx +116 -4
- package/src/index.ts +14 -0
- package/types/FrappeForm.d.ts.map +1 -1
- package/types/FrappeListView.d.ts +3 -2
- package/types/FrappeListView.d.ts.map +1 -1
- package/types/FrappeTable.d.ts +11 -2
- package/types/FrappeTable.d.ts.map +1 -1
- package/types/formEngine/docPermissions.d.ts +54 -0
- package/types/formEngine/docPermissions.d.ts.map +1 -0
- package/types/formEngine/index.d.ts +6 -1
- package/types/formEngine/index.d.ts.map +1 -1
- package/types/formEngine/useDocRights.d.ts +24 -0
- package/types/formEngine/useDocRights.d.ts.map +1 -0
- package/types/formEngine/useSessionRoles.d.ts +12 -2
- package/types/formEngine/useSessionRoles.d.ts.map +1 -1
- package/types/index.d.ts +2 -2
- package/types/index.d.ts.map +1 -1
|
@@ -4,9 +4,11 @@
|
|
|
4
4
|
// move between the pages on row press, Add, Edit, Save, Cancel and Delete.
|
|
5
5
|
// The bench below is a stock one: getdoctype for meta, /api/resource for
|
|
6
6
|
// reads, the live app's create_doc / update_doc / delete_doc for writes, and
|
|
7
|
-
// a hash name the server picks on create. Poke Move is the doctype.
|
|
7
|
+
// a hash name the server picks on create. Poke Move is the doctype. The
|
|
8
|
+
// session's roles decide what the pages offer (MPO-390): an editor gets Add,
|
|
9
|
+
// Edit, Save and Delete, a reader the list and the record read-only.
|
|
8
10
|
import { renderWithProviders } from "@multiplatform.one/test-utils";
|
|
9
|
-
import { cleanup, fireEvent, screen, waitFor } from "@testing-library/react";
|
|
11
|
+
import { act, cleanup, fireEvent, screen, waitFor } from "@testing-library/react";
|
|
10
12
|
import i18next from "i18next";
|
|
11
13
|
import { initReactI18next } from "react-i18next";
|
|
12
14
|
import { afterEach, beforeAll, beforeEach, describe, expect, it, vi } from "vitest";
|
|
@@ -35,13 +37,20 @@ const pokeMoveMeta = {
|
|
|
35
37
|
],
|
|
36
38
|
permissions: [
|
|
37
39
|
{ role: "System Manager", read: 1, write: 1, create: 1, delete: 1 },
|
|
40
|
+
{ role: "Pokemon Editor", read: 1, write: 1, create: 1, delete: 1 },
|
|
41
|
+
{ role: "Move Author", read: 1, write: 1, create: 1, delete: 1, if_owner: 1 },
|
|
38
42
|
{ role: "Guest", read: 1 },
|
|
39
43
|
],
|
|
40
44
|
};
|
|
41
45
|
|
|
46
|
+
const editor = { user: "editor@pokemon.test", roles: ["Pokemon Editor", "All", "Guest"] };
|
|
47
|
+
const reader = { user: "reader@pokemon.test", roles: ["All", "Guest"] };
|
|
48
|
+
const author = { user: "author@pokemon.test", roles: ["Move Author", "All", "Guest"] };
|
|
49
|
+
|
|
42
50
|
interface Move {
|
|
43
51
|
name: string;
|
|
44
52
|
doctype: string;
|
|
53
|
+
owner?: string;
|
|
45
54
|
move_name?: string;
|
|
46
55
|
power?: number;
|
|
47
56
|
pp?: number;
|
|
@@ -58,6 +67,8 @@ let bench = "";
|
|
|
58
67
|
let moves = new Map<string, Move>();
|
|
59
68
|
let writes: Write[] = [];
|
|
60
69
|
let guest = false;
|
|
70
|
+
let session: { user: string; roles: string[] } | null = editor;
|
|
71
|
+
let sessionAnswered = false;
|
|
61
72
|
let confirmDelete = vi.fn(() => true);
|
|
62
73
|
|
|
63
74
|
function json(body: unknown, status = 200) {
|
|
@@ -82,6 +93,19 @@ function stubBench() {
|
|
|
82
93
|
vi.stubGlobal("fetch", async (input: string | URL | Request, init?: RequestInit) => {
|
|
83
94
|
const url = new URL(String(input instanceof Request ? input.url : input));
|
|
84
95
|
const method = url.pathname.replace(/^\/api\/method\//, "");
|
|
96
|
+
if (method === "frappe.auth.get_logged_user") {
|
|
97
|
+
if (!session) {
|
|
98
|
+
sessionAnswered = true;
|
|
99
|
+
return json({ exc_type: "PermissionError" }, 403);
|
|
100
|
+
}
|
|
101
|
+
return json({ message: session.user });
|
|
102
|
+
}
|
|
103
|
+
if (method === "frappe.core.doctype.user.user.get_roles") {
|
|
104
|
+
sessionAnswered = true;
|
|
105
|
+
return session
|
|
106
|
+
? json({ message: session.roles })
|
|
107
|
+
: json({ exc_type: "PermissionError" }, 403);
|
|
108
|
+
}
|
|
85
109
|
if (method === "frappe.desk.form.load.getdoctype") {
|
|
86
110
|
if (guest) return json({ exc_type: "PermissionError" }, 403);
|
|
87
111
|
return json({ docs: [pokeMoveMeta] });
|
|
@@ -147,6 +171,14 @@ function renderAt(pathname: string, page: "list" | "form") {
|
|
|
147
171
|
return { ...view, pushed };
|
|
148
172
|
}
|
|
149
173
|
|
|
174
|
+
// A surface that never asks for the session is judged on what it shows.
|
|
175
|
+
async function sessionSettled() {
|
|
176
|
+
await waitFor(() => expect(sessionAnswered).toBe(true), { timeout: 1500 }).catch(() => undefined);
|
|
177
|
+
await act(async () => {
|
|
178
|
+
await new Promise((resolve) => setTimeout(resolve, 20));
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
|
|
150
182
|
function button(container: HTMLElement, label: string): HTMLElement {
|
|
151
183
|
const found = Array.from(container.querySelectorAll('[role="button"], button')).find(
|
|
152
184
|
(node) => node.textContent?.trim() === label || node.getAttribute("aria-label") === label,
|
|
@@ -175,10 +207,25 @@ beforeEach(() => {
|
|
|
175
207
|
run += 1;
|
|
176
208
|
bench = `http://routes-${run}.spec.test`;
|
|
177
209
|
guest = false;
|
|
210
|
+
session = editor;
|
|
211
|
+
sessionAnswered = false;
|
|
178
212
|
writes = [];
|
|
179
213
|
moves = new Map([
|
|
180
|
-
[
|
|
181
|
-
|
|
214
|
+
[
|
|
215
|
+
"a1b2c3",
|
|
216
|
+
{ name: "a1b2c3", doctype, owner: author.user, move_name: "tackle", power: 40, pp: 35 },
|
|
217
|
+
],
|
|
218
|
+
[
|
|
219
|
+
"d4e5f6",
|
|
220
|
+
{
|
|
221
|
+
name: "d4e5f6",
|
|
222
|
+
doctype,
|
|
223
|
+
owner: "Administrator",
|
|
224
|
+
move_name: "vine-whip",
|
|
225
|
+
power: 45,
|
|
226
|
+
pp: 25,
|
|
227
|
+
},
|
|
228
|
+
],
|
|
182
229
|
]);
|
|
183
230
|
stubBench();
|
|
184
231
|
confirmDelete = vi.fn(() => true);
|
|
@@ -239,6 +286,22 @@ describe("FrappeListView with a route", () => {
|
|
|
239
286
|
await waitFor(() => expect(screen.getByText("tackle")).toBeTruthy());
|
|
240
287
|
expect(() => button(container, `Add ${doctype}`)).toThrow();
|
|
241
288
|
});
|
|
289
|
+
|
|
290
|
+
it("offers no Add to a signed-in reader whose roles grant no create", async () => {
|
|
291
|
+
session = reader;
|
|
292
|
+
const { container } = renderAt("/moves", "list");
|
|
293
|
+
await waitFor(() => expect(screen.getByText("tackle")).toBeTruthy());
|
|
294
|
+
await sessionSettled();
|
|
295
|
+
expect(() => button(container, `Add ${doctype}`)).toThrow();
|
|
296
|
+
});
|
|
297
|
+
|
|
298
|
+
it("offers no Add when the session's roles can't be read", async () => {
|
|
299
|
+
session = null;
|
|
300
|
+
const { container } = renderAt("/moves", "list");
|
|
301
|
+
await waitFor(() => expect(screen.getByText("tackle")).toBeTruthy());
|
|
302
|
+
await sessionSettled();
|
|
303
|
+
expect(() => button(container, `Add ${doctype}`)).toThrow();
|
|
304
|
+
});
|
|
242
305
|
});
|
|
243
306
|
|
|
244
307
|
describe("FrappeForm with a route", () => {
|
|
@@ -251,6 +314,7 @@ describe("FrappeForm with a route", () => {
|
|
|
251
314
|
);
|
|
252
315
|
expect(() => button(container, "Save")).toThrow();
|
|
253
316
|
|
|
317
|
+
await waitFor(() => expect(button(container, "Edit")).toBeTruthy());
|
|
254
318
|
fireEvent.click(button(container, "Edit"));
|
|
255
319
|
expect(pushed).toEqual(["/moves/a1b2c3/edit"]);
|
|
256
320
|
|
|
@@ -300,6 +364,7 @@ describe("FrappeForm with a route", () => {
|
|
|
300
364
|
it("deletes through delete_doc and returns to the list", async () => {
|
|
301
365
|
const { container, pushed } = renderAt("/moves/d4e5f6", "form");
|
|
302
366
|
await waitFor(() => expect(input(container, "Move Name").value).toBe("vine-whip"));
|
|
367
|
+
await waitFor(() => expect(button(container, "Delete")).toBeTruthy());
|
|
303
368
|
fireEvent.click(button(container, "Delete"));
|
|
304
369
|
|
|
305
370
|
await waitFor(() => expect(pushed).toEqual(["/moves"]));
|
|
@@ -332,4 +397,51 @@ describe("FrappeForm with a route", () => {
|
|
|
332
397
|
expect(screen.queryByText(key)).toBeNull();
|
|
333
398
|
}
|
|
334
399
|
});
|
|
400
|
+
it("shows a signed-in reader the record with no Edit and no Delete", async () => {
|
|
401
|
+
session = reader;
|
|
402
|
+
const { container } = renderAt("/moves/a1b2c3", "form");
|
|
403
|
+
await waitFor(() => expect(input(container, "Move Name").value).toBe("tackle"));
|
|
404
|
+
await sessionSettled();
|
|
405
|
+
expect(input(container, "Move Name").disabled || input(container, "Move Name").readOnly).toBe(
|
|
406
|
+
true,
|
|
407
|
+
);
|
|
408
|
+
expect(() => button(container, "Edit")).toThrow();
|
|
409
|
+
expect(() => button(container, "Delete")).toThrow();
|
|
410
|
+
});
|
|
411
|
+
|
|
412
|
+
it("renders a reader's edit page read-only with no Save", async () => {
|
|
413
|
+
session = reader;
|
|
414
|
+
const { container } = renderAt("/moves/a1b2c3/edit", "form");
|
|
415
|
+
await waitFor(() => expect(input(container, "Move Name").value).toBe("tackle"));
|
|
416
|
+
await sessionSettled();
|
|
417
|
+
const power = input(container, "Power");
|
|
418
|
+
expect(power.disabled || power.readOnly).toBe(true);
|
|
419
|
+
expect(() => button(container, "Save")).toThrow();
|
|
420
|
+
expect(button(container, "Cancel")).toBeTruthy();
|
|
421
|
+
expect(writes).toEqual([]);
|
|
422
|
+
});
|
|
423
|
+
|
|
424
|
+
it("tells a reader on the new page they can't create, with no form to save", async () => {
|
|
425
|
+
session = reader;
|
|
426
|
+
const { container } = renderAt("/moves/new", "form");
|
|
427
|
+
await waitFor(() => expect(screen.getByTestId("frappe-form-not-permitted")).toBeTruthy());
|
|
428
|
+
expect(screen.getByText(`You can't create ${doctype}`)).toBeTruthy();
|
|
429
|
+
expect(() => button(container, "Save")).toThrow();
|
|
430
|
+
expect(screen.queryByLabelText("Move Name", { exact: false })).toBeNull();
|
|
431
|
+
});
|
|
432
|
+
|
|
433
|
+
it("lets an if_owner author edit and delete their own record, not someone else's", async () => {
|
|
434
|
+
session = author;
|
|
435
|
+
const own = renderAt("/moves/a1b2c3", "form");
|
|
436
|
+
await waitFor(() => expect(input(own.container, "Move Name").value).toBe("tackle"));
|
|
437
|
+
await waitFor(() => expect(button(own.container, "Edit")).toBeTruthy());
|
|
438
|
+
expect(button(own.container, "Delete")).toBeTruthy();
|
|
439
|
+
cleanup();
|
|
440
|
+
|
|
441
|
+
const others = renderAt("/moves/d4e5f6", "form");
|
|
442
|
+
await waitFor(() => expect(input(others.container, "Move Name").value).toBe("vine-whip"));
|
|
443
|
+
await sessionSettled();
|
|
444
|
+
expect(() => button(others.container, "Edit")).toThrow();
|
|
445
|
+
expect(() => button(others.container, "Delete")).toThrow();
|
|
446
|
+
});
|
|
335
447
|
});
|
package/src/index.ts
CHANGED
|
@@ -446,6 +446,7 @@ export {
|
|
|
446
446
|
// (`@multiplatform.one/frappe-ui/src/formEngine/formActions`) — its RPC
|
|
447
447
|
// helper names collide with the list and shell surfaces.
|
|
448
448
|
export {
|
|
449
|
+
allDocRights,
|
|
449
450
|
applyFetchedValues,
|
|
450
451
|
buildCopyValues,
|
|
451
452
|
buildCreateDefaults,
|
|
@@ -455,13 +456,18 @@ export {
|
|
|
455
456
|
canReadLevel,
|
|
456
457
|
canWriteLevel,
|
|
457
458
|
computeDirtyFields,
|
|
459
|
+
docRightNames,
|
|
458
460
|
isEmptyValue,
|
|
459
461
|
isFetchLocked,
|
|
460
462
|
isPromptNamed,
|
|
461
463
|
isSameValue,
|
|
464
|
+
resolveDocRights,
|
|
465
|
+
sessionDocRights,
|
|
462
466
|
setCreatePrefill,
|
|
463
467
|
takeCreatePrefill,
|
|
468
|
+
useDocRights,
|
|
464
469
|
useFormEngine,
|
|
470
|
+
useFrappeSession,
|
|
465
471
|
useSessionRoles,
|
|
466
472
|
} from "./formEngine";
|
|
467
473
|
export type {
|
|
@@ -469,12 +475,20 @@ export type {
|
|
|
469
475
|
DocFieldMeta,
|
|
470
476
|
DocLinkMeta,
|
|
471
477
|
DocPermissionRule,
|
|
478
|
+
DocRight,
|
|
479
|
+
DocRights,
|
|
480
|
+
DocRightsOptions,
|
|
481
|
+
DocRightsResult,
|
|
482
|
+
DocShareGrant,
|
|
472
483
|
DoctypeMeta,
|
|
473
484
|
FetchMap,
|
|
474
485
|
FetchRule,
|
|
475
486
|
FormEngine,
|
|
476
487
|
FormTab,
|
|
488
|
+
FrappeSession,
|
|
477
489
|
LevelPerm,
|
|
478
490
|
PermLevelMatrix,
|
|
491
|
+
ResolveDocRightsInput,
|
|
492
|
+
SessionDocRightsInput,
|
|
479
493
|
} from "./formEngine";
|
|
480
494
|
export { connectionFields, connectionsFromMeta, type FrappeConnection } from "./frappeConnections";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FrappeForm.d.ts","sourceRoot":"","sources":["../src/FrappeForm.tsx"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,WAAW,EAEhB,KAAK,WAAW,EACjB,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"FrappeForm.d.ts","sourceRoot":"","sources":["../src/FrappeForm.tsx"],"names":[],"mappings":"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"}
|
|
@@ -34,8 +34,9 @@ export interface FrappeListViewProps<TDoc extends {
|
|
|
34
34
|
* The path the doctype's pages live under (`/moves`). Given, the view is
|
|
35
35
|
* the doctype's list page: it carries the list page template with the
|
|
36
36
|
* doctype as its title, a row opens `route/<name>` and Add opens
|
|
37
|
-
* `route/new` through the FrappeProvider's navigation. Add
|
|
38
|
-
*
|
|
37
|
+
* `route/new` through the FrappeProvider's navigation. Add, routed or
|
|
38
|
+
* given, shows only when the session's roles grant create on the doctype,
|
|
39
|
+
* so a reader who cannot load its meta is not offered a form.
|
|
39
40
|
*/
|
|
40
41
|
route?: string;
|
|
41
42
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FrappeListView.d.ts","sourceRoot":"","sources":["../src/FrappeListView.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAEhE,OAAO,KAAoD,MAAM,OAAO,CAAC;AAGzE,OAAO,EAA+C,KAAK,WAAW,EAAE,MAAM,SAAS,CAAC;AAExF,OAAO,EAOL,KAAK,cAAc,EACpB,MAAM,+BAA+B,CAAC;AAIvC,OAAO,EAAc,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"FrappeListView.d.ts","sourceRoot":"","sources":["../src/FrappeListView.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAEhE,OAAO,KAAoD,MAAM,OAAO,CAAC;AAGzE,OAAO,EAA+C,KAAK,WAAW,EAAE,MAAM,SAAS,CAAC;AAExF,OAAO,EAOL,KAAK,cAAc,EACpB,MAAM,+BAA+B,CAAC;AAIvC,OAAO,EAAc,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAIhE,OAAO,EAAuB,KAAK,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEjF,OAAO,EAAwB,KAAK,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAExF,UAAU,eAAe;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,KAAK,KAAK,CAAC,SAAS,CAAC;CACpD;AAED,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAErD,MAAM,WAAW,mBAAmB,CAAC,IAAI,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAE,SAAQ,IAAI,CAC/F,WAAW,EACX,UAAU,CACX;IACC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,SAAS,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC;IAC1C;;;;OAIG;IACH,WAAW,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC1C,OAAO,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM,IAAI,GAAG,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,mBAAmB,CAAC,CAAC;IAC9F,eAAe,CAAC,EAAE,YAAY,CAAC;IAC/B,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,CAAC;IAChD,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;IAC3C,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;IACnB;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,OAAO,CAAC,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,SAAS,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;IACvC,OAAO,CAAC,EAAE,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;IAC3C,aAAa,CAAC,EAAE,eAAe,EAAE,CAAC;IAClC;;;;OAIG;IACH,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,KAAK,CAAC,SAAS,CAAC;IACpE,2DAA2D;IAC3D,SAAS,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,aAAa,CAAC,CAAC;IACxF,iEAAiE;IACjE,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iFAAiF;IACjF,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,0EAA0E;IAC1E,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,0EAA0E;IAC1E,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7D,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACvC;AAiED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAAE,EAC7E,OAAO,EACP,MAAM,EACN,WAAW,EACX,OAAO,EACP,eAAwB,EACxB,QAAQ,EAAE,kBAAkB,EAC5B,gBAAgB,EAChB,WAAW,EAAE,eAAe,EAC5B,KAAK,EAAE,SAAS,EAChB,KAAK,EACL,OAAO,EACP,KAAK,EACL,WAAW,EACX,OAAO,EACP,aAAa,EACb,UAAU,EACV,SAAS,EACT,UAAU,EACV,OAAO,EACP,QAAQ,EACR,UAAiB,EACjB,OAAc,EACd,WAAkB,EAClB,iBAAyB,EAEzB,kBAAkB,EAAE,mBAAmB,EACvC,OAAO,EACP,IAAI,EACJ,WAAW,EACX,GAAG,UAAU,EACd,EAAE,mBAAmB,CAAC,IAAI,CAAC,2CA+kB3B"}
|
package/types/FrappeTable.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type DataTableColumn, type DataTableProps, type DataTableState, type FilterValue, type FilterableField } from "@multiplatform.one/table";
|
|
2
2
|
import React from "react";
|
|
3
|
+
import type { DocRights } from "./formEngine/docPermissions";
|
|
3
4
|
/**
|
|
4
5
|
* Props for the FrappeTable component.
|
|
5
6
|
*
|
|
@@ -110,9 +111,17 @@ export interface FrappeTableProps<TDoc extends {
|
|
|
110
111
|
* meta-derived menu offers the doctype's fields, including ones the
|
|
111
112
|
* server refuses to filter on, so a live app should pass the honoured
|
|
112
113
|
* set by hand. Passing it skips the meta read entirely, which also drops
|
|
113
|
-
* title-field row labels back to the document name
|
|
114
|
+
* title-field row labels back to the document name, unless the table
|
|
115
|
+
* still reads meta for `rights`.
|
|
114
116
|
*/
|
|
115
117
|
filterableFields?: FilterableField[];
|
|
118
|
+
/**
|
|
119
|
+
* The session's rights on the doctype. Without write the cells render
|
|
120
|
+
* read-only, without create there is no add row, without delete no row
|
|
121
|
+
* delete. Omitted, the table resolves them from the doctype's meta and the
|
|
122
|
+
* session's roles; a fixtures connection withholds nothing.
|
|
123
|
+
*/
|
|
124
|
+
rights?: Pick<DocRights, "create" | "write" | "delete">;
|
|
116
125
|
}
|
|
117
126
|
/**
|
|
118
127
|
* Map one table FilterValue to a Frappe filter tuple. Returns null when the
|
|
@@ -169,5 +178,5 @@ export declare function filterValueToFrappeTuple(fieldname: string, filterValue:
|
|
|
169
178
|
export declare function FrappeTable<TDoc extends {
|
|
170
179
|
name: string;
|
|
171
180
|
doctype: string;
|
|
172
|
-
}>({ baseURL, auth, syncOptions, doctype, columns, fields, filters: initialFilters, onRowClick, loading, error, savedFilters, canCreateGlobalFilters, userId, serverSide, onStateChange: onStateChangeProp, refreshToken, paginationMode, loadPage: loadPageProp, filterableFields: filterableFieldsProp, layout, ...dataTableProps }: FrappeTableProps<TDoc>): import("react/jsx-runtime").JSX.Element;
|
|
181
|
+
}>({ baseURL, auth, syncOptions, doctype, columns, fields, filters: initialFilters, onRowClick, loading, error, savedFilters, canCreateGlobalFilters, userId, serverSide, onStateChange: onStateChangeProp, refreshToken, paginationMode, loadPage: loadPageProp, filterableFields: filterableFieldsProp, rights: rightsProp, layout, ...dataTableProps }: FrappeTableProps<TDoc>): import("react/jsx-runtime").JSX.Element;
|
|
173
182
|
//# sourceMappingURL=FrappeTable.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FrappeTable.d.ts","sourceRoot":"","sources":["../src/FrappeTable.tsx"],"names":[],"mappings":"AAOA,OAAO,EAEL,KAAK,eAAe,EAEpB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,eAAe,EAErB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,KAA4D,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"FrappeTable.d.ts","sourceRoot":"","sources":["../src/FrappeTable.tsx"],"names":[],"mappings":"AAOA,OAAO,EAEL,KAAK,eAAe,EAEpB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,eAAe,EAErB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,KAA4D,MAAM,OAAO,CAAC;AAOjF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAI7D;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,WAAW,gBAAgB,CAAC,IAAI,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAE,SAAQ,IAAI,CAC5F,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAC7B,MAAM,GAAG,SAAS,CACnB;IACC,6EAA6E;IAC7E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mCAAmC;IACnC,IAAI,CAAC,EAAE;QACL,0CAA0C;QAC1C,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,sFAAsF;QACtF,KAAK,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;QAClD,oDAAoD;QACpD,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IACF,kDAAkD;IAClD,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB,oCAAoC;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,uCAAuC;IACvC,OAAO,EAAE,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;IAC1C;;;;;;;;;;OAUG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC;IAC1C,8BAA8B;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM,IAAI,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;IACpE;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;IAC1C,+BAA+B;IAC/B,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,4BAA4B;IAC5B,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,KAAK,CAAC,SAAS,CAAC;IAC1C,mCAAmC;IACnC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,6CAA6C;IAC7C,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,wCAAwC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;IAChD;;;;;OAKG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;;;;;;;OAWG;IACH,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAC;IACrC;;;;;OAKG;IACH,MAAM,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC,CAAC;CACzD;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,WAAW,GACvB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CA6ClC;AAkED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,wBAAgB,WAAW,CAAC,IAAI,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAAE,EAC1E,OAAO,EACP,IAAI,EACJ,WAAW,EACX,OAAO,EACP,OAAO,EACP,MAAM,EACN,OAAO,EAAE,cAAc,EACvB,UAAU,EACV,OAAO,EACP,KAAK,EACL,YAAoB,EACpB,sBAA8B,EAC9B,MAAM,EACN,UAAkB,EAClB,aAAa,EAAE,iBAAiB,EAChC,YAAY,EACZ,cAAwB,EACxB,QAAQ,EAAE,YAAY,EACtB,gBAAgB,EAAE,oBAAoB,EACtC,MAAM,EAAE,UAAU,EAClB,MAAM,EACN,GAAG,cAAc,EAClB,EAAE,gBAAgB,CAAC,IAAI,CAAC,2CAuiBxB"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Doc-level rights for the session, the permlevel-0 half of desk's
|
|
3
|
+
* permission model (fieldPermissions.ts is the field-level half).
|
|
4
|
+
*
|
|
5
|
+
* Server parity with frappe/permissions.py `get_role_permissions`: a right is
|
|
6
|
+
* granted when a permlevel-0 DocPerm row of one of the session's roles grants
|
|
7
|
+
* it. When every granting row is `if_owner`, the right holds only on records
|
|
8
|
+
* the session user owns, except `create`, which an `if_owner` row still
|
|
9
|
+
* grants, and `read` / `select` at doctype level, which stay open so the list
|
|
10
|
+
* can be read (the server narrows it to the user's own rows). Administrator
|
|
11
|
+
* holds every right, as the server's `allow_everything()` does. A record's
|
|
12
|
+
* DocShare rows for the user or for everyone add read, write and share, as
|
|
13
|
+
* desk perm.js applies `docinfo.shared`.
|
|
14
|
+
*/
|
|
15
|
+
import type { DocPermissionRule, DoctypeMeta } from "./doctypeMeta";
|
|
16
|
+
export declare const docRightNames: readonly ["select", "read", "write", "create", "delete", "submit", "cancel", "amend", "print", "email", "report", "import", "export", "share"];
|
|
17
|
+
export type DocRight = (typeof docRightNames)[number];
|
|
18
|
+
export type DocRights = Record<DocRight, boolean>;
|
|
19
|
+
/** A DocShare row as the live collection or docinfo carries it. */
|
|
20
|
+
export interface DocShareGrant {
|
|
21
|
+
user?: string | null;
|
|
22
|
+
everyone?: number | boolean | null;
|
|
23
|
+
read?: number | boolean | null;
|
|
24
|
+
write?: number | boolean | null;
|
|
25
|
+
share?: number | boolean | null;
|
|
26
|
+
}
|
|
27
|
+
export interface ResolveDocRightsInput {
|
|
28
|
+
permissions: readonly DocPermissionRule[] | undefined;
|
|
29
|
+
roles: readonly string[];
|
|
30
|
+
user?: string;
|
|
31
|
+
/** The record's owner. Omitted, the rights are the doctype's (a list, a new record). */
|
|
32
|
+
owner?: string;
|
|
33
|
+
shares?: readonly DocShareGrant[];
|
|
34
|
+
}
|
|
35
|
+
export declare function allDocRights(granted: boolean): DocRights;
|
|
36
|
+
export declare function resolveDocRights({ permissions, roles, user, owner, shares, }: ResolveDocRightsInput): DocRights;
|
|
37
|
+
export interface SessionDocRightsInput {
|
|
38
|
+
/** A fixtures-only connection: no session exists, so nothing is withheld. */
|
|
39
|
+
fixtures: boolean;
|
|
40
|
+
meta: Pick<DoctypeMeta, "permissions"> | undefined;
|
|
41
|
+
/** The session's roles; undefined while they load or when they can't be read. */
|
|
42
|
+
roles: readonly string[] | undefined;
|
|
43
|
+
user?: string;
|
|
44
|
+
owner?: string;
|
|
45
|
+
shares?: readonly DocShareGrant[];
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* The rights a surface offers. A fixtures connection keeps every action; a
|
|
49
|
+
* live one grants nothing until both the doctype's meta and the session's
|
|
50
|
+
* roles are known, so a reader who can't load meta (Guest) or whose roles
|
|
51
|
+
* can't be read is shown a read-only surface.
|
|
52
|
+
*/
|
|
53
|
+
export declare function sessionDocRights({ fixtures, meta, roles, user, owner, shares, }: SessionDocRightsInput): DocRights;
|
|
54
|
+
//# sourceMappingURL=docPermissions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"docPermissions.d.ts","sourceRoot":"","sources":["../../src/formEngine/docPermissions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEpE,eAAO,MAAM,aAAa,gJAehB,CAAC;AAEX,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAEtD,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAElD,mEAAmE;AACnE,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;IACnC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;CACjC;AAED,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,SAAS,iBAAiB,EAAE,GAAG,SAAS,CAAC;IACtD,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,wFAAwF;IACxF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;CACnC;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,CAIxD;AAID,wBAAgB,gBAAgB,CAAC,EAC/B,WAAW,EACX,KAAK,EACL,IAAI,EACJ,KAAK,EACL,MAAM,GACP,EAAE,qBAAqB,GAAG,SAAS,CA2BnC;AAED,MAAM,WAAW,qBAAqB;IACpC,6EAA6E;IAC7E,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,GAAG,SAAS,CAAC;IACnD,iFAAiF;IACjF,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;CACnC;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,QAAQ,EACR,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,KAAK,EACL,MAAM,GACP,EAAE,qBAAqB,GAAG,SAAS,CAInC"}
|
|
@@ -24,5 +24,10 @@ export { buildCopyValues, buildCreateDefaults, buildFormTabs, isPromptNamed } fr
|
|
|
24
24
|
export type { BuildTabsOptions, FormTab } from "./formLayout";
|
|
25
25
|
export { useFormEngine } from "./useFormEngine";
|
|
26
26
|
export type { FormEngine } from "./useFormEngine";
|
|
27
|
-
export { useSessionRoles } from "./useSessionRoles";
|
|
27
|
+
export { useFrappeSession, useSessionRoles } from "./useSessionRoles";
|
|
28
|
+
export type { FrappeSession } from "./useSessionRoles";
|
|
29
|
+
export { allDocRights, docRightNames, resolveDocRights, sessionDocRights } from "./docPermissions";
|
|
30
|
+
export type { DocRight, DocRights, DocShareGrant, ResolveDocRightsInput, SessionDocRightsInput, } from "./docPermissions";
|
|
31
|
+
export { useDocRights } from "./useDocRights";
|
|
32
|
+
export type { DocRightsOptions, DocRightsResult } from "./useDocRights";
|
|
28
33
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/formEngine/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE/F,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACvF,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErE,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC/E,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAEvD,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEhF,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEtE,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClG,YAAY,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE9D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/formEngine/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE/F,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACvF,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErE,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC/E,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAEvD,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEhF,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEtE,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClG,YAAY,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE9D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACtE,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACnG,YAAY,EACV,QAAQ,EACR,SAAS,EACT,aAAa,EACb,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { type DocRights, type DocShareGrant } from "./docPermissions";
|
|
2
|
+
import type { DoctypeMeta } from "./doctypeMeta";
|
|
3
|
+
import { type SessionConnection } from "./useSessionRoles";
|
|
4
|
+
export interface DocRightsOptions {
|
|
5
|
+
/** Roles to resolve against instead of the session's. */
|
|
6
|
+
roles?: string[];
|
|
7
|
+
/** The record's owner; omitted for the doctype's rights. */
|
|
8
|
+
owner?: string;
|
|
9
|
+
shares?: readonly DocShareGrant[];
|
|
10
|
+
}
|
|
11
|
+
export interface DocRightsResult {
|
|
12
|
+
rights: DocRights;
|
|
13
|
+
/** The session's roles are still loading, so `rights` withholds what they may grant. */
|
|
14
|
+
pending: boolean;
|
|
15
|
+
user?: string;
|
|
16
|
+
roles?: string[];
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* The session's rights on a doctype, or on one record of it, from the
|
|
20
|
+
* doctype's DocPerm rows (`meta.permissions`) and the session's roles.
|
|
21
|
+
* See `sessionDocRights` for the fixtures and unknown-session rules.
|
|
22
|
+
*/
|
|
23
|
+
export declare function useDocRights(connection: SessionConnection | undefined, meta: DoctypeMeta | undefined, { roles: rolesOverride, owner, shares }?: DocRightsOptions): DocRightsResult;
|
|
24
|
+
//# sourceMappingURL=useDocRights.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDocRights.d.ts","sourceRoot":"","sources":["../../src/formEngine/useDocRights.ts"],"names":[],"mappings":"AACA,OAAO,EAAoB,KAAK,SAAS,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACxF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAoB,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE7E,MAAM,WAAW,gBAAgB;IAC/B,yDAAyD;IACzD,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,4DAA4D;IAC5D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;CACnC;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,SAAS,CAAC;IAClB,wFAAwF;IACxF,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAC1B,UAAU,EAAE,iBAAiB,GAAG,SAAS,EACzC,IAAI,EAAE,WAAW,GAAG,SAAS,EAC7B,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,GAAE,gBAAqB,GAC7D,eAAe,CAUjB"}
|
|
@@ -11,9 +11,19 @@
|
|
|
11
11
|
*/
|
|
12
12
|
import { type FrappeConnection } from "./formActions";
|
|
13
13
|
/** A connection that may not name a bench yet (a provider's config before it resolves). */
|
|
14
|
-
type SessionConnection = Omit<FrappeConnection, "baseURL"> & {
|
|
14
|
+
export type SessionConnection = Omit<FrappeConnection, "baseURL"> & {
|
|
15
15
|
baseURL?: string;
|
|
16
16
|
};
|
|
17
|
+
export interface FrappeSession {
|
|
18
|
+
user?: string;
|
|
19
|
+
roles?: string[];
|
|
20
|
+
/**
|
|
21
|
+
* `idle`: no bench to ask (no connection, a fixtures-only one, or none
|
|
22
|
+
* given). `loading`: asked, not answered. `ready`: user and roles known.
|
|
23
|
+
* `failed`: the bench answered without a session (Guest) or refused.
|
|
24
|
+
*/
|
|
25
|
+
state: "idle" | "loading" | "ready" | "failed";
|
|
26
|
+
}
|
|
27
|
+
export declare function useFrappeSession(connection: SessionConnection | undefined): FrappeSession;
|
|
17
28
|
export declare function useSessionRoles(connection: SessionConnection | undefined): string[] | undefined;
|
|
18
|
-
export {};
|
|
19
29
|
//# sourceMappingURL=useSessionRoles.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSessionRoles.d.ts","sourceRoot":"","sources":["../../src/formEngine/useSessionRoles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAoB,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"useSessionRoles.d.ts","sourceRoot":"","sources":["../../src/formEngine/useSessionRoles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAoB,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AA0BxE,2FAA2F;AAC3F,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAC,GAAG;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzF,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB;;;;OAIG;IACH,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC;CAChD;AAKD,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,iBAAiB,GAAG,SAAS,GAAG,aAAa,CAsCzF;AAED,wBAAgB,eAAe,CAAC,UAAU,EAAE,iBAAiB,GAAG,SAAS,GAAG,MAAM,EAAE,GAAG,SAAS,CAE/F"}
|
package/types/index.d.ts
CHANGED
|
@@ -114,7 +114,7 @@ export { useFrappePagination, type UseFrappePaginationOptions, type UseFrappePag
|
|
|
114
114
|
export { useFrappeCollection, useLiveQuery } from "@multiplatform.one/frappe";
|
|
115
115
|
export type { DataTableColumn } from "@multiplatform.one/table";
|
|
116
116
|
export { FrappeReportView, useFrappeReport, compactFilterValues, normalizeReportColumn, normalizeReportPayload, normalizeReportRows, reportColumnToDataTableColumn, reportFieldtypeToTableField, reportRowLabel, scrubFieldname, type FrappeReportColumn, type FrappeReportConnection, type FrappeReportFilterDef, type FrappeReportFixture, type FrappeReportPayload, type FrappeReportRow, type FrappeReportRunResponse, type FrappeReportValues, type FrappeReportViewProps, type UseFrappeReportOptions, type UseFrappeReportResult, } from "./FrappeReportView";
|
|
117
|
-
export { applyFetchedValues, buildCopyValues, buildCreateDefaults, buildFetchMap, buildFormTabs, buildPermLevelMatrix, canReadLevel, canWriteLevel, computeDirtyFields, isEmptyValue, isFetchLocked, isPromptNamed, isSameValue, setCreatePrefill, takeCreatePrefill, useFormEngine, useSessionRoles, } from "./formEngine";
|
|
118
|
-
export type { BuildTabsOptions, DocFieldMeta, DocLinkMeta, DocPermissionRule, DoctypeMeta, FetchMap, FetchRule, FormEngine, FormTab, LevelPerm, PermLevelMatrix, } from "./formEngine";
|
|
117
|
+
export { allDocRights, applyFetchedValues, buildCopyValues, buildCreateDefaults, buildFetchMap, buildFormTabs, buildPermLevelMatrix, canReadLevel, canWriteLevel, computeDirtyFields, docRightNames, isEmptyValue, isFetchLocked, isPromptNamed, isSameValue, resolveDocRights, sessionDocRights, setCreatePrefill, takeCreatePrefill, useDocRights, useFormEngine, useFrappeSession, useSessionRoles, } from "./formEngine";
|
|
118
|
+
export type { BuildTabsOptions, DocFieldMeta, DocLinkMeta, DocPermissionRule, DocRight, DocRights, DocRightsOptions, DocRightsResult, DocShareGrant, DoctypeMeta, FetchMap, FetchRule, FormEngine, FormTab, FrappeSession, LevelPerm, PermLevelMatrix, ResolveDocRightsInput, SessionDocRightsInput, } from "./formEngine";
|
|
119
119
|
export { connectionFields, connectionsFromMeta, type FrappeConnection } from "./frappeConnections";
|
|
120
120
|
//# sourceMappingURL=index.d.ts.map
|
package/types/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|