@things-factory/auth-ui 10.1.6 → 10.1.13

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.
Files changed (45) hide show
  1. package/dist-client/components/role-privilege-picker-state.d.ts +11 -0
  2. package/dist-client/components/role-privilege-picker-state.js +15 -0
  3. package/dist-client/components/role-privilege-picker-state.js.map +1 -0
  4. package/dist-client/components/role-privilege-picker-state.test.js +20 -0
  5. package/dist-client/components/role-privilege-picker-state.test.js.map +1 -0
  6. package/dist-client/components/role-privilege-picker.d.ts +40 -0
  7. package/dist-client/components/role-privilege-picker.js +77 -0
  8. package/dist-client/components/role-privilege-picker.js.map +1 -0
  9. package/dist-client/components/role-template-picker.d.ts +83 -0
  10. package/dist-client/components/role-template-picker.js +487 -0
  11. package/dist-client/components/role-template-picker.js.map +1 -0
  12. package/dist-client/pages/role/role-list-page.d.ts +104 -13
  13. package/dist-client/pages/role/role-list-page.js +396 -72
  14. package/dist-client/pages/role/role-list-page.js.map +1 -1
  15. package/dist-client/pages/role/role-privilege-page.d.ts +113 -37
  16. package/dist-client/pages/role/role-privilege-page.js +426 -139
  17. package/dist-client/pages/role/role-privilege-page.js.map +1 -1
  18. package/dist-client/tsconfig.tsbuildinfo +1 -1
  19. package/package.json +4 -4
  20. package/translations/en.json +27 -1
  21. package/translations/ja.json +14 -1
  22. package/translations/ko.json +26 -0
  23. package/translations/ms.json +15 -2
  24. package/translations/zh.json +14 -1
  25. package/dist-client/components/create-role.d.ts +0 -1
  26. package/dist-client/components/create-role.js +0 -117
  27. package/dist-client/components/create-role.js.map +0 -1
  28. package/dist-client/components/credential-manager.d.ts +0 -11
  29. package/dist-client/components/credential-manager.js +0 -64
  30. package/dist-client/components/credential-manager.js.map +0 -1
  31. package/dist-client/components/role-detail.d.ts +0 -144
  32. package/dist-client/components/role-detail.js +0 -698
  33. package/dist-client/components/role-detail.js.map +0 -1
  34. package/dist-client/components/role-edit-form.js +0 -95
  35. package/dist-client/components/role-edit-form.js.map +0 -1
  36. package/dist-client/components/role-privilege-editor.d.ts +0 -1
  37. package/dist-client/components/role-privilege-editor.js +0 -368
  38. package/dist-client/components/role-privilege-editor.js.map +0 -1
  39. package/dist-client/pages/role/role-management.d.ts +0 -4
  40. package/dist-client/pages/role/role-management.js +0 -137
  41. package/dist-client/pages/role/role-management.js.map +0 -1
  42. package/dist-client/pages/user/user-management.d.ts +0 -35
  43. package/dist-client/pages/user/user-management.js +0 -223
  44. package/dist-client/pages/user/user-management.js.map +0 -1
  45. /package/dist-client/components/{role-edit-form.d.ts → role-privilege-picker-state.test.d.ts} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@things-factory/auth-ui",
3
- "version": "10.1.6",
3
+ "version": "10.1.13",
4
4
  "main": "dist-server/index.js",
5
5
  "browser": "dist-client/index.js",
6
6
  "things-factory": true,
@@ -37,10 +37,10 @@
37
37
  "@operato/p13n": "^10.0.0",
38
38
  "@operato/popup": "^10.0.0",
39
39
  "@operato/styles": "^10.0.0",
40
- "@things-factory/auth-base": "^10.1.6",
41
- "@things-factory/more-base": "^10.1.4",
40
+ "@things-factory/auth-base": "^10.1.7",
41
+ "@things-factory/more-base": "^10.1.7",
42
42
  "base64url": "^3.0.1",
43
43
  "clipboard": "^2.0.6"
44
44
  },
45
- "gitHead": "963aeb9ac470be5aea05bb5842a0a92afcab6036"
45
+ "gitHead": "f2cd3d27e32e71cca1d3af5499ef54249b1cc111"
46
46
  }
