@@ -175,6 +175,83 @@ export const SysUserDetailPage: Page = {
175175 } ,
176176 ] ,
177177 } ,
178+ {
179+ // [ADR-0091 D1] Direct permission-set grants (直接授权) — pure SDUI.
180+ // sys_user_permission_set is an ordinary id-keyed junction:
181+ // user_id / permission_set_id are lookups keyed by record id, so
182+ // the list keys on `relationshipField: 'user_id'` (no
183+ // relationshipValueField). The Add picker binds a permission set by
184+ // its id (linkField: 'permission_set_id'); server-side gates
185+ // (audience-anchor D5/D9, delegated-admin D12) surface their denial
186+ // reason in the Add dialog.
187+ label : { en : 'Permission Sets' , 'zh-CN' : '权限集' , 'ja-JP' : '権限セット' , 'es-ES' : 'Conjuntos de permisos' } ,
188+ icon : 'lock' ,
189+ children : [
190+ {
191+ type : 'record:related_list' ,
192+ properties : {
193+ objectName : 'sys_user_permission_set' ,
194+ relationshipField : 'user_id' ,
195+ columns : [ 'permission_set_id' , 'organization_id' , 'granted_by' , 'created_at' ] ,
196+ sort : [ { field : 'created_at' , order : 'desc' } ] ,
197+ limit : 25 ,
198+ showViewAll : true ,
199+ title : { en : 'Permission Sets' , 'zh-CN' : '权限集' , 'ja-JP' : '権限セット' , 'es-ES' : 'Conjuntos de permisos' } ,
200+ add : {
201+ picker : {
202+ object : 'sys_permission_set' ,
203+ labelField : 'label' ,
204+ } ,
205+ linkField : 'permission_set_id' ,
206+ label : {
207+ en : 'Grant permission set' ,
208+ 'zh-CN' : '授予权限集' ,
209+ 'ja-JP' : '権限セットを付与' ,
210+ 'es-ES' : 'Otorgar conjunto de permisos' ,
211+ } ,
212+ } ,
213+ } ,
214+ } ,
215+ ] ,
216+ } ,
217+ {
218+ // Business-unit membership (业务单元归属) — pure SDUI.
219+ // sys_business_unit_member is an id-keyed junction: user_id /
220+ // business_unit_id are lookups keyed by record id, so the list keys
221+ // on `relationshipField: 'user_id'` (no relationshipValueField).
222+ // The Add picker binds a BU by its id (linkField: 'business_unit_id');
223+ // sys_business_unit has no `label` field so the picker labels rows by
224+ // its display field `name`.
225+ label : { en : 'Business Units' , 'zh-CN' : '业务单元' , 'ja-JP' : 'ビジネスユニット' , 'es-ES' : 'Unidades de negocio' } ,
226+ icon : 'network' ,
227+ children : [
228+ {
229+ type : 'record:related_list' ,
230+ properties : {
231+ objectName : 'sys_business_unit_member' ,
232+ relationshipField : 'user_id' ,
233+ columns : [ 'business_unit_id' , 'function_in_business_unit' , 'is_primary' , 'created_at' ] ,
234+ sort : [ { field : 'created_at' , order : 'desc' } ] ,
235+ limit : 25 ,
236+ showViewAll : true ,
237+ title : { en : 'Business Units' , 'zh-CN' : '业务单元' , 'ja-JP' : 'ビジネスユニット' , 'es-ES' : 'Unidades de negocio' } ,
238+ add : {
239+ picker : {
240+ object : 'sys_business_unit' ,
241+ labelField : 'name' ,
242+ } ,
243+ linkField : 'business_unit_id' ,
244+ label : {
245+ en : 'Add to business unit' ,
246+ 'zh-CN' : '加入业务单元' ,
247+ 'ja-JP' : 'ビジネスユニットに追加' ,
248+ 'es-ES' : 'Añadir a unidad de negocio' ,
249+ } ,
250+ } ,
251+ } ,
252+ } ,
253+ ] ,
254+ } ,
178255 {
179256 label : { en : 'Sessions' , 'zh-CN' : '会话' , 'ja-JP' : 'セッション' , 'es-ES' : 'Sesiones' } ,
180257 icon : 'monitor' ,
0 commit comments