@things-factory/auth-ui 10.1.4 → 10.1.6
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-client/components/change-password.d.ts +11 -0
- package/dist-client/components/change-password.js +103 -6
- package/dist-client/components/change-password.js.map +1 -1
- package/dist-client/components/role-detail.d.ts +144 -0
- package/dist-client/components/role-detail.js +698 -0
- package/dist-client/components/role-detail.js.map +1 -0
- package/dist-client/components/user-detail.d.ts +151 -0
- package/dist-client/components/user-detail.js +631 -0
- package/dist-client/components/user-detail.js.map +1 -0
- package/dist-client/components/user-invite.d.ts +80 -0
- package/dist-client/components/user-invite.js +422 -0
- package/dist-client/components/user-invite.js.map +1 -0
- package/dist-client/entries/auth/activate.d.ts +0 -1
- package/dist-client/entries/auth/activate.js +0 -8
- package/dist-client/entries/auth/activate.js.map +1 -1
- package/dist-client/pages/role/role-list-page.d.ts +112 -0
- package/dist-client/pages/role/role-list-page.js +514 -0
- package/dist-client/pages/role/role-list-page.js.map +1 -0
- package/dist-client/pages/role/role-privilege-page.d.ts +123 -0
- package/dist-client/pages/role/role-privilege-page.js +801 -0
- package/dist-client/pages/role/role-privilege-page.js.map +1 -0
- package/dist-client/pages/user/user-list-page.d.ts +88 -0
- package/dist-client/pages/user/user-list-page.js +474 -0
- package/dist-client/pages/user/user-list-page.js.map +1 -0
- package/dist-client/route.js +5 -2
- package/dist-client/route.js.map +1 -1
- package/dist-client/tsconfig.tsbuildinfo +1 -1
- package/dist-server/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -3
- package/things-factory.config.js +3 -2
- package/translations/en.json +46 -3
- package/translations/ja.json +0 -2
- package/translations/ko.json +47 -4
- package/translations/ms.json +0 -2
- package/translations/zh.json +0 -2
- package/dist-client/components/contact-us.d.ts +0 -20
- package/dist-client/components/contact-us.js +0 -121
- package/dist-client/components/contact-us.js.map +0 -1
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import '@material/web/icon/icon.js';
|
|
2
|
+
import '@material/web/textfield/filled-text-field.js';
|
|
3
|
+
import '@material/web/checkbox/checkbox.js';
|
|
4
|
+
import '@operato/oops/ox-oops-note.js';
|
|
5
|
+
import type { CSSResultGroup } from 'lit';
|
|
6
|
+
import { PageView } from '@operato/shell';
|
|
7
|
+
declare const RolePrivilegePage_base: (new (...args: any[]) => import("lit").LitElement) & typeof PageView;
|
|
8
|
+
/**
|
|
9
|
+
* 한 역할이 무엇을 열 수 있나 — **왼쪽에 모듈, 오른쪽에 그 모듈에서 되는 일.**
|
|
10
|
+
*
|
|
11
|
+
* ── 왜 페이지인가 (UX 레인, 2026-09-10) ─────────────────────────────────────
|
|
12
|
+
* 처음에는 이것을 팝업에 넣었고 사용자에게 「팝업이 너무 작다」를 들었다. 그때 `size` 를 키우는
|
|
13
|
+
* 것으로 답했는데 그것이 증상 처리였다 — **모듈이 46개고 각 줄에 설명 문장이 붙으면 팝업에
|
|
14
|
+
* 안 들어간다.** 자리 자체가 틀렸다.
|
|
15
|
+
*
|
|
16
|
+
* 그리고 이 저장소의 관례가 그렇다: `editable` 컬럼 139 파일 대 `openPopup` 96 파일 —
|
|
17
|
+
* **격자에서 고치고, 팝업은 격자가 못 담는 것에 쓴다.** 역할의 이름과 설명은 목록 격자에서
|
|
18
|
+
* 고치고(`updateMultipleRole`), 권한은 격자가 못 담으므로 이 페이지가 받는다.
|
|
19
|
+
*
|
|
20
|
+
* ── 「배울 것이 없다」를 고치는 자리 ────────────────────────────────────────
|
|
21
|
+
* 사용자 평가가 이랬다 — **「화면으로부터 배울 수 있는 것이 없고, 혼란스럽고, 어렵고, 불편하다」.**
|
|
22
|
+
* 옛 격자는 `board` 라고만 쓰고 「쓰기를 켜면 이 사람이 무엇을 할 수 있게 되나」를 어디에도 안
|
|
23
|
+
* 적었다. 설명을 체크박스 `title` 에 숨겨 놨는데 마우스를 올려야 나오고, 그건 배우는 길이 아니다.
|
|
24
|
+
*
|
|
25
|
+
* 그래서 **설명은 본문이다.** 체크박스 옆에 문장이 함께 선다.
|
|
26
|
+
*
|
|
27
|
+
* ⚠ **그런데 그 문장이 아직 시스템에 없다.** `Privilege.description` 은 칸도 있고
|
|
28
|
+
* `createPrivilege` 가 받지만, 부팅 동기화는 `{ category, name }` 둘만 저장하고
|
|
29
|
+
* (`auth-base/server/index.ts:34-36`) 그 mutation 을 부르는 화면이 없다 — 713개 선언이 전부
|
|
30
|
+
* 빈 설명이다. 그래서 이 화면은 **없으면 없다고 말한다.** 코드 낱말(`board mutation`)을 다시
|
|
31
|
+
* 보여 주지 않고, 지어내지도 않는다. 글은 UX 레인이 `privilege.category.*` 키로 채우는 중이다.
|
|
32
|
+
*
|
|
33
|
+
* ── 저장 범위는 서버가 준 목록이다 ──────────────────────────────────────────
|
|
34
|
+
* 옛 편집기는 `querySelectorAll('input:checked')` 로 보냈다. 왼쪽에서 다른 모듈을 고르면
|
|
35
|
+
* 앞 모듈의 체크박스는 **DOM 에 없다** — 그 방식이면 모듈을 옮겨 다니는 것만으로 권한이
|
|
36
|
+
* 조용히 떨어진다. 여기서는 `rolePrivileges` 가 준 전체가 범위이고, 켠 것은 `assigned` 에만
|
|
37
|
+
* 있다. 화면이 무엇을 그렸는지와 무관하다.
|
|
38
|
+
*/
|
|
39
|
+
export declare class RolePrivilegePage extends RolePrivilegePage_base {
|
|
40
|
+
static styles: CSSResultGroup;
|
|
41
|
+
/** 셸이 `role-privileges/<id>` 의 뒤를 `lifecycle.resourceId` 로 준다. */
|
|
42
|
+
lifecycle: any;
|
|
43
|
+
private subject;
|
|
44
|
+
private modules;
|
|
45
|
+
private assigned;
|
|
46
|
+
private holders;
|
|
47
|
+
private selected;
|
|
48
|
+
private keyword;
|
|
49
|
+
private mySubdomain;
|
|
50
|
+
private fetchState;
|
|
51
|
+
private saving;
|
|
52
|
+
/**
|
|
53
|
+
* 부모 도메인의 역할은 여기서 못 고친다 — `updateRole` 의 범위가 `domain.id` 하나다.
|
|
54
|
+
* 목록이 상속으로 보여 주므로 관리자가 여기까지 온다. 읽기 전용으로 두고 어디로 가야 하는지
|
|
55
|
+
* 말한다. (프로필의 `domain` 에 `id` 가 없어서 `subdomain` 으로 견준다.)
|
|
56
|
+
*/
|
|
57
|
+
private get inherited();
|
|
58
|
+
private get savable();
|
|
59
|
+
private get visibleModules();
|
|
60
|
+
get context(): {
|
|
61
|
+
title: any;
|
|
62
|
+
help: string;
|
|
63
|
+
actions: {
|
|
64
|
+
title: string;
|
|
65
|
+
action: () => Promise<void>;
|
|
66
|
+
}[];
|
|
67
|
+
};
|
|
68
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
69
|
+
/**
|
|
70
|
+
* Which role am I editing, and what is it for.
|
|
71
|
+
*
|
|
72
|
+
* The page header carried the name and nothing else, and the description - the one line that
|
|
73
|
+
* says what the job is - was only visible back on the list. A reader who arrives by link had
|
|
74
|
+
* no way to tell "Administrator" from "PLANT-MANAGER" beyond the word itself.
|
|
75
|
+
*
|
|
76
|
+
* A role with no description says so. The next thing to do is write one, in the list grid.
|
|
77
|
+
*/
|
|
78
|
+
private renderSubject;
|
|
79
|
+
/**
|
|
80
|
+
* Everything this role has, in one block.
|
|
81
|
+
*
|
|
82
|
+
* The two panels answer "what can this role do in this module". They cannot answer "what does
|
|
83
|
+
* this role do at all" - that reading costs one click per module, 46 of them, and the person
|
|
84
|
+
* granting a role needs the whole answer before they grant it.
|
|
85
|
+
*
|
|
86
|
+
* Only what is on. The full matrix is what the panels are for, and repeating it here would
|
|
87
|
+
* put the same 46 modules on screen twice.
|
|
88
|
+
*
|
|
89
|
+
* Each entry moves the panels to that module, so this block doubles as the way in.
|
|
90
|
+
*/
|
|
91
|
+
private renderGranted;
|
|
92
|
+
/**
|
|
93
|
+
* 이 역할을 가진 사람.
|
|
94
|
+
*
|
|
95
|
+
* 권한을 켜기 **전에** 누가 영향을 받는지 보이는 자리다. 아무도 안 가진 역할을 고치는 것과
|
|
96
|
+
* 40명이 가진 역할을 고치는 것은 다른 일인데, 옛 화면은 그 둘이 똑같이 보였다.
|
|
97
|
+
*/
|
|
98
|
+
private renderHolders;
|
|
99
|
+
private renderModules;
|
|
100
|
+
private renderAxes;
|
|
101
|
+
private cellCount;
|
|
102
|
+
pageUpdated(changes: any, lifecycle: any): Promise<void>;
|
|
103
|
+
/**
|
|
104
|
+
* 한 번의 질의로 **전체 권한과 이 역할이 가진 것**을 함께 읽는다(`rolePrivileges(roleId:)`).
|
|
105
|
+
*
|
|
106
|
+
* 역할 이름과 가진 사람은 `roles(filters: id)` 로 같은 문서에서 받는다 — 옛 편집기는 역할을
|
|
107
|
+
* **이름**으로 다시 찾았고, 부모 도메인에 같은 이름이 있으면 남의 역할을 그렸다.
|
|
108
|
+
*/
|
|
109
|
+
private fetch;
|
|
110
|
+
/** 평평한 목록을 모듈로 접는다. 축 순서는 아는 것 먼저, 나머지는 이름 순. */
|
|
111
|
+
private build;
|
|
112
|
+
private onToggle;
|
|
113
|
+
/**
|
|
114
|
+
* 저장.
|
|
115
|
+
*
|
|
116
|
+
* **범위는 `modules` 전체다.** 왼쪽에서 다른 모듈을 고르면 앞 모듈의 체크박스는 DOM 에
|
|
117
|
+
* 없는데, 그것을 훑어 보내던 것이 옛 편집기가 권한을 조용히 떼던 자리다.
|
|
118
|
+
*
|
|
119
|
+
* `privileges` 만 보낸다 — 이름과 설명은 목록 격자가 소유한다.
|
|
120
|
+
*/
|
|
121
|
+
private onSave;
|
|
122
|
+
}
|
|
123
|
+
export {};
|