@@ -1,16 +1,22 @@
1
1
  {
2
2
  "button.activate": "activate",
3
+ "button.add what it can do": "Add what it can do",
3
4
  "button.cancel": "cancel",
5
+ "button.close": "Close",
4
6
  "button.confirm": "confirm",
5
7
  "button.create": "create",
8
+ "button.create role": "create role",
6
9
  "button.deactivate": "deactivate",
7
10
  "button.delete": "delete",
8
11
  "button.delete role": "delete role",
9
12
  "button.delete this appliance": "delete this appliance",
10
13
  "button.delete user": "delete user",
14
+ "button.drop": "Take away",
15
+ "button.edit privileges": "Edit privileges",
11
16
  "button.generate new access token": "generate new access token",
12
17
  "button.go to home": "go to home",
13
18
  "button.logout": "logout",
19
+ "button.name it yourself": "name it yourself",
14
20
  "button.remove from domain": "Remove from domain",
15
21
  "button.remove owner": "remove owner",
16
22
  "button.save": "save",
@@ -41,6 +47,7 @@
41
47
  "field.forgot-password": "forgot password",
42
48
  "field.granted at": "granted at",
43
49
  "field.granted by": "granted by",
50
+ "field.granted privileges": "What it can do",
44
51
  "field.hidden": "hidden",
45
52
  "field.ip_address": "IP address",
46
53
  "field.module": "Module",
@@ -56,10 +63,12 @@
56
63
  "field.required privilege": "required privilege",
57
64
  "field.required role": "required role",
58
65
  "field.roles": "roles",
66
+ "field.seat": "seat",
59
67
  "field.serial-no": "serial #",
60
68
  "field.sign in": "sign in",
61
69
  "field.sign out": "sign out",
62
70
  "field.sign up": "sign up",
71
+ "field.source": "Source",
63
72
  "field.source-domain": "source domain",
64
73
  "field.status": "status",
65
74
  "field.tag": "tag",
@@ -77,6 +86,7 @@
77
86
  "label.add to domain": "add to domain",
78
87
  "label.add user": "Add user",
79
88
  "label.admin-user": "admin",
89
+ "label.all": "All",
80
90
  "label.application": "application",
81
91
  "label.banned-user": "banned",
82
92
  "label.blacklist": "blacklist",
@@ -96,12 +106,14 @@
96
106
  "label.email": "email",
97
107
  "label.execute": "Execute",
98
108
  "label.inactive-user": "inactive",
109
+ "label.inherited": "Inherited",
99
110
  "label.invite customer": "invite customer",
100
111
  "label.invite user": "invite user",
101
112
  "label.language": "language",
102
113
  "label.locked-user": "locked",
103
114
  "label.login_history": "login history",
104
115
  "label.name": "name",
116
+ "label.ours": "Ours",
105
117
  "label.password": "password",
106
118
  "label.privilege": "privilege",
107
119
  "label.protected-request-ip": "safe request IP",
@@ -124,9 +136,12 @@
124
136
  "label.write": "Write",
125
137
  "label.x description": "{x} description",
126
138
  "label.x name": "{x} name",
139
+ "text.a blank seat opens nothing until you give it privileges": "A blank seat opens nothing until you give it privileges.",
140
+ "text.a role of this name exists and will be added to": "A role of this name already exists. It will be used as it stands and these privileges added to it.",
127
141
  "text.account exists so joins immediately": "This account already exists. Adding it lets them in right away.",
128
142
  "text.account will be created with the default password": "No account uses this address yet. One is created with the default password, which you have to tell them yourself.",
129
143
  "text.add_domain_owner_description": "grant another domain member owner permission.",
144
+ "text.already in this domain": "already here",
130
145
  "text.and x more": "and {x} more",
131
146
  "text.appliance": "terminal appliance",
132
147
  "text.appliance credential": "terminal appliance credential",
@@ -168,6 +183,7 @@
168
183
  "text.new password": "new password",
169
184
  "text.no account and no default password": "No account uses this address, and this system has no default password. They have to sign up first.",
170
185
  "text.no description for this privilege": "No description has been written for this privilege yet.",
186
+ "text.no description for this role": "No description yet — write one in the role list.",
171
187
  "text.no domain available": "no domain available",
172
188
  "text.no one holds this role yet": "No one holds this role yet.",
173
189
  "text.no other user yet": "no other user yet",
@@ -178,13 +194,16 @@
178
194
  "text.no role yet": "No role defined yet",
179
195
  "text.none on": "none",
180
196
  "text.not declared for this module": "This module does not declare this privilege.",
197
+ "text.nothing is on for this role yet": "This role opens nothing yet. Add what it can do below.",
181
198
  "text.nothing matches x": "No module name contains \"{x}\".",
199
+ "text.opens nothing, receives approvals": "opens nothing — this seat receives approvals",
182
200
  "text.owner opens everything without a role": "As the owner you can open every screen without a role. Everyone else needs one.",
183
201
  "text.owner_transfer_completed": "owner transfer completed",
184
202
  "text.password becomes the default and must be told to them": "The password goes back to the default. No email is sent, so you have to tell them the new password yourself.",
185
203
  "text.password rule": "make sure it's at least 15 characters OR at least 8 characters including a number and a lowercase letter.",
186
204
  "text.passwords do not match": "these passwords don't match.",
187
205
  "text.pick a module on the left": "Pick a module on the left to see what it lets this role do.",
206
+ "text.pick a seat to see what it opens": "Pick a seat to see what it opens.",
188
207
  "text.please enter the email of the user you want to transfer owner": "please enter the email of the user you want to transfer owner",
189
208
  "text.please enter username or email": "please enter username or email",
190
209
  "text.please try again": "Try again in a moment.",
@@ -201,19 +220,25 @@
201
220
  "text.signed in": "signed in",
202
221
  "text.signed out": "signed out",
203
222
  "text.source_and_target_domain_cannot_be_same": "source and target domain cannot be same",
223
+ "text.start from a blank seat": "start from a blank seat",
224
+ "text.struck through are not installed here": "Struck through are privileges this installation does not have.",
204
225
  "text.subdomain_change_critical_warning": "warning: changing the subdomain will alter the full access URL (/{type}/{subdomain}/...) and may invalidate existing external links, bookmarks, and active user sessions. please proceed with caution.",
205
226
  "text.synchronize": "synchronize",
206
227
  "text.they lose access to this domain but keep the account": "They lose access to this domain. The account itself remains, so you can add them again later.",
228
+ "text.this plant may call the seat what it likes": "Call the seat whatever this plant calls it.",
207
229
  "text.token expiry time": "token expiry time",
208
230
  "text.unlocks in x minutes": "unlocks in {x} minutes",
209
231
  "text.updated_successfully": "updated successfully",
210
232
  "text.user invitation prompt": "Please enter the username or email address of the user you wish to invite.",
211
233
  "text.user management": "user management",
234
+ "text.view only": "Inherited role — view only",
212
235
  "text.without a role they see nothing": "Without a role there will be no screens for them.",
213
236
  "text.x is required": "Please enter the {x}.",
237
+ "text.x modules y privileges": "{x} modules · {y} privileges",
238
+ "text.x not here": "{x} not installed here",
214
239
  "text.x of y on": "{x} of {y} on",
215
240
  "text.x on": "{x} on",
216
- "text.x people hold this role": "{x} people hold this role",
241
+ "text.x people hold this role": "Held by {x}",
217
242
  "text.x_cannot_delete": "{x} cannot be deleted",
218
243
  "text.x_created_successfully": "{x} created successfully",
219
244
  "text.x_deleted_successfully": "{x} deleted successfully",
@@ -236,6 +261,7 @@
236
261
  "title.partners": "partners",
237
262
  "title.protected-privileges": "protected privileges",
238
263
  "title.reset password": "reset password",
264
+ "title.role privileges": "Role privileges",
239
265
  "title.secure-ip-list": "secured IP list",
240
266
  "title.sign in": "sign in",
241
267
  "title.sign up": "sign up",
@@ -3,6 +3,7 @@
3
3
  "button.cancel": "キャンセル",
4
4
  "button.confirm": "確認",
5
5
  "button.create": "作成",
6
+ "button.create role": "create role",
6
7
  "button.deactivate": "非アクティブ化",
7
8
  "button.delete": "削除",
8
9
  "button.delete role": "ロール削除",
@@ -11,6 +12,7 @@
11
12
  "button.generate new access token": "新しいアクセス トークンを生成",
12
13
  "button.go to home": "ホームへ移動",
13
14
  "button.logout": "ログアウト",
15
+ "button.name it yourself": "name it yourself",
14
16
  "button.save": "保存",
15
17
  "button.security-key registration": "セキュリティキー登録",
16
18
  "button.show-all": "すべて表示",
@@ -47,6 +49,7 @@
47
49
  "field.private-key": "プライベートキー",
48
50
  "field.required privilege": "必要な権限",
49
51
  "field.required role": "必要な役割",
52
+ "field.seat": "seat",
50
53
  "field.serial-no": "シリアル番号",
51
54
  "field.sign in": "ログイン",
52
55
  "field.sign out": "ログアウト",
@@ -107,6 +110,9 @@
107
110
  "label.whitelist": "ホワイトリスト",
108
111
  "label.x description": "{x}説明",
109
112
  "label.x name": "{x}名前",
113
+ "text.a blank seat opens nothing until you give it privileges": "A blank seat opens nothing until you give it privileges.",
114
+ "text.a role of this name exists and will be added to": "A role of this name already exists. It will be used as it stands and these privileges added to it.",
115
+ "text.already in this domain": "already here",
110
116
  "text.appliance": "端末装置",
111
117
  "text.appliance credential": "端末装置の資格情報",
112
118
  "text.application management": "アプリケーション管理",
@@ -131,14 +137,15 @@
131
137
  "text.do_you_want_to_invite_x": "{x}を招待しますか?",
132
138
  "text.domain management": "ドメイン管理",
133
139
  "text.domain_name_change_warning": "ドメイン名を変更しますか?(サブドメインは変更されず維持されます。)",
134
- "text.subdomain_change_critical_warning": "警告: サブドメインを変更すると、フルアクセスURL(/{type}/{subdomain}/...)が変更され、既存のブックマークや外部リンク、アクティブなセッションが無効化される可能性があります。慎重に確認して進めてください。",
135
140
  "text.email is not matched": "メールが一致しません.",
136
141
  "text.env-var-list-page": "環境変数リスト",
137
142
  "text.new password": "新しいパスワード",
138
143
  "text.no domain available": "使用できるドメインがありません.",
144
+ "text.opens nothing, receives approvals": "opens nothing — this seat receives approvals",
139
145
  "text.owner_transfer_completed": "owner変更を完了しました.",
140
146
  "text.password rule": "少なくとも15文字以上, あるいは数字と小文字を含めて8文字以上でなければなりません.",
141
147
  "text.passwords do not match": "パスワードが一致しません.",
148
+ "text.pick a seat to see what it opens": "Pick a seat to see what it opens.",
142
149
  "text.please enter the email of the user you want to transfer owner": "管理者に変更するユーザーのメールを入力してください.",
143
150
  "text.please_fill_all_required_fields": "すべての必須フィールドに入力してください",
144
151
  "text.privilege no longer declared": "この権限を要求するコードはもうありません",
@@ -150,11 +157,17 @@
150
157
  "text.signed in": "ログイン",
151
158
  "text.signed out": "ログアウト",
152
159
  "text.source_and_target_domain_cannot_be_same": "ソースドメインとターゲットドメインは同じにできません",
160
+ "text.start from a blank seat": "start from a blank seat",
161
+ "text.struck through are not installed here": "Struck through are privileges this installation does not have.",
162
+ "text.subdomain_change_critical_warning": "警告: サブドメインを変更すると、フルアクセスURL(/{type}/{subdomain}/...)が変更され、既存のブックマークや外部リンク、アクティブなセッションが無効化される可能性があります。慎重に確認して進めてください。",
153
163
  "text.synchronize": "同期",
164
+ "text.this plant may call the seat what it likes": "Call the seat whatever this plant calls it.",
154
165
  "text.token expiry time": "トークン有効期限",
155
166
  "text.updated_successfully": "正常にアップデートしました.",
156
167
  "text.user invitation prompt": "招待したいユーザーのユーザー名またはメールアドレスを入力してください。",
157
168
  "text.user management": "ユーザー管理",
169
+ "text.x modules y privileges": "{x} modules · {y} privileges",
170
+ "text.x not here": "{x} not installed here",
158
171
  "text.x_cannot_delete": "{x}は削除できません.",
159
172
  "text.x_created_successfully": "{x}が成功的に作成されました.",
160
173
  "text.x_deleted_successfully": "{x}が成功的に削除されました.",
@@ -1,16 +1,22 @@
1
1
  {
2
2
  "button.activate": "활성화",
3
+ "button.add what it can do": "할 수 있는 일 더하기",
3
4
  "button.cancel": "취소",
5
+ "button.close": "닫기",
4
6
  "button.confirm": "확인",
5
7
  "button.create": "생성",
8
+ "button.create role": "역할 만들기",
6
9
  "button.deactivate": "비활성화",
7
10
  "button.delete": "삭제",
8
11
  "button.delete role": "역할 삭제",
9
12
  "button.delete this appliance": "단말장치 삭제",
10
13
  "button.delete user": "사용자 삭제",
14
+ "button.drop": "떼기",
15
+ "button.edit privileges": "권한 편집",
11
16
  "button.generate new access token": "새토큰 생성",
12
17
  "button.go to home": "홈으로 이동",
13
18
  "button.logout": "로그아웃",
19
+ "button.name it yourself": "직접 이름 짓기",
14
20
  "button.remove from domain": "도메인에서 제외",
15
21
  "button.remove owner": "소유자 해제",
16
22
  "button.save": "저장",
@@ -41,6 +47,7 @@
41
47
  "field.forgot-password": "암호가 기억나지 않나요?",
42
48
  "field.granted at": "부여 시각",
43
49
  "field.granted by": "권한 부여자",
50
+ "field.granted privileges": "할 수 있는 일",
44
51
  "field.hidden": "감추기",
45
52
  "field.ip_address": "IP 주소",
46
53
  "field.module": "모듈",
@@ -56,10 +63,12 @@
56
63
  "field.required privilege": "필수 권한",
57
64
  "field.required role": "필수 역할",
58
65
  "field.roles": "역할",
66
+ "field.seat": "자리",
59
67
  "field.serial-no": "일련번호",
60
68
  "field.sign in": "로그인",
61
69
  "field.sign out": "로그아웃",
62
70
  "field.sign up": "사용자 등록",
71
+ "field.source": "출처",
63
72
  "field.source-domain": "소스 도메인",
64
73
  "field.status": "상태",
65
74
  "field.tag": "태그",
@@ -77,6 +86,7 @@
77
86
  "label.add to domain": "도메인에 넣기",
78
87
  "label.add user": "사용자 추가",
79
88
  "label.admin-user": "관리자",
89
+ "label.all": "전체",
80
90
  "label.application": "응용프로그램",
81
91
  "label.banned-user": "사용금지",
82
92
  "label.blacklist": "블랙리스트",
@@ -96,12 +106,14 @@
96
106
  "label.email": "이메일",
97
107
  "label.execute": "실행",
98
108
  "label.inactive-user": "비활성",
109
+ "label.inherited": "상속",
99
110
  "label.invite customer": "고객사 파트너 초대",
100
111
  "label.invite user": "사용자 초대",
101
112
  "label.language": "언어",
102
113
  "label.locked-user": "잠김",
103
114
  "label.login_history": "로그인 이력",
104
115
  "label.name": "이름",
116
+ "label.ours": "우리 역할",
105
117
  "label.password": "비밀번호",
106
118
  "label.privilege": "권한",
107
119
  "label.protected-request-ip": "안전한 요청 IP",
@@ -124,9 +136,12 @@
124
136
  "label.write": "쓰기",
125
137
  "label.x description": "{x} 설명",
126
138
  "label.x name": "{x} 이름",
139
+ "text.a blank seat opens nothing until you give it privileges": "빈 자리는 권한을 줄 때까지 아무것도 열지 않습니다.",
140
+ "text.a role of this name exists and will be added to": "같은 이름의 역할이 이미 있습니다. 새로 만들지 않고 그 역할에 권한을 더합니다.",
127
141
  "text.account exists so joins immediately": "이미 계정이 있습니다. 넣으면 바로 들어옵니다.",
128
142
  "text.account will be created with the default password": "이 이메일로 가입한 계정이 없습니다. 기본 비밀번호로 계정을 만들어 넣습니다. 비밀번호는 직접 알려 주셔야 합니다.",
129
143
  "text.add_domain_owner_description": "도메인 멤버 중 한 명에게 소유자 권한을 부여합니다.",
144
+ "text.already in this domain": "이미 있음",
130
145
  "text.and x more": "외 {x}개",
131
146
  "text.appliance": "단말장치",
132
147
  "text.appliance credential": "단말장치 자격증명",
@@ -167,6 +182,7 @@
167
182
  "text.new password": "새 비밀번호",
168
183
  "text.no account and no default password": "이 이메일로 가입한 계정이 없고, 이 시스템에는 기본 비밀번호가 설정되어 있지 않습니다. 그 사람이 먼저 가입해야 부를 수 있습니다.",
169
184
  "text.no description for this privilege": "이 권한에 대한 설명이 아직 없습니다.",
185
+ "text.no description for this role": "설명이 아직 없습니다 — 역할 목록에서 쓸 수 있습니다.",
170
186
  "text.no domain available": "사용할 수 있는 도메인이 없습니다.",
171
187
  "text.no one holds this role yet": "이 역할을 가진 사람이 아직 없습니다.",
172
188
  "text.no other user yet": "아직 다른 사용자가 없습니다",
@@ -177,13 +193,16 @@
177
193
  "text.no role yet": "아직 정의된 역할이 없습니다",
178
194
  "text.none on": "없음",
179
195
  "text.not declared for this module": "이 모듈에는 그 권한이 선언되어 있지 않습니다.",
196
+ "text.nothing is on for this role yet": "이 역할은 아직 아무것도 열지 않습니다. 아래에서 할 수 있는 일을 더해 주십시오.",
180
197
  "text.nothing matches x": "\"{x}\"이 들어가는 모듈 이름이 없습니다.",
198
+ "text.opens nothing, receives approvals": "여는 것은 없고 결재만 받는 자리입니다",
181
199
  "text.owner opens everything without a role": "소유자는 역할 없이도 모든 화면이 열립니다. 다른 사용자는 역할이 있어야 합니다.",
182
200
  "text.owner_transfer_completed": "owner 변경을 완료하였습니다.",
183
201
  "text.password becomes the default and must be told to them": "비밀번호가 기본값으로 되돌아갑니다. 메일은 가지 않으니 새 비밀번호를 직접 알려 주셔야 합니다.",
184
202
  "text.password rule": "최소 15자 이상 혹은 숫자와 소문자를 포함하여 8자 이상이어야 합니다.",
185
203
  "text.passwords do not match": "비밀번호가 일치하지 않습니다.",
186
204
  "text.pick a module on the left": "왼쪽에서 모듈을 고르면 이 역할이 그 모듈에서 무엇을 할 수 있는지 보입니다.",
205
+ "text.pick a seat to see what it opens": "자리를 고르면 무엇을 여는지 보여 줍니다.",
187
206
  "text.please enter the email of the user you want to transfer owner": "관리자로 변경할 사용자의 이메일을 입력하세요.",
188
207
  "text.please enter username or email": "사용자명 또는 이메일을 입력하세요",
189
208
  "text.please try again": "잠시 후 다시 시도하십시오.",
@@ -200,16 +219,22 @@
200
219
  "text.signed in": "로그인",
201
220
  "text.signed out": "로그아웃",
202
221
  "text.source_and_target_domain_cannot_be_same": "소스 도메인과 타겟 도메인은 동일할 수 없습니다",
222
+ "text.start from a blank seat": "빈 자리에서 시작합니다",
223
+ "text.struck through are not installed here": "줄이 그어진 것은 이 설치에 없는 권한입니다.",
203
224
  "text.subdomain_change_critical_warning": "경고: 서브도메인을 변경하면 전체 접속 URL(/{type}/{subdomain}/...)이 변경되어 기존에 배포된 링크, 북마크 및 활성 사용자 세션이 무효화될 수 있습니다. 신중하게 확인 후 진행해 주세요.",
204
225
  "text.synchronize": "동기화",
205
226
  "text.they lose access to this domain but keep the account": "이 도메인에서 더 이상 일할 수 없게 됩니다. 계정은 남아 있어서 나중에 다시 부를 수 있습니다.",
227
+ "text.this plant may call the seat what it likes": "이 공장에서 부르는 이름으로 바꿔도 됩니다.",
206
228
  "text.token expiry time": "토큰 만료 시점",
207
229
  "text.unlocks in x minutes": "{x}분 뒤 잠금 해제",
208
230
  "text.updated_successfully": "성공적으로 업데이트 되었습니다.",
209
231
  "text.user invitation prompt": "초대하고자 하는 사용자아이디나 이메일을 입력하세요.",
210
232
  "text.user management": "사용자 관리",
233
+ "text.view only": "상속 역할 — 보기만",
211
234
  "text.without a role they see nothing": "역할을 정하지 않으면 들어와도 볼 화면이 없습니다.",
212
235
  "text.x is required": "{x}을(를) 입력해 주십시오.",
236
+ "text.x modules y privileges": "모듈 {x} · 권한 {y}",
237
+ "text.x not here": "{x}개가 이 설치에 없음",
213
238
  "text.x of y on": "{y}개 중 {x}개 켜짐",
214
239
  "text.x on": "{x}개 켜짐",
215
240
  "text.x people hold this role": "이 역할을 가진 사람 {x}명",
@@ -235,6 +260,7 @@
235
260
  "title.partners": "파트너 관리",
236
261
  "title.protected-privileges": "보호되는 권한",
237
262
  "title.reset password": "비밀번호 초기화",
263
+ "title.role privileges": "역할 권한",
238
264
  "title.secure-ip-list": "보안 IP 리스트",
239
265
  "title.sign in": "로그인",
240
266
  "title.sign up": "사용자 등록",
@@ -3,6 +3,7 @@
3
3
  "button.cancel": "batalkan",
4
4
  "button.confirm": "sahkan",
5
5
  "button.create": "cipta",
6
+ "button.create role": "create role",
6
7
  "button.deactivate": "deaktifkan",
7
8
  "button.delete": "padam",
8
9
  "button.delete role": "padam peranan",
@@ -11,6 +12,7 @@
11
12
  "button.generate new access token": "Cipta akses token baru",
12
13
  "button.go to home": "ke halaman utama",
13
14
  "button.logout": "logout",
15
+ "button.name it yourself": "name it yourself",
14
16
  "button.save": "simpan",
15
17
  "button.security-key registration": "pendaftaran kunci keselamatan",
16
18
  "button.show-all": "Tunjukkan semua",
@@ -47,6 +49,7 @@
47
49
  "field.private-key": "Kunci peribadi",
48
50
  "field.required privilege": "keperluan keistimewaan",
49
51
  "field.required role": "peranan diperlukan",
52
+ "field.seat": "seat",
50
53
  "field.serial-no": "nombor siri",
51
54
  "field.sign in": "log masuk",
52
55
  "field.sign out": "log keluar",
@@ -107,6 +110,9 @@
107
110
  "label.whitelist": "senarai putih",
108
111
  "label.x description": "{x} penerangan",
109
112
  "label.x name": "{x} nama",
113
+ "text.a blank seat opens nothing until you give it privileges": "A blank seat opens nothing until you give it privileges.",
114
+ "text.a role of this name exists and will be added to": "A role of this name already exists. It will be used as it stands and these privileges added to it.",
115
+ "text.already in this domain": "already here",
110
116
  "text.appliance": "perkakas terminal",
111
117
  "text.appliance credential": "kelayakan peralatan terminal",
112
118
  "text.application management": "pengurusan aplikasi",
@@ -131,16 +137,17 @@
131
137
  "text.do_you_want_to_create_x": "adakah anda mahu mencipta {x}?",
132
138
  "text.do_you_want_to_invite_x": "adakah anda ingin mengundang {x}",
133
139
  "text.domain management": "pengurusan domain",
134
- "text.domain_name_change_warning": "adakah anda pasti mahu menukar nama domain? (subdomain akan kekal tidak berubah.)",
135
- "text.subdomain_change_critical_warning": "amaran: menukar subdomain akan mengubah URL capaian penuh (/{type}/{subdomain}/...) dan mungkin membatalkan pautan luaran, penanda buku dan sesi pengguna aktif sedia ada. sila teruskan dengan berhati-hati.",
136
140
  "text.domain sumber dan sasaran tidak boleh sama": "domain sumber dan sasaran tidak boleh sama",
141
+ "text.domain_name_change_warning": "adakah anda pasti mahu menukar nama domain? (subdomain akan kekal tidak berubah.)",
137
142
  "text.email is not matched": "alamat email tidak sepadan",
138
143
  "text.env-var-list-page": "senarai pengubahsuaian persekitaran",
139
144
  "text.new password": "kata laluan baru",
140
145
  "text.no domain available": "maaf, tiada domain untuk dipilih",
146
+ "text.opens nothing, receives approvals": "opens nothing — this seat receives approvals",
141
147
  "text.owner_transfer_completed": "pindah pemilik selesai",
142
148
  "text.password rule": "sila pastikan kemasukan kata laluan adalah 15 huruf ATAU 8 huruf termasuk nombor dengan huruf kecil.",
143
149
  "text.passwords do not match": "kata laluan anda tidak padan",
150
+ "text.pick a seat to see what it opens": "Pick a seat to see what it opens.",
144
151
  "text.please enter the email of the user you want to transfer owner": "sila masukkan e-mel pengguna yang anda hendak pindahkan pemilik",
145
152
  "text.privilege no longer declared": "tiada kod yang memerlukan kebenaran ini lagi",
146
153
  "text.registered roles": "peranan sudah didaftar",
@@ -151,11 +158,17 @@
151
158
  "text.signed in": "telah log masuk",
152
159
  "text.signed out": "telah log keluar",
153
160
  "text.sila isi semua medan yang diperlukan": "sila isi semua medan yang diperlukan",
161
+ "text.start from a blank seat": "start from a blank seat",
162
+ "text.struck through are not installed here": "Struck through are privileges this installation does not have.",
163
+ "text.subdomain_change_critical_warning": "amaran: menukar subdomain akan mengubah URL capaian penuh (/{type}/{subdomain}/...) dan mungkin membatalkan pautan luaran, penanda buku dan sesi pengguna aktif sedia ada. sila teruskan dengan berhati-hati.",
154
164
  "text.synchronize": "menyamakan",
165
+ "text.this plant may call the seat what it likes": "Call the seat whatever this plant calls it.",
155
166
  "text.token expiry time": "masa tamat token",
156
167
  "text.updated_successfully": "berjaya dikemaskini",
157
168
  "text.user invitation prompt": "sila masukkan nama pengguna atau alamat e-mel pengguna yang ingin anda jemput.",
158
169
  "text.user management": "pengurusan pengguna",
170
+ "text.x modules y privileges": "{x} modules · {y} privileges",
171
+ "text.x not here": "{x} not installed here",
159
172
  "text.x_cannot_delete": "{x} tidak boleh dipadam",
160
173
  "text.x_created_successfully": "{x} berjaya dibina",
161
174
  "text.x_deleted_successfully": "{x} berjaya dipadam",
@@ -3,6 +3,7 @@
3
3
  "button.cancel": "取消",
4
4
  "button.confirm": "确认",
5
5
  "button.create": "创建",
6
+ "button.create role": "create role",
6
7
  "button.deactivate": "停用",
7
8
  "button.delete": "删除",
8
9
  "button.delete role": "删除角色",
@@ -11,6 +12,7 @@
11
12
  "button.generate new access token": "生成新的访问令牌",
12
13
  "button.go to home": "首页",
13
14
  "button.logout": "退出",
15
+ "button.name it yourself": "name it yourself",
14
16
  "button.save": "保存",
15
17
  "button.security-key registration": "安全密钥注册",
16
18
  "button.show-all": "全部显示",
@@ -47,6 +49,7 @@
47
49
  "field.private-key": "私钥",
48
50
  "field.required privilege": "必需权限",
49
51
  "field.required role": "所需角色",
52
+ "field.seat": "seat",
50
53
  "field.serial-no": "序列号",
51
54
  "field.sign in": "登录",
52
55
  "field.sign out": "退出",
@@ -107,6 +110,9 @@
107
110
  "label.whitelist": "白名单",
108
111
  "label.x description": "{x} 描述",
109
112
  "label.x name": "{x} 名称",
113
+ "text.a blank seat opens nothing until you give it privileges": "A blank seat opens nothing until you give it privileges.",
114
+ "text.a role of this name exists and will be added to": "A role of this name already exists. It will be used as it stands and these privileges added to it.",
115
+ "text.already in this domain": "already here",
110
116
  "text.appliance": "终端设备",
111
117
  "text.appliance credential": "终端设备凭证",
112
118
  "text.application management": "应用管理",
@@ -132,14 +138,15 @@
132
138
  "text.do_you_want_to_invite_x": "请确认是否邀请客户{x}",
133
139
  "text.domain management": "域管理",
134
140
  "text.domain_name_change_warning": "确定要更改域名吗?(子域名将保持不变。)",
135
- "text.subdomain_change_critical_warning": "警告: 更改子域将更改完整的访问URL(/{type}/{subdomain}/...),并可能使现有的外部链接、书签和活动用户会话失效。请谨慎操作。",
136
141
  "text.email is not matched": "电子邮件不匹配",
137
142
  "text.env-var-list-page": "环境变量列表",
138
143
  "text.new password": "新密码",
139
144
  "text.no domain available": "抱歉,没有域名",
145
+ "text.opens nothing, receives approvals": "opens nothing — this seat receives approvals",
140
146
  "text.owner_transfer_completed": "所有权转让成功。",
141
147
  "text.password rule": "输入的密码必须15个字符或8字符包括号码和小写字符",
142
148
  "text.passwords do not match": "密码不匹配",
149
+ "text.pick a seat to see what it opens": "Pick a seat to see what it opens.",
143
150
  "text.please enter the email of the user you want to transfer owner": "请录入所有权接收人的邮件。",
144
151
  "text.please_fill_all_required_fields": "请填写所有必填字段",
145
152
  "text.privilege no longer declared": "已没有代码需要此权限",
@@ -151,11 +158,17 @@
151
158
  "text.signed in": "已登录",
152
159
  "text.signed out": "已退出",
153
160
  "text.source_and_target_domain_cannot_be_same": "源域和目标域不能相同",
161
+ "text.start from a blank seat": "start from a blank seat",
162
+ "text.struck through are not installed here": "Struck through are privileges this installation does not have.",
163
+ "text.subdomain_change_critical_warning": "警告: 更改子域将更改完整的访问URL(/{type}/{subdomain}/...),并可能使现有的外部链接、书签和活动用户会话失效。请谨慎操作。",
154
164
  "text.synchronize": "同步",
165
+ "text.this plant may call the seat what it likes": "Call the seat whatever this plant calls it.",
155
166
  "text.token expiry time": "令牌过期时间",
156
167
  "text.updated_successfully": "更新成功",
157
168
  "text.user invitation prompt": "请输入您希望邀请的用户的用户名或电子邮件地址。",
158
169
  "text.user management": "用户管理",
170
+ "text.x modules y privileges": "{x} modules · {y} privileges",
171
+ "text.x not here": "{x} not installed here",
159
172
  "text.x_cannot_delete": "{x}无法删除",
160
173
  "text.x_created_successfully": "{x}创建成功",
161
174
  "text.x_deleted_successfully": "{x}删除成功",
@@ -1 +0,0 @@
1
- import '@material/web/textfield/filled-text-field.js';
@@ -1,117 +0,0 @@
1
- import { __decorate, __metadata } from "tslib";
2
- import '@material/web/textfield/filled-text-field.js';
3
- import gql from 'graphql-tag';
4
- import { css, html, LitElement } from 'lit';
5
- import { customElement, query } from 'lit/decorators.js';
6
- import { client, gqlContext } from '@operato/graphql';
7
- import { i18next, localize } from '@operato/i18n';
8
- import { OxPrompt } from '@operato/popup/ox-prompt.js';
9
- let CreateRole = class CreateRole extends localize(i18next)(LitElement) {
10
- static { this.styles = css `
11
- :host {
12
- --md-text-field-fill-color: var(--md-sys-color-on-primary);
13
- background-color: var(--md-sys-color-surface);
14
- margin: var(--spacing-large) 0;
15
- padding: var(--spacing-large);
16
- border-radius: var(--border-radius);
17
- box-shadow: var(--box-shadow);
18
-
19
- display: grid;
20
- grid-template-columns: 1fr 2fr auto;
21
- gap: 5px 15px;
22
- clear: both;
23
- max-width: var(--input-container-max-width);
24
-
25
- align-items: center;
26
- }
27
-
28
- md-outlined-button {
29
- margin: var(--input-margin);
30
- text-transform: capitalize;
31
- }
32
-
33
- @media screen and (max-width: 480px) {
34
- :host {
35
- grid-template-columns: 1fr 1fr;
36
- }
37
-
38
- md-outlined-button {
39
- grid-column: span 2;
40
-
41
- margin: var(--input-margin);
42
- }
43
- }
44
- `; }
45
- render() {
46
- return html `
47
- <md-filled-text-field
48
- type="text"
49
- name="name"
50
- label=${String(i18next.t('label.x name', { x: i18next.t('label.role') }))}
51
- ></md-filled-text-field>
52
- <md-filled-text-field
53
- type="text"
54
- name="description"
55
- label=${String(i18next.t('label.x description', { x: i18next.t('label.role') }))}
56
- ></md-filled-text-field>
57
-
58
- <md-outlined-button @click=${this.onCreateRole.bind(this)}
59
- >${String(i18next.t('button.create'))}</md-outlined-button
60
- >
61
- `;
62
- }
63
- async onCreateRole() {
64
- let role = {};
65
- const name = this.nameInput.value.trim();
66
- const description = this.descriptionInput.value;
67
- if (!name) {
68
- return this.showToast(i18next.t('error.value is empty', { value: i18next.t('field.name') }));
69
- }
70
- role.name = name;
71
- role.description = description;
72
- if (await OxPrompt.open({
73
- title: i18next.t('text.are_you_sure'),
74
- text: i18next.t('text.do_you_want_to_create_x', { x: i18next.t('label.role') }),
75
- confirmButton: { text: i18next.t('button.confirm') },
76
- cancelButton: { text: i18next.t('button.cancel') }
77
- })) {
78
- const response = await client.mutate({
79
- mutation: gql `
80
- mutation createRole($role: NewRole!) {
81
- createRole(role: $role) {
82
- name
83
- }
84
- }
85
- `,
86
- variables: { role },
87
- context: gqlContext()
88
- });
89
- if (!response.errors) {
90
- await this.dispatchEvent(new CustomEvent('fetch-roles'));
91
- await OxPrompt.open({
92
- type: 'success',
93
- title: i18next.t('text.completed'),
94
- text: i18next.t('text.data_uploaded_successfully'),
95
- confirmButton: { text: i18next.t('button.confirm') }
96
- });
97
- this.nameInput.value = '';
98
- this.descriptionInput.value = '';
99
- }
100
- }
101
- }
102
- showToast(message) {
103
- document.dispatchEvent(new CustomEvent('notify', { detail: { message, option: { timer: 1000 } } }));
104
- }
105
- };
106
- __decorate([
107
- query('[name=name]'),
108
- __metadata("design:type", HTMLInputElement)
109
- ], CreateRole.prototype, "nameInput", void 0);
110
- __decorate([
111
- query('[name=description]'),
112
- __metadata("design:type", HTMLInputElement)
113
- ], CreateRole.prototype, "descriptionInput", void 0);
114
- CreateRole = __decorate([
115
- customElement('create-role')
116
- ], CreateRole);
117
- //# sourceMappingURL=create-role.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create-role.js","sourceRoot":"","sources":["../../client/components/create-role.ts"],"names":[],"mappings":"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","sourcesContent":["import '@material/web/textfield/filled-text-field.js'\n\nimport gql from 'graphql-tag'\nimport { css, html, LitElement } from 'lit'\nimport { customElement, query } from 'lit/decorators.js'\n\nimport { client, gqlContext } from '@operato/graphql'\nimport { i18next, localize } from '@operato/i18n'\nimport { OxPrompt } from '@operato/popup/ox-prompt.js'\n\n@customElement('create-role')\nclass CreateRole extends localize(i18next)(LitElement) {\n static styles = css`\n :host {\n --md-text-field-fill-color: var(--md-sys-color-on-primary);\n background-color: var(--md-sys-color-surface);\n margin: var(--spacing-large) 0;\n padding: var(--spacing-large);\n border-radius: var(--border-radius);\n box-shadow: var(--box-shadow);\n\n display: grid;\n grid-template-columns: 1fr 2fr auto;\n gap: 5px 15px;\n clear: both;\n max-width: var(--input-container-max-width);\n\n align-items: center;\n }\n\n md-outlined-button {\n margin: var(--input-margin);\n text-transform: capitalize;\n }\n\n @media screen and (max-width: 480px) {\n :host {\n grid-template-columns: 1fr 1fr;\n }\n\n md-outlined-button {\n grid-column: span 2;\n\n margin: var(--input-margin);\n }\n }\n `\n\n @query('[name=name]') nameInput!: HTMLInputElement\n @query('[name=description]') descriptionInput!: HTMLInputElement\n\n render() {\n return html`\n <md-filled-text-field\n type=\"text\"\n name=\"name\"\n label=${String(i18next.t('label.x name', { x: i18next.t('label.role') }))}\n ></md-filled-text-field>\n <md-filled-text-field\n type=\"text\"\n name=\"description\"\n label=${String(i18next.t('label.x description', { x: i18next.t('label.role') }))}\n ></md-filled-text-field>\n\n <md-outlined-button @click=${this.onCreateRole.bind(this)}\n >${String(i18next.t('button.create'))}</md-outlined-button\n >\n `\n }\n\n async onCreateRole() {\n let role: { name?: string; description?: string } = {}\n\n const name = this.nameInput.value.trim()\n const description = this.descriptionInput.value\n\n if (!name) {\n return this.showToast(i18next.t('error.value is empty', { value: i18next.t('field.name') }))\n }\n\n role.name = name\n role.description = description\n\n if (\n await OxPrompt.open({\n title: i18next.t('text.are_you_sure'),\n text: i18next.t('text.do_you_want_to_create_x', { x: i18next.t('label.role') }),\n confirmButton: { text: i18next.t('button.confirm') },\n cancelButton: { text: i18next.t('button.cancel') }\n })\n ) {\n const response = await client.mutate({\n mutation: gql`\n mutation createRole($role: NewRole!) {\n createRole(role: $role) {\n name\n }\n }\n `,\n variables: { role },\n context: gqlContext()\n })\n\n if (!response.errors) {\n await this.dispatchEvent(new CustomEvent('fetch-roles'))\n\n await OxPrompt.open({\n type: 'success',\n title: i18next.t('text.completed'),\n text: i18next.t('text.data_uploaded_successfully'),\n confirmButton: { text: i18next.t('button.confirm') }\n })\n\n this.nameInput.value = ''\n this.descriptionInput.value = ''\n }\n }\n }\n\n showToast(message) {\n document.dispatchEvent(new CustomEvent('notify', { detail: { message, option: { timer: 1000 } } }))\n }\n}\n"]}