Samx Here
n1udSecurity


Server : Apache
System : Linux ks5.tuic.fr 6.1.0-18-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.76-1 (2024-02-01) x86_64
User : pragmatice ( 1003)
PHP Version : 8.2.24
Disable Function : NONE
Directory :  /tmp/tsx-1023/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //tmp/tsx-1023/17180-2d9e56697365d81723c33af65cc17a905dc79878
{"code":"(()=>{\n\"use strict\";var __defProp=Object.defineProperty;var __name=(target,value)=>__defProp(target,\"name\",{value,configurable:true});const CustomError=require(\"../utils/customError\");const promises=require(\"../utils/promises\");const randomString=require(\"../utils/randomstring\");const db=require(\"./DB\");const groupManager=require(\"./GroupManager\");const authorManager=require(\"./AuthorManager\");exports.findAuthorID=async(groupID,sessionCookie)=>{if(!sessionCookie)return void 0;const sessionIDs=sessionCookie.replace(/^\"|\"$/g,\"\").split(\",\");const sessionInfoPromises=sessionIDs.map(async id=>{try{return await exports.getSessionInfo(id)}catch(err){if(err.message===\"sessionID does not exist\"){console.debug(`SessionManager getAuthorID: no session exists with ID ${id}`)}else{throw err}}return void 0});const now=Math.floor(Date.now()/1e3);const isMatch=__name(si=>si!=null&&si.groupID===groupID&&now<si.validUntil,\"isMatch\");const sessionInfo=await promises.firstSatisfies(sessionInfoPromises,isMatch);if(sessionInfo==null)return void 0;return sessionInfo.authorID};exports.doesSessionExist=async sessionID=>{const session=await db.get(`session:${sessionID}`);return session!=null};exports.createSession=async(groupID,authorID,validUntil)=>{const groupExists=await groupManager.doesGroupExist(groupID);if(!groupExists){throw new CustomError(\"groupID does not exist\",\"apierror\")}const authorExists=await authorManager.doesAuthorExist(authorID);if(!authorExists){throw new CustomError(\"authorID does not exist\",\"apierror\")}if(typeof validUntil!==\"number\"){validUntil=parseInt(validUntil)}if(isNaN(validUntil)){throw new CustomError(\"validUntil is not a number\",\"apierror\")}if(validUntil<0){throw new CustomError(\"validUntil is a negative number\",\"apierror\")}if(!isInt(validUntil)){throw new CustomError(\"validUntil is a float value\",\"apierror\")}if(validUntil<Math.floor(Date.now()/1e3)){throw new CustomError(\"validUntil is in the past\",\"apierror\")}const sessionID=`s.${randomString(16)}`;await db.set(`session:${sessionID}`,{groupID,authorID,validUntil});await Promise.all([db.setSub(`group2sessions:${groupID}`,[\"sessionIDs\",sessionID],1),db.setSub(`author2sessions:${authorID}`,[\"sessionIDs\",sessionID],1)]);return{sessionID}};exports.getSessionInfo=async sessionID=>{const session=await db.get(`session:${sessionID}`);if(session==null){throw new CustomError(\"sessionID does not exist\",\"apierror\")}return session};exports.deleteSession=async sessionID=>{const session=await db.get(`session:${sessionID}`);if(session==null){throw new CustomError(\"sessionID does not exist\",\"apierror\")}const groupID=session.groupID;const authorID=session.authorID;await Promise.all([db.setSub(`group2sessions:${groupID}`,[\"sessionIDs\",sessionID],void 0),db.setSub(`author2sessions:${authorID}`,[\"sessionIDs\",sessionID],void 0)]);await db.remove(`session:${sessionID}`)};exports.listSessionsOfGroup=async groupID=>{const exists=await groupManager.doesGroupExist(groupID);if(!exists){throw new CustomError(\"groupID does not exist\",\"apierror\")}const sessions=await listSessionsWithDBKey(`group2sessions:${groupID}`);return sessions};exports.listSessionsOfAuthor=async authorID=>{const exists=await authorManager.doesAuthorExist(authorID);if(!exists){throw new CustomError(\"authorID does not exist\",\"apierror\")}return await listSessionsWithDBKey(`author2sessions:${authorID}`)};const listSessionsWithDBKey=__name(async dbkey=>{const sessionObject=await db.get(dbkey);const sessions=sessionObject?sessionObject.sessionIDs:null;for(const sessionID of Object.keys(sessions||{})){try{sessions[sessionID]=await exports.getSessionInfo(sessionID)}catch(err){if(err.name===\"apierror\"){console.warn(`Found bad session ${sessionID} in ${dbkey}`);sessions[sessionID]=null}else{throw err}}}return sessions},\"listSessionsWithDBKey\");const isInt=__name(value=>parseFloat(value)===parseInt(value)&&!isNaN(value),\"isInt\");\n})()\n","warnings":[],"map":{"version":3,"mappings":"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","names":[],"ignoreList":[],"sources":["/home/etherpad/src/node/db/SessionManager.ts"],"sourcesContent":[null]}}

SAMX