dsql-admin/dsql-app/.local_dist/server/pages/api/updateUserTable.js

1 line
9.4 KiB
JavaScript
Raw Normal View History

2025-01-28 18:43:16 +00:00
"use strict";(()=>{var e={};e.id=4371,e.ids=[4371],e.modules={75600:e=>{e.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},72583:e=>{e.exports=require("sanitize-html")},9973:e=>{e.exports=require("serverless-mysql")},79428:e=>{e.exports=require("buffer")},55511:e=>{e.exports=require("crypto")},29021:e=>{e.exports=require("fs")},33873:e=>{e.exports=require("path")},81147:(e,t,r)=>{r.r(t),r.d(t,{config:()=>h,default:()=>_,routeModule:()=>N});var a={};r.r(a),r.d(a,{default:()=>m});var s=r(89947),n=r(2706),l=r(96762),o=r(29021),i=r.n(o),u=r(48786),c=r(31495),d=r(60125),g=r(67619),p=r(69842),f=r(30802),b=r(76856);async function m(e,t){if("POST"!==e.method)return t.json({msg:"Failed!"});let r=await (0,p.A)(e,t,!0);if(!r)return t.json({success:!1,msg:"Unauthorized"});let{dbFullName:a,dbSlug:s,dbId:n,tableNameOld:l,payload:o,delegated:m}=e.body,{tableName:_,tableFullName:h,tableDescription:N}=o;if(!_?.match(/./)||_.match(/[^a-zA-Z0-9-_]/))return t.json({success:!1,msg:"Bad Input"});try{let o=await (0,d.A)({databaseSlug:s,request:e,user:r,query:e.query});if(!await (0,c.A)({user:r,confirmedDelegetedUser:o,database:s,table:l,dbId:n,priviledgeRegex:/Edit Table/i}))return console.log("User Unauthorized"),t.json({success:!1,msg:"Unauthorized"});let p=o?.rootUserId?o.rootUserId:r.id,y=`${process.env.DSQL_USER_DB_SCHEMA_PATH}/user-${p}/main.json`,E=JSON.parse(i().readFileSync(y,"utf8")),S=E.filter(e=>e.dbFullName===a)[0].tables.filter((e,t)=>{if(e.tableName===l)return!0});if(S&&S[0])S[0].tableName=_,S[0].tableNameOld=l,S[0].tableFullName=h,N&&(S[0].tableDescription=N),S[0].childrenTables&&S[0].childrenTables.forEach(e=>{try{E.filter(t=>t.dbFullName===e.dbNameFull)[0].tables.filter(t=>{if(t.tableName===e.tableName)return!0})[0].childTableName=_}catch(e){(0,g.A)({component:"/api/updateUserTable/lines-131-138",message:e.message,user:r})}});else throw Error("Table Does not exist");i().writeFileSync(`${y}`,JSON.stringify(E),"utf8"),await (0,f.A)({dbFullName:"datasquirel",tableName:"user_database_tables",identifierColumnName:"table_slug",identifierValue:l,data:{table_name:h,table_slug:_,table_description:N}}),m&&o&&await (0,u.A)("UPDATE delegated_user_tables SET `table`=? WHERE delegated_user_id=? AND root_user_id=? AND `table`=? AND `database`=?",[_,r.id,o.rootUserId,l,s]);let A=a.replace(/[^a-z\_0-9]/g,"");await (0,b.A)({userId:p,targetDatabase:A}),t.json({success:!0})}catch(e){(0,g.A)({component:"/api/updateUserTable/main-catch-error",message:e.message,user:r}),t.json({success:!1,msg:"Database Files could not be written!"})}}let _=(0,l.M)(a,"default"),h=(0,l.M)(a,"config"),N=new s.PagesAPIRouteModule({definition:{kind:n.A.PAGES_API,page:"/api/updateUserTable",pathname:"/api/updateUserTable",bundlePath:"",filename:""},userland:a})},31495:(e,t,r)=>{r.d(t,{A:()=>n});var a=r(48786),s=r(67619);async function n({user:e,confirmedDelegetedUser:t,database:r,table:n,priviledgeRegex:l,dbId:o}){let i,u;try{t?.delegated?(i=await (0,a.A)("SELECT priviledge FROM delegated_user_tables WHERE root_user_id=? AND delegated_user_id=? AND `database`=? AND `table`=?",[t.rootUserId,e.id,r,n]),u=i[0]?.priviledge?.match(l)):(i=await (0,a.A)("SELECT table_slug FROM user_database_tables WHERE user_id=? AND table_slug=? AND db_id=?",[e.id,n,o]),u=!0)}catch(t){(0,s.A)({component:"checkUserRights",message:t.message,user:e})}return!!i&&!!i[0]&&!!u}},60125:(e,t,r)=>{r.d(t,{A:()=>s});var a=r(95969);async function s({request:e,databaseSlug:t,user:r,query:s}){try{let n=r.id,l=null;if(!s?.delegated)return{dbUserId:n};let o=s.dbUserId,i=`${process.env.DSQL_USER_DB_PREFIX}${o}_${t}`,u=`${process.env.DSQL_USER_DELEGATED_DB_COOKIE_PREFIX}${i}`;try{if(!e.cookies?.[u])throw Error("Cookie not present");let r=(0,a.A)({encryptedString:e.cookies[u]});if(!r)throw Error("Invalid Token");if((l=JSON.parse(r)).databaseSlug===t)return{dbUserId:n=l.rootUserId,rootUserId:l.rootUserId,rootUserName:l.rootUserName,rootUserEmail:l.rootUserEmail,rootUserImage:l.rootUserImage,databaseFullName:l.databaseFullName,databaseSlug:l.databaseSlug,allowedTables:l.allowedTables,pr