File: /www/server/panel/BTPanel/static/js/user-auth.js
import{_ as $}from"./index118.js?v=1777008528";import{w as z,M as I,k as J,d3 as Q,K as Z}from"./utils-lib.js?v=1777008528";import{c as ee,t as te,r as T,g as N,H as R,aF as se,o as ae,I as ne,j as m,k as v,e as o,v as i,x as re,J as h,p as a,q as w,C,R as ie,F as y,B as O,K as oe,z as de,am as le,an as ce,b4 as me,ad as ue,bL as pe,ab as Ee,aY as ge}from"./base-lib.js?v=1777008528";import{g as be}from"./index3.js?v=1777008528";import{getDatabasesList as _e,delUserGrants as fe,addUserGrants as Te}from"./database.js?v=1777008528";import"./__commonjsHelpers__.js?v=1777008528";import"./index119.js?v=1777008528";import"./index116.js?v=1777008528";const Re=[{name:"数据权限",msg:"数据权限",description:"数据权限",select:!0,id:1,children:[{id:2,name:"SELECT",description:"SELECT--允许用户查询(读取)数据库中的数据。",select:!0,msg:"读取数据"},{id:3,name:"INSERT",description:"INSERT--允许用户向数据库表中插入新数据。",select:!0,msg:"插入/替换数据"},{id:4,name:"UPDATE",description:"UPDATE--允许用户修改数据库表中的数据。",select:!0,msg:"修改数据"},{id:5,name:"DELETE",description:"DELETE--允许用户从数据库表中删除数据。",select:!0,msg:"删除数据"},{name:"FILE",id:22,description:"允许用户读取或写入文件。",msg:"文件读取/写入"}]},{name:"结构权限",msg:"结构权限",description:"结构权限",select:!0,id:6,children:[{id:7,name:"CREATE",description:"允许用户创建新的数据库、表格或索引。",select:!0,msg:"创建数据库/表"},{id:8,name:"ALTER",description:"允许用户修改数据库表的结构(例如,添加、删除列)。",select:!0,msg:"修改表结构"},{id:9,name:"INDEX",description:"允许用户创建和删除索引,以提高查询性能。",select:!0,msg:"创建/删除索引"},{id:10,name:"DROP",description:"允许用户删除数据库、表格或索引。",select:!0,msg:"删除数据库/表"},{id:11,name:"CREATE TEMPORARY TABLES",description:"允许用户创建临时表格,这些表格在会话结束后会自动删除。",select:!0,msg:"创建临时表格"},{id:12,name:"SHOW VIEW",description:"允许用户查看数据库中的视图。",select:!0,msg:"查看视图"},{id:13,name:"CREATE ROUTINE",description:"允许用户创建存储过程和函数。",select:!0,msg:"创建存储过程/函数"},{id:14,name:"ALTER ROUTINE",description:"允许用户修改存储过程和函数。",select:!0,msg:"修改存储过程/函数"},{id:15,name:"EXECUTE",description:"允许用户执行存储过程和函数。",select:!0,msg:"执行存储过程/函数"},{id:16,name:"CREATE VIEW",description:"允许用户创建数据库中的视图。",select:!0,msg:"创建视图"},{id:17,name:"EVENT",description:"允许用户创建、修改和删除数据库事件。",select:!0,msg:"创建/修改/删除事件"},{id:18,name:"TRIGGER",description:"允许用户创建和管理数据库触发器。",select:!0,msg:"创建/管理触发器"}]},{name:"管理权限",msg:"管理权限",description:"管理权限",include:!0,id:19,children:[{id:20,name:"GRANT",description:"允许用户授予、撤销或管理其他用户的权限。",msg:"添加用户/权限,不重载权限"},{id:23,name:"SUPER",description:"允许用户执行特殊操作,如启动或停止数据库服务器。",msg:"达到最大连接数时,杀死其他用户进程"},{id:24,name:"PROCESS",description:"允许用户查看其他用户的数据库连接进程。",msg:"查看其他用户的连接进程"},{id:25,name:"RELOAD",description:"允许用户重新加载数据库服务器的配置。",msg:"重载数据库的配置"},{id:26,name:"SHUTDOWN",description:"允许用户关闭数据库服务器。",msg:"关闭数据库服务器"},{id:27,name:"SHOW DATABASES",description:"允许用户查看可用的数据库列表。",msg:"查看可用的数据库列表"},{id:21,name:"LOCK TABLES",description:"允许用户锁定表格,以控制并发访问。",select:!0,msg:"锁定表格"},{id:32,name:"REFERENCES",description:"允许用户创建和使用外键,以维护数据完整性。",msg:"创建/使用外键"},{id:29,name:"REPLICATION CLIENT",description:"允许用户作为复制客户端连接到主从复制系统。",msg:"作为复制客户端连接到主从复制系统"},{id:30,name:"REPLICATION SLAVE",description:"允许用户作为复制从属连接到主从复制系统。",msg:"作为复制从属连接到主从复制系统"},{id:31,name:"CREATE USER",description:"允许用户创建、更改和删除数据库用户账户。",msg:"创建/更改/删除数据库用户"}]}],U=[{name:"数据权限",msg:"数据权限",description:"数据权限",select:!0,id:1,children:[{id:2,name:"SELECT",description:"SELECT--允许用户查询(读取)数据库中的数据。",select:!0,msg:"读取数据"},{id:3,name:"INSERT",description:"INSERT--允许用户向数据库表中插入新数据。",select:!0,msg:"插入/替换数据"},{id:4,name:"UPDATE",description:"UPDATE--允许用户修改数据库表中的数据。",select:!0,msg:"修改数据"},{id:5,name:"DELETE",description:"DELETE--允许用户从数据库表中删除数据。",select:!0,msg:"删除数据"}]},{name:"结构权限",msg:"结构权限",description:"结构权限",select:!0,id:6,children:[{id:7,name:"CREATE",description:"允许用户创建新的数据库、表格或索引。",select:!0,msg:"创建数据库/表"},{id:8,name:"ALTER",description:"允许用户修改数据库表的结构(例如,添加、删除列)。",select:!0,msg:"修改表结构"},{id:9,name:"INDEX",description:"允许用户创建和删除索引,以提高查询性能。",select:!0,msg:"创建/删除索引"},{id:10,name:"DROP",description:"允许用户删除数据库、表格或索引。",select:!0,msg:"删除数据库/表"},{id:11,name:"CREATE TEMPORARY TABLES",description:"允许用户创建临时表格,这些表格在会话结束后会自动删除。",select:!0,msg:"创建临时表格"},{id:12,name:"SHOW VIEW",description:"允许用户查看数据库中的视图。",select:!0,msg:"查看视图"},{id:13,name:"CREATE ROUTINE",description:"允许用户创建存储过程和函数。",select:!0,msg:"创建存储过程/函数"},{id:14,name:"ALTER ROUTINE",description:"允许用户修改存储过程和函数。",select:!0,msg:"修改存储过程/函数"},{id:15,name:"EXECUTE",description:"允许用户执行存储过程和函数。",select:!0,msg:"执行存储过程/函数"},{id:16,name:"CREATE VIEW",description:"允许用户创建数据库中的视图。",select:!0,msg:"创建视图"},{id:17,name:"EVENT",description:"允许用户创建、修改和删除数据库事件。",select:!0,msg:"创建/修改/删除事件"},{id:18,name:"TRIGGER",description:"允许用户创建和管理数据库触发器。",select:!0,msg:"创建/管理触发器"}]},{name:"管理权限",msg:"管理权限",description:"管理权限",include:!0,id:19,children:[{id:20,name:"GRANT",description:"允许用户授予、撤销或管理其他用户的权限。",msg:"添加用户/权限,不重载权限"},{id:21,name:"LOCK TABLES",description:"允许用户锁定表格,以控制并发访问。",select:!0,msg:"锁定表格"},{id:22,name:"REFERENCES",description:"允许用户创建和使用外键,以维护数据完整性。",msg:"创建/使用外键"}]}],ve={class:"p-[20px]"},he={class:"p-[20px]"},Ce={class:"w-[38rem] max-h-[18rem] overflow-auto border border-solid p-[12px] border-darker"},Oe=ee({__name:"user-auth",props:{compData:{default:{}}},setup(V){const A=V,{proxy:k}=ge(),{row:d,sid:E}=te(A.compData),u=T(!1),D=T(),g=T([]),x=N(()=>{var e;return s.dbname==="*"?Re:s.dbname!=="*"&&s.tbname!=="*"?(e=U.find(t=>t.id===1))==null?void 0:e.children:U}),F=N(()=>s.dbname==="*"?[]:[1,6,21,22]),B=R({children:"children",label:"msg",disabled:e=>{const t=[1,2,3,4,5];return s.dbname!=="*"&&s.tbname!=="*"&&!t.includes(e.id)}}),s=R({database:"",table:"",access:[],dbname:"*",tbname:"*",loading:!1,selected:[1,6,21,22]}),G={dbname:[{required:!0,message:"请选择数据库",trigger:["blur"]}],tbname:[{validator:(e,t,n)=>{t===""&&s.dbname!=="*"?n(new Error("请选择数据库表")):n()},trigger:["blur"]}]},W=async()=>{try{s.loading=!0;const{data:e}=await _e({sid:E.value});g.value=e.data,l.addPermissionPopup=!0}catch(e){}finally{s.loading=!1}},H=async e=>{try{await z({title:"删除权限",icon:"warning-filled",content:"即将删除【"+e.database+"】的权限,是否继续?"});const t=await fe({sid:E.value,host:d.value.host,username:d.value.user,db_name:e.database,tb_name:e.table,access:e.access.map(n=>n.access).join(","),with_grant:0});P(d.value.user,d.value.host),I.request(t)}catch(t){}},M=()=>{const e=k.$refs.tree.getCheckedNodes().filter(n=>n.name&&!n.children).map(n=>n.name).join(",");return{sid:E.value,host:d.value.host,username:d.value.user,db_name:s.dbname,tb_name:s.tbname,access:e,with_grant:0}},j=async()=>{try{await D.value.validate(),s.loading=!0;const e=M();if(e.access==="")return I.error("权限不可为空,请选择权限!");await J({loading:"正在添加权限,请稍后...",request:Te(e),message:!0,success:()=>{l.addPermissionPopup=!1,P(d.value.user,d.value.host)}})}catch(e){}finally{s.loading=!1}},P=async(e,t)=>{try{u.value=!0;const{data:n}=await A.compData.refreshEvent();let p=n.find(c=>c.user===e).list.find(c=>c.host===t).access_list;l.associatedData=p,u.value=!1}catch(n){}finally{u.value=!1}},l=R({addPermissionPopup:!1,associatedData:[],associatedDataColumn:[{label:"数据库",render:e=>e.database==="*"?e.database+" -所有数据库":e.database},{label:"表",render:e=>e.table==="*"?e.table+" -所有表":e.table},{label:"权限",width:"320",render(e){return se("div",{class:"truncate break-words max-h-[8rem] overflow-auto whitespace-nowrap"},[e.access.map(t=>"".concat(t.title?t.title:t.msg,":").concat(t.access?t.access:t.name)).join("\n")])}},be([{title:"删除",onClick:H}])]});return ae(async()=>{l.associatedData=d.value.access_list}),(e,t)=>{const n=de,S=Q,p=le,c=ce,L=me,b=ue,q=pe,K=Ee,X=Z,Y=$,_=ne("bt-loading");return m(),v("div",ve,[o(Y,null,{"header-left":i(()=>[o(n,{type:"primary",onClick:W},{default:i(()=>[...t[4]||(t[4]=[re("添加权限",-1)])]),_:1})]),content:i(()=>[h(o(S,{"max-height":"500",data:a(l).associatedData,column:a(l).associatedDataColumn,"default-sort":{prop:"user",order:"descending"}},null,8,["data","column"]),[[_,a(u)],[_,"正在加载列表,请稍后...","title"]])]),popup:i(()=>[o(X,{title:"添加权限",modelValue:a(l).addPermissionPopup,"onUpdate:modelValue":t[3]||(t[3]=r=>a(l).addPermissionPopup=r),area:60,onConfirm:j,"show-footer":""},{default:i(()=>[w("div",he,[h((m(),C(K,{rules:G,"label-width":"100px",model:a(s),ref_key:"addUserPermissionFormRef",ref:D,"label-position":"right",onSubmit:t[2]||(t[2]=ie(()=>{},["prevent"]))},{default:i(()=>[o(b,{label:"数据库权限关联",prop:"dbname"},{default:i(()=>[o(L,{span:8},{default:i(()=>[o(c,{class:"!w-[15rem]",modelValue:a(s).dbname,"onUpdate:modelValue":t[0]||(t[0]=r=>a(s).dbname=r)},{default:i(()=>[(m(!0),v(y,null,O(a(g),(r,f)=>(m(),C(p,{key:f,label:r.name,value:r.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),h(o(L,{span:10},{default:i(()=>[o(b,{prop:"tbname"},{default:i(()=>[o(c,{class:"!w-[22.3rem] ml-[1rem]",modelValue:a(s).tbname,"onUpdate:modelValue":t[1]||(t[1]=r=>a(s).tbname=r)},{default:i(()=>[(m(!0),v(y,null,O(a(g).find(r=>r.value===a(s).dbname).tb_list,(r,f)=>(m(),C(p,{key:f,label:r.name,value:r.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1})]),_:1},512),[[oe,a(s).dbname!=="*"]])]),_:1}),o(b,{label:"基础权限"},{default:i(()=>[w("div",Ce,[o(q,{data:a(x),"node-key":"id","default-expand-all":"","show-checkbox":"",ref:"tree","default-checked-keys":a(F),props:a(B)},null,8,["data","default-checked-keys","props"])])]),_:1})]),_:1},8,["model"])),[[_,a(s).loading]])])]),_:1},8,["modelValue"])]),_:1})])}}});export{Oe as default};