index-C9yMsMyz.js 13 KB

1
  1. import{fI as we,R as xe,gs as j,dd as ue,cQ as Ae,gV as Pe,gS as Se,gZ as ke,fM as c,e as ae,O as D,B as V,fr as Te,fV as n,ft as i,cs as X,cp as m,gx as A,gN as b,dS as ce,cq as E,g$ as a,cv as K,cr as Z,cw as u,F as ye,fS as Ee,dA as re,ee as Ue,fU as De,c9 as T,$ as Ve,V as z,ac as Ce,fL as Ke,fW as ze,E as ie,h0 as Fe,dX as Re,y as Ge}from"./builder-DygomDiV.js";import{l as He}from"./permission-api-BH6iJDRI.js";import"./workspace-DtPl6jqF.js";const se="/workspace",je=(P,d,I,k,w)=>ue(`${se}/${P}/user_resource_permission/user/${d}/resource/${I}`,k,w),Be=(P,d,I,k,w)=>we(`${se}/${P}/user_resource_permission/user/${d}/resource/${I}`,k,{},w),qe=(P,d)=>ue(`${se}/${P}/user_list`,void 0,d),Je=(P,d)=>ue(`${se}/${P}/user_member`,void 0,d),Qe=(P,d,I,k)=>d=="MODEL"?Promise.resolve(xe.success([{id:"default",name:j("layout.about.root"),desc:null,parent_id:null,children:[]}])):ue(`${se}/${P}/${d}/folder`,I,k),be={getResourceAuthorization:je,putResourceAuthorization:Be,getUserList:qe,getUserMember:Je,getSystemFolder:Qe},Xe={class:"permission-setting p-24 flex"},Ze={class:"resource-authorization__table"},Ye={class:"mb-16"},et={class:"flex-between mb-16"},tt={class:"flex-between complex-search"},ot={style:{"vertical-align":"sub"}},st=["src"],lt=["innerHTML"],nt={class:"color-text-primary lighter"},at={class:"dialog-footer mt-24"},rt=Ae({__name:"PermissionTable",props:{data:{},type:{},getData:{type:Function}},emits:["submitPermissions"],setup(P,{expose:d,emit:I}){const{model:k}=Pe(),w=Se(),_=P,F=I,x=c([]),Y=c(!0);ke(()=>_.data,e=>{e&&e.length>0&&Y.value&&(x.value=_.data?.length>0?[_.data[0]?.id]:[],Y.value=!1)},{immediate:!0});const C=T(()=>({rootFolder:re(!0,!0),folder:re(!1,!1),resource:re(!1,!1)})),G=e=>{const t=e.resource_type==="folder";return t&&e.folder_id===null?C.value.rootFolder:t?C.value.folder:C.value.resource},de=T(()=>g.value.some(e=>e.resource_type==="folder"&&e.folder_id==null)?C.value.rootFolder:g.value.some(e=>e.resource_type==="folder")?C.value.folder:C.value.resource),le=c({APPLICATION:new ae([D.ADMIN,D.WORKSPACE_MANAGE],[V.APPLICATION_WORKSPACE_USER_RESOURCE_PERMISSION_EDIT,V.APPLICATION_WORKSPACE_USER_RESOURCE_PERMISSION_EDIT.getWorkspacePermissionWorkspaceManageRole],[],"OR"),KNOWLEDGE:new ae([D.ADMIN,D.WORKSPACE_MANAGE],[V.KNOWLEDGE_WORKSPACE_USER_RESOURCE_PERMISSION_EDIT,V.KNOWLEDGE_WORKSPACE_USER_RESOURCE_PERMISSION_EDIT.getWorkspacePermissionWorkspaceManageRole],[],"OR"),TOOL:new ae([D.ADMIN,D.WORKSPACE_MANAGE],[V.TOOL_WORKSPACE_USER_RESOURCE_PERMISSION_EDIT,V.TOOL_WORKSPACE_USER_RESOURCE_PERMISSION_EDIT.getWorkspacePermissionWorkspaceManageRole],[],"OR"),MODEL:new ae([D.ADMIN,D.WORKSPACE_MANAGE],[V.MODEL_WORKSPACE_USER_RESOURCE_PERMISSION_EDIT,V.MODEL_WORKSPACE_USER_RESOURCE_PERMISSION_EDIT.getWorkspacePermissionWorkspaceManageRole],[],"OR")}),pe=T(()=>_.type===z.KNOWLEDGE),me=T(()=>_.type===z.APPLICATION),B=T(()=>_.type===z.TOOL),ee=T(()=>_.type===z.MODEL),q=c(),W=c("name"),R=c({name:"",permission:void 0}),te=()=>{R.value={name:"",permission:void 0}},U=()=>{const e=R.value.name||"",t=R.value.permission??[];if(!e&&(!t||t.length===0))return _.data;const r=(h,O,S)=>{if(!h||h.length===0)return[];const y=[];for(const l of h){const J={...l};let Q=!1;W.value==="name"?Q=l.name.toLowerCase().includes(O.toLowerCase()):W.value==="permission"&&(Q=l.permission&&S.includes(l.permission));let oe=[];l.children&&l.children.length>0&&(oe=r(l.children,O,S)),(Q||oe.length>0)&&(J.children=oe,y.push(J))}return y};return r(_.data,e,t)},_e=T(()=>U()),g=c([]),H={},s=e=>{g.value=e},f=(e,t)=>{t.resource_type==="folder"?e.some(r=>r.id==t.id)?g.value=e:(H[t.id]===void 0&&(H[t.id]=0),H[t.id]%2==0?(Ve([t]).filter(r=>r.id!=t.id).forEach(r=>{g.value.some(h=>r.id==h.id)&&q.value?.toggleRowSelection(r,!0)}),g.value=q.value.getSelectionRows()):g.value=e,H[t.id]=H[t.id]+1):g.value=e},p=c(!1),N=c("");function v(){g.value.length!==0&&(p.value=!0)}function $(){if(g.value.length===0||!N.value)return;const e=g.value.map(t=>({target_id:t.id,permission:N.value}));F("submitPermissions",e),M()}function M(){p.value=!1,N.value="",g.value=[],q.value?.clearSelection()}function fe(e,t){const r=[];let h=null;function O(y){for(const l of y){if(l.id===t){h=l;return}if(l.children?.length&&(O(l.children),h))return}}function S(y){if(y?.children)for(const l of y.children)r.push(l),S(l)}return O(e),h&&S(h),r}function ve(e,t){const r=[{target_id:t.id,permission:e}],h=(O,S,y)=>{if(!O||O.length===0)return[];for(const l of O){const J=l.permission=="NOT_AUTH"&&S.includes(l.id);l.children&&l.children.length>0&&!J&&h(l.children,S,y),l.permission=="NOT_AUTH"&&S.includes(l.id)&&(S.push(l.folder_id),y.push({target_id:l.id,permission:"VIEW"}))}return y};["VIEW","MANAGE","ROLE"].includes(e)&&h(_.data,[t.folder_id],r),["NOT_AUTH"].includes(e)&&t.resource_type=="folder"&&fe(_.data,t.id).forEach(O=>{r.push({target_id:O.id,permission:"NOT_AUTH"})}),F("submitPermissions",r)}const ne=c([]);function he(){k.asyncGetProvider().then(e=>{ne.value=e?.data})}const ge=T(()=>e=>ne.value.find(t=>t.provider===e.icon)?.icon);return Te(()=>{ee.value&&he()}),d({searchForm:R,searchType:W}),(e,t)=>{const r=n("el-button"),h=n("el-option"),O=n("el-select"),S=n("el-input"),y=n("el-table-column"),l=n("AppIcon"),J=n("KnowledgeIcon"),Q=n("el-avatar"),oe=n("LogoIcon"),Ne=n("ToolIcon"),Oe=n("el-radio"),Ie=n("el-radio-group"),Me=n("app-table"),Le=n("el-text"),We=n("el-dialog");return i(),X("div",Xe,[m("div",Ze,[m("h4",Ye,A(e.$t("views.system.resourceAuthorization.permissionSetting")),1),m("div",et,[b(ce)(le.value[b(w).meta?.resource||"APPLICATION"],"OR")?(i(),E(r,{key:0,type:"primary",disabled:g.value.length===0,onClick:v},{default:a(()=>[K(A(e.$t("views.system.resourceAuthorization.setting.configure")),1)]),_:1},8,["disabled"])):Z("",!0),m("div",tt,[u(O,{class:"complex-search__left",modelValue:W.value,"onUpdate:modelValue":t[0]||(t[0]=o=>W.value=o),style:{width:"80px"},onChange:te},{default:a(()=>[u(h,{label:e.$t("common.name"),value:"name"},null,8,["label"]),u(h,{label:e.$t("views.model.modelForm.permissionType.label"),value:"permission"},null,8,["label"])]),_:1},8,["modelValue"]),W.value==="name"?(i(),E(S,{key:0,modelValue:R.value.name,"onUpdate:modelValue":t[1]||(t[1]=o=>R.value.name=o),placeholder:e.$t("common.searchBar.placeholder"),style:{width:"220px"},clearable:""},null,8,["modelValue","placeholder"])):W.value==="permission"?(i(),E(O,{key:1,modelValue:R.value.permission,"onUpdate:modelValue":t[2]||(t[2]=o=>R.value.permission=o),filterable:"",clearable:"",multiple:"","reserve-keyword":!1,"collapse-tags":"","collapse-tags-tooltip":"",style:{width:"220px"}},{default:a(()=>[(i(!0),X(ye,null,Ee(b(re)(),(o,L)=>(i(),E(h,{key:L,label:o.label,value:o.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])):Z("",!0)])]),u(Me,{ref_key:"multipleTableRef",ref:q,class:"mt-16",data:_e.value,onSelect:f,onSelectAll:s,maxTableHeight:260,"row-key":o=>o.id,style:{"min-width":"600px"},"expand-row-keys":x.value,"default-expand-all":R.value.name||R.value.permission?.length>0,"show-overflow-tooltip":""},{default:a(()=>[u(y,{type:"selection",width:"55","reserve-selection":!0}),u(y,{prop:"name",label:e.$t("common.name")},{default:a(({row:o})=>[m("span",ot,[o.resource_type==="folder"?(i(),E(l,{key:0,iconName:"app-folder",style:{"font-size":"20px"}})):pe.value?(i(),E(J,{key:1,size:20,type:o.icon,style:{"--el-avatar-border-radius":"6px"}},null,8,["type"])):b(Ue)(o?.icon)&&!ee.value?(i(),E(Q,{key:2,style:{background:"none"},shape:"square",size:20},{default:a(()=>[m("img",{src:b(De)(o?.icon),alt:""},null,8,st)]),_:2},1024)):me.value?(i(),E(oe,{key:3,height:"20px"})):B.value?(i(),E(Ne,{key:4,size:20,type:o?.tool_type,style:{"--el-avatar-border-radius":"6px"}},null,8,["type"])):ee.value?(i(),X("span",{key:5,style:{width:"20px",height:"20px",display:"inline-block"},innerHTML:ge.value(o)},null,8,lt)):Z("",!0)]),K(" "+A(o?.name),1)]),_:1},8,["label"]),u(y,{label:e.$t("views.model.modelForm.permissionType.label"),align:"left"},{default:a(({row:o})=>[u(Ie,{modelValue:o.permission,"onUpdate:modelValue":L=>o.permission=L,onChange:L=>ve(L,o)},{default:a(()=>[(i(!0),X(ye,null,Ee(G(o),(L,$e)=>(i(),E(Oe,{key:$e,value:L.value,class:"mr-16"},{default:a(()=>[K(A(L.label),1)]),_:2},1032,["value"]))),128))]),_:2},1032,["modelValue","onUpdate:modelValue","onChange"])]),_:1},8,["label"])]),_:1},8,["data","row-key","expand-row-keys","default-expand-all"])]),u(We,{modelValue:p.value,"onUpdate:modelValue":t[4]||(t[4]=o=>p.value=o),title:e.$t("views.system.resourceAuthorization.setting.configure"),"destroy-on-close":"",onClose:M},{footer:a(()=>[m("div",at,[u(r,{onClick:M},{default:a(()=>[K(A(e.$t("common.cancel")),1)]),_:1}),u(r,{type:"primary",onClick:$},{default:a(()=>[K(A(e.$t("common.confirm")),1)]),_:1})])]),default:a(()=>[u(Ie,{modelValue:N.value,"onUpdate:modelValue":t[3]||(t[3]=o=>N.value=o),class:"radio-block"},{default:a(()=>[(i(!0),X(ye,null,Ee(de.value,(o,L)=>(i(),E(Oe,{key:L,value:o.value,class:"mr-16"},{default:a(()=>[m("p",nt,A(o.label),1),u(Le,{class:"color-secondary lighter"},{default:a(()=>[K(A(o.desc),1)]),_:2},1024)]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue"])]),_:1},8,["modelValue","title"])])}}}),it=Ce(rt,[["__scopeId","data-v-377dbee3"]]),ct={class:"resource-authorization p-16-24"},ut={class:"flex align-center mb-16"},dt={class:"ml-4 color-text-primary"},pt={class:"flex"},mt={class:"resource-authorization__left border-r"},_t={class:"p-24 pb-0"},ft={class:"mb-12"},vt={class:"list-height-left"},ht={class:"p-8-16"},gt={class:"flex-between"},yt={class:"flex"},Et=["title"],bt=Ae({__name:"index",setup(P){const d=Se(),{user:I}=Pe(),k=c(!1),w=c(!1),_=c([]),F=c([]),x=c(""),Y=c(""),C=c(""),G=c([]),de=Ke([{label:j("views.knowledge.title"),type:z.KNOWLEDGE},{label:j("views.application.title"),type:z.APPLICATION},{label:j("views.tool.title"),type:z.TOOL},{label:j("views.model.title"),type:z.MODEL}]),le=T(()=>{const s=d.path.lastIndexOf("/"),f=d.path.substring(s+1).toUpperCase();return de.filter(p=>p.type===f)[0]});ke(C,s=>{s?F.value=_.value.filter(f=>f.nick_name.toLowerCase().includes(s.toLowerCase())):F.value=_.value});function pe(s){const f=U.value||I.getWorkspaceId()||"default";be.putResourceAuthorization(f,x.value,d.meta?.resource||"APPLICATION",s,w).then(()=>{Ge(j("common.submitSuccess")),B()})}const me=c(),B=()=>{const s=U.value||I.getWorkspaceId()||"default",f={};be.getResourceAuthorization(s,x.value,d.meta?.resource||"APPLICATION",f,w).then(p=>{(d.meta?.resource||"APPLICATION")==="MODEL"?G.value=p.data||[]:G.value=p.data.map(v=>!v.folder_id&&v.permission==="NOT_AUTH"?{...v,permission:"VIEW"}:v)||[]})},ee=(s,f)=>{if(!s||s.length===0)return[];const p=JSON.parse(JSON.stringify(s)),N=Object.fromEntries(p.map(v=>[v.id,v]));for(let v=0;v<s.length;v++){const $=p[v];if($.children||($.children=[]),$[f]){const M=N[$[f]];M&&(M.children||(M.children=[]),M.children.push($))}}return p.filter(v=>!v[f])},q=T(()=>(d.meta?.resource||"APPLICATION")==="MODEL"?G.value:ee(G.value,"folder_id"));function W(s){x.value=s.id,Y.value=s.type,B()}function R(s){const f=U.value||I.getWorkspaceId()||"default";be.getUserMember(f,k).then(p=>{_.value=p.data,F.value=p.data,_.value.length>0?(x.value=_.value?.[0]?.id,Y.value=_.value?.[0]?.type,B()):G.value=[]})}const te=c([]),U=c(""),_e=T(()=>te.value.find(s=>s.id==U.value));async function g(){const s=await He("workspace").getSystemWorkspaceList(k);te.value=s.data,U.value=I.getWorkspaceId()||"default"}function H(s){U.value=s.id,R()}return Te(()=>{I.isEE()&&g(),R()}),(s,f)=>{const p=n("el-breadcrumb-item"),N=n("el-breadcrumb"),v=n("el-divider"),$=n("WorkspaceDropdown"),M=n("el-input"),fe=n("el-text"),ve=n("common-list"),ne=n("el-scrollbar"),he=n("el-card"),ge=ze("loading");return i(),X("div",ct,[m("div",ut,[u(N,{"separator-icon":"ArrowRight"},{default:a(()=>[u(p,null,{default:a(()=>[K(A(b(j)("views.system.resourceAuthorization.title")),1)]),_:1}),u(p,null,{default:a(()=>[m("h5",dt,A(le.value.label),1)]),_:1})]),_:1}),b(ce)(b(ie).IS_EE,"OR")?(i(),E(v,{key:0,class:"ml-24",direction:"vertical"})):Z("",!0),b(ce)(b(ie).IS_EE,"OR")?(i(),E($,{key:1,data:te.value,currentWorkspace:_e.value,onChangeWorkspace:H},null,8,["data","currentWorkspace"])):Z("",!0)]),u(he,{style:{"--el-card-padding":"0",height:"calc(100vh - 140px)"}},{default:a(()=>[m("div",pt,[m("div",mt,[m("div",_t,[m("h4",ft,A(s.$t("views.system.resourceAuthorization.member")),1),u(M,{modelValue:C.value,"onUpdate:modelValue":f[0]||(f[0]=e=>C.value=e),placeholder:s.$t("common.search"),"prefix-icon":"Search",clearable:""},null,8,["modelValue","placeholder"])]),m("div",vt,[u(ne,null,{default:a(()=>[m("div",ht,[Fe((i(),E(ve,{data:F.value,onClick:W,"default-active":x.value},{default:a(({row:e})=>[m("div",gt,[m("div",yt,[m("span",{class:"mr-8 ellipsis-1",title:e.nick_name},A(b(Re)(e.nick_name)),9,Et),b(ce)([b(ie).IS_EE,b(ie).IS_PE],"OR")?(i(),E(fe,{key:0,class:"color-input-placeholder ellipsis-1",title:e.roles.join(",")},{default:a(()=>[K("("+A(e.roles.map(t=>b(Re)(t))?.join(","))+")",1)]),_:2},1032,["title"])):Z("",!0)])])]),_:1},8,["data","default-active"])),[[ge,k.value]])])]),_:1})])]),u(it,{data:q.value,type:le.value.type,ref_key:"PermissionTableRef",ref:me,getData:B,onSubmitPermissions:pe},null,8,["data","type"])])]),_:1})])}}}),At=Ce(bt,[["__scopeId","data-v-c2535f45"]]);export{At as default};