diff options
| author | bobzel <zzzman@gmail.com> | 2024-05-19 00:05:18 -0400 | 
|---|---|---|
| committer | bobzel <zzzman@gmail.com> | 2024-05-19 00:05:18 -0400 | 
| commit | 38742d5f491ed5232a381da63e126b609cf14aad (patch) | |
| tree | a723b0c9dfffa717b70df383d21fb3b14567308f /src/server/ApiManagers/SessionManager.ts | |
| parent | a3784cd3ab990d8016b1168eb0cbf7e9a2f22301 (diff) | |
| parent | 0b451af28e5aef6b749da61e8a9fcd0a840789ac (diff) | |
Merge branch 'restoringEslint' into aisosa-starter
Diffstat (limited to 'src/server/ApiManagers/SessionManager.ts')
| -rw-r--r-- | src/server/ApiManagers/SessionManager.ts | 75 | 
1 files changed, 36 insertions, 39 deletions
| diff --git a/src/server/ApiManagers/SessionManager.ts b/src/server/ApiManagers/SessionManager.ts index e37f8c6db..bebe50a62 100644 --- a/src/server/ApiManagers/SessionManager.ts +++ b/src/server/ApiManagers/SessionManager.ts @@ -1,67 +1,64 @@ -import ApiManager, { Registration } from "./ApiManager"; -import { Method, _permission_denied, AuthorizedCore, SecureHandler } from "../RouteManager"; -import RouteSubscriber from "../RouteSubscriber"; -import { sessionAgent } from ".."; -import { DashSessionAgent } from "../DashSession/DashSessionAgent"; +import ApiManager, { Registration } from './ApiManager'; +import { Method, _permissionDenied, AuthorizedCore, SecureHandler } from '../RouteManager'; +import RouteSubscriber from '../RouteSubscriber'; +import { sessionAgent } from '..'; +import { DashSessionAgent } from '../DashSession/DashSessionAgent'; -const permissionError = "You are not authorized!"; +const permissionError = 'You are not authorized!';  export default class SessionManager extends ApiManager { +    private secureSubscriber = (root: string, ...params: string[]) => new RouteSubscriber(root).add('session_key', ...params); -    private secureSubscriber = (root: string, ...params: string[]) => new RouteSubscriber(root).add("session_key", ...params); - -    private authorizedAction = (handler: SecureHandler) => { -        return (core: AuthorizedCore) => { -            const { req: { params }, res } = core; -            if (!process.env.MONITORED) { -                return res.send("This command only makes sense in the context of a monitored session."); -            } -            if (params.session_key !== process.env.session_key) { -                return _permission_denied(res, permissionError); -            } -            return handler(core); -        }; -    } +    private authorizedAction = (handler: SecureHandler) => (core: AuthorizedCore) => { +        const { +            req: { params }, +            res, +        } = core; +        if (!process.env.MONITORED) { +            return res.send('This command only makes sense in the context of a monitored session.'); +        } +        if (params.session_key !== process.env.session_key) { +            return _permissionDenied(res, permissionError); +        } +        return handler(core); +    };      protected initialize(register: Registration): void { -          register({              method: Method.GET, -            subscription: this.secureSubscriber("debug", "to?"), +            subscription: this.secureSubscriber('debug', 'to?'),              secureHandler: this.authorizedAction(async ({ req: { params }, res }) => {                  const to = params.to || DashSessionAgent.notificationRecipient; -                const { error } = await sessionAgent.serverWorker.emit("debug", { to }); +                const { error } = await sessionAgent.serverWorker.emit('debug', { to });                  res.send(error ? error.message : `Your request was successful: the server captured and compressed (but did not save) a new back up. It was sent to ${to}.`); -            }) +            }),          });          register({              method: Method.GET, -            subscription: this.secureSubscriber("backup"), +            subscription: this.secureSubscriber('backup'),              secureHandler: this.authorizedAction(async ({ res }) => { -                const { error } = await sessionAgent.serverWorker.emit("backup"); -                res.send(error ? error.message : "Your request was successful: the server successfully created a new back up."); -            }) +                const { error } = await sessionAgent.serverWorker.emit('backup'); +                res.send(error ? error.message : 'Your request was successful: the server successfully created a new back up.'); +            }),          });          register({              method: Method.GET, -            subscription: this.secureSubscriber("kill"), +            subscription: this.secureSubscriber('kill'),              secureHandler: this.authorizedAction(({ res }) => { -                res.send("Your request was successful: the server and its session have been killed."); -                sessionAgent.killSession("an authorized user has manually ended the server session via the /kill route"); -            }) +                res.send('Your request was successful: the server and its session have been killed.'); +                sessionAgent.killSession('an authorized user has manually ended the server session via the /kill route'); +            }),          });          register({              method: Method.GET, -            subscription: this.secureSubscriber("deleteSession"), +            subscription: this.secureSubscriber('deleteSession'),              secureHandler: this.authorizedAction(async ({ res }) => { -                const { error } = await sessionAgent.serverWorker.emit("delete"); -                res.send(error ? error.message : "Your request was successful: the server successfully deleted the database. Return to /home."); -            }) +                const { error } = await sessionAgent.serverWorker.emit('delete'); +                res.send(error ? error.message : 'Your request was successful: the server successfully deleted the database. Return to /home.'); +            }),          }); -      } - -}
\ No newline at end of file +} | 
