1 line
5.4 KiB
JavaScript
1 line
5.4 KiB
JavaScript
"use strict";(()=>{var e={};e.id=4371,e.ids=[4371],e.modules={39383:e=>{e.exports=require("@moduletrace/datasquirel/dist/package-shared/actions/users/user-auth")},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,a,r)=>{r.r(a),r.d(a,{config:()=>A,default:()=>_,routeModule:()=>h});var t={};r.r(t),r.d(t,{default:()=>f});var s=r(89947),l=r(2706),i=r(96762),o=r(29021),d=r.n(o),n=r(48786),u=r(31495),c=r(60125),b=r(67619),m=r(69842),g=r(30802),p=r(10776);async function f(e,a){if("POST"!==e.method)return a.json({msg:"Failed!"});let r=await (0,m.A)(e,a,!0);if(!r)return a.json({success:!1,msg:"Unauthorized"});let{dbFullName:t,dbSlug:s,dbId:l,tableNameOld:i,payload:o,delegated:f}=e.body,{tableName:_,tableFullName:A,tableDescription:h}=o;if(!_?.match(/./)||_.match(/[^a-zA-Z0-9-_]/))return a.json({success:!1,msg:"Bad Input"});try{let o=await (0,c.A)({databaseSlug:s,request:e,user:r,query:e.query});if(!await (0,u.A)({user:r,confirmedDelegetedUser:o,database:s,table:i,dbId:l,priviledgeRegex:/Edit Table/i}))return console.log("User Unauthorized"),a.json({success:!1,msg:"Unauthorized"});let m=o?.rootUserId?o.rootUserId:r.id,E=`${process.env.DSQL_USER_DB_SCHEMA_PATH}/user-${m}/main.json`,N=JSON.parse(d().readFileSync(E,"utf8")),y=N.filter(e=>e.dbFullName===t)[0].tables.filter((e,a)=>{if(e.tableName===i)return!0});if(y&&y[0])y[0].tableName=_,y[0].tableNameOld=i,y[0].tableFullName=A,h&&(y[0].tableDescription=h),y[0].childrenTables&&y[0].childrenTables.forEach(e=>{try{N.filter(a=>a.dbFullName===e.dbNameFull)[0].tables.filter(a=>{if(a.tableName===e.tableName)return!0})[0].childTableName=_}catch(e){(0,b.A)({component:"/api/updateUserTable/lines-131-138",message:e.message,user:r})}});else throw Error("Table Does not exist");d().writeFileSync(`${E}`,JSON.stringify(N),"utf8"),await (0,g.A)({dbFullName:"datasquirel",tableName:"user_database_tables",identifierColumnName:"table_slug",identifierValue:i,data:{table_name:A,table_slug:_,table_description:h}}),f&&o&&await (0,n.A)("UPDATE delegated_user_tables SET `table`=? WHERE delegated_user_id=? AND root_user_id=? AND `table`=? AND `database`=?",[_,r.id,o.rootUserId,i,s]);let U=t.replace(/[^a-z\_0-9]/g,"");await (0,p.A)({userId:m,targetDatabase:U}),a.json({success:!0})}catch(e){(0,b.A)({component:"/api/updateUserTable/main-catch-error",message:e.message,user:r}),a.json({success:!1,msg:"Database Files could not be written!"})}}let _=(0,i.M)(t,"default"),A=(0,i.M)(t,"config"),h=new s.PagesAPIRouteModule({definition:{kind:l.A.PAGES_API,page:"/api/updateUserTable",pathname:"/api/updateUserTable",bundlePath:"",filename:""},userland:t})},31495:(e,a,r)=>{r.d(a,{A:()=>l});var t=r(48786),s=r(67619);async function l({user:e,confirmedDelegetedUser:a,database:r,table:l,priviledgeRegex:i,dbId:o}){let d,n;try{a?.delegated?(d=await (0,t.A)("SELECT priviledge FROM delegated_user_tables WHERE root_user_id=? AND delegated_user_id=? AND `database`=? AND `table`=?",[a.rootUserId,e.id,r,l]),n=d[0]?.priviledge?.match(i)):(d=await (0,t.A)("SELECT table_slug FROM user_database_tables WHERE user_id=? AND table_slug=? AND db_id=?",[e.id,l,o]),n=!0)}catch(a){(0,s.A)({component:"checkUserRights",message:a.message,user:e})}return!!d&&!!d[0]&&!!n}},60125:(e,a,r)=>{r.d(a,{A:()=>s});var t=r(95969);async function s({request:e,databaseSlug:a,user:r,query:s}){try{let l=r.id,i=null;if(!s?.delegated)return{dbUserId:l};let o=s.dbUserId,d=`${process.env.DSQL_USER_DB_PREFIX}${o}_${a}`,n=`${process.env.DSQL_USER_DELEGATED_DB_COOKIE_PREFIX}${d}`;try{if(!e.cookies?.[n])throw Error("Cookie not present");let r=(0,t.A)({encryptedString:e.cookies[n]});if(!r)throw Error("Invalid Token");if((i=JSON.parse(r)).databaseSlug===a)return{dbUserId:l=i.rootUserId,rootUserId:i.rootUserId,rootUserName:i.rootUserName,rootUserEmail:i.rootUserEmail,rootUserImage:i.rootUserImage,databaseFullName:i.databaseFullName,databaseSlug:i.databaseSlug,allowedTables:i.allowedTables,priviledges:i.priviledges,database:i.databaseSlug,delegated:!0}}catch(e){}return{dbUserId:l}}catch(e){return null}}},69842:(e,a,r)=>{r.d(a,{A:()=>l});var t=r(39383),s=r.n(t);async function l(e,a,r){return s()({req:e,level:r?"deep":void 0}).payload}},95969:(e,a,r)=>{r.d(a,{A:()=>i});var t=r(55511),s=r(79428),l=r(31542);function i({encryptedString:e,encryptionKey:a,encryptionSalt:r}){if(!e?.match(/./))return console.log("Encrypted string is invalid"),e;let{key:i,salt:o,keyLen:d,algorithm:n,bufferAllocSize:u}=(0,l.A)({encryptionKey:a});if(!i?.match(/.{8,}/))return console.log("Decrption key is invalid"),e;if(!o?.match(/.{8,}/))return console.log("Decrption salt is invalid"),e;let c=(0,t.scryptSync)(i,o,d),b=s.Buffer.alloc(u,0),m=(0,t.createDecipheriv)(n,c,b);try{let a=m.update(e,"hex","utf8");return a+=m.final("utf8")}catch(a){return console.log("Error in decrypting =>",a.message),e}}},48786:(e,a,r)=>{r.d(a,{A:()=>s});var t=r(7447);async function s(...e){let a=(0,t.A)();try{if(!a)throw Error("No Connection provided to DB_HANDLER function!");let r=await a.query(...e);return JSON.parse(JSON.stringify(r))}catch(e){return console.log("DB Error =>",e),{success:!1,error:e.message}}finally{await a?.end()}}}};var a=require("../../webpack-api-runtime.js");a.C(e);var r=e=>a(a.s=e),t=a.X(0,[6060,776],()=>r(81147));module.exports=t})(); |