mirror of
https://github.com/hexastack/hexabot
synced 2025-06-26 18:27:28 +00:00
fix: revert API updates
This commit is contained in:
parent
83c85c31a7
commit
2587ee4e3b
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2025 Hexastack. All rights reserved.
|
* Copyright © 2024 Hexastack. All rights reserved.
|
||||||
*
|
*
|
||||||
* Licensed under the GNU Affero General Public License v3.0 (AGPLv3) with the following additional terms:
|
* Licensed under the GNU Affero General Public License v3.0 (AGPLv3) with the following additional terms:
|
||||||
* 1. The name "Hexabot" is a trademark of Hexastack. You may not use this name in derivative works without express written permission.
|
* 1. The name "Hexabot" is a trademark of Hexastack. You may not use this name in derivative works without express written permission.
|
||||||
@ -11,8 +11,6 @@ import {
|
|||||||
Body,
|
Body,
|
||||||
Controller,
|
Controller,
|
||||||
Get,
|
Get,
|
||||||
Headers,
|
|
||||||
Inject,
|
|
||||||
InternalServerErrorException,
|
InternalServerErrorException,
|
||||||
Param,
|
Param,
|
||||||
Post,
|
Post,
|
||||||
@ -23,9 +21,7 @@ import {
|
|||||||
UseGuards,
|
UseGuards,
|
||||||
UseInterceptors,
|
UseInterceptors,
|
||||||
} from '@nestjs/common';
|
} from '@nestjs/common';
|
||||||
import { EventEmitter2 } from '@nestjs/event-emitter';
|
|
||||||
import { CsrfCheck, CsrfGen, CsrfGenAuth } from '@tekuconcept/nestjs-csrf';
|
import { CsrfCheck, CsrfGen, CsrfGenAuth } from '@tekuconcept/nestjs-csrf';
|
||||||
import cookie from 'cookie';
|
|
||||||
import { Request, Response } from 'express';
|
import { Request, Response } from 'express';
|
||||||
import { Session as ExpressSession } from 'express-session';
|
import { Session as ExpressSession } from 'express-session';
|
||||||
|
|
||||||
@ -42,9 +38,6 @@ import { UserService } from '../services/user.service';
|
|||||||
import { ValidateAccountService } from '../services/validate-account.service';
|
import { ValidateAccountService } from '../services/validate-account.service';
|
||||||
|
|
||||||
export class BaseAuthController {
|
export class BaseAuthController {
|
||||||
@Inject(EventEmitter2)
|
|
||||||
private readonly eventEmitter: EventEmitter2;
|
|
||||||
|
|
||||||
constructor(protected readonly logger: LoggerService) {}
|
constructor(protected readonly logger: LoggerService) {}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -73,13 +66,7 @@ export class BaseAuthController {
|
|||||||
logout(
|
logout(
|
||||||
@Session() session: ExpressSession,
|
@Session() session: ExpressSession,
|
||||||
@Res({ passthrough: true }) res: Response,
|
@Res({ passthrough: true }) res: Response,
|
||||||
@Headers() headers: Record<string, string>,
|
|
||||||
) {
|
) {
|
||||||
const parsedCookie = cookie.parse(headers['cookie']);
|
|
||||||
const sessionCookie = encodeURIComponent(
|
|
||||||
String(parsedCookie[config.session.name] || ''),
|
|
||||||
);
|
|
||||||
this.eventEmitter.emit('hook:websocket:session_data', sessionCookie);
|
|
||||||
res.clearCookie(config.session.name);
|
res.clearCookie(config.session.name);
|
||||||
|
|
||||||
session.destroy((error) => {
|
session.destroy((error) => {
|
||||||
|
|||||||
@ -1,12 +1,12 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2025 Hexastack. All rights reserved.
|
* Copyright © 2024 Hexastack. All rights reserved.
|
||||||
*
|
*
|
||||||
* Licensed under the GNU Affero General Public License v3.0 (AGPLv3) with the following additional terms:
|
* Licensed under the GNU Affero General Public License v3.0 (AGPLv3) with the following additional terms:
|
||||||
* 1. The name "Hexabot" is a trademark of Hexastack. You may not use this name in derivative works without express written permission.
|
* 1. The name "Hexabot" is a trademark of Hexastack. You may not use this name in derivative works without express written permission.
|
||||||
* 2. All derivative works must include clear attribution to the original creator and software, Hexastack and Hexabot, in a prominent location (e.g., in the software's "About" section, documentation, and README file).
|
* 2. All derivative works must include clear attribution to the original creator and software, Hexastack and Hexabot, in a prominent location (e.g., in the software's "About" section, documentation, and README file).
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { EventEmitter2, OnEvent } from '@nestjs/event-emitter';
|
import { EventEmitter2 } from '@nestjs/event-emitter';
|
||||||
import {
|
import {
|
||||||
ConnectedSocket,
|
ConnectedSocket,
|
||||||
MessageBody,
|
MessageBody,
|
||||||
@ -258,17 +258,6 @@ export class WebsocketGateway
|
|||||||
this.eventEmitter.emit(`hook:websocket:connection`, client);
|
this.eventEmitter.emit(`hook:websocket:connection`, client);
|
||||||
}
|
}
|
||||||
|
|
||||||
@OnEvent('hook:websocket:session_data')
|
|
||||||
disconnectSockets(sessionCookie: string) {
|
|
||||||
if (sessionCookie.length) {
|
|
||||||
for (const [socketId, socket] of this.io.sockets.sockets) {
|
|
||||||
if (socket.handshake.headers.cookie?.includes(sessionCookie)) {
|
|
||||||
this.io.sockets.sockets.get(socketId)?.disconnect(true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
async handleDisconnect(client: Socket): Promise<void> {
|
async handleDisconnect(client: Socket): Promise<void> {
|
||||||
this.logger.log(`Client id:${client.id} disconnected`);
|
this.logger.log(`Client id:${client.id} disconnected`);
|
||||||
// Configurable custom afterDisconnect logic here
|
// Configurable custom afterDisconnect logic here
|
||||||
|
|||||||
3
api/types/event-emitter.d.ts
vendored
3
api/types/event-emitter.d.ts
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2025 Hexastack. All rights reserved.
|
* Copyright © 2024 Hexastack. All rights reserved.
|
||||||
*
|
*
|
||||||
* Licensed under the GNU Affero General Public License v3.0 (AGPLv3) with the following additional terms:
|
* Licensed under the GNU Affero General Public License v3.0 (AGPLv3) with the following additional terms:
|
||||||
* 1. The name "Hexabot" is a trademark of Hexastack. You may not use this name in derivative works without express written permission.
|
* 1. The name "Hexabot" is a trademark of Hexastack. You may not use this name in derivative works without express written permission.
|
||||||
@ -116,7 +116,6 @@ declare module '@nestjs/event-emitter' {
|
|||||||
object,
|
object,
|
||||||
{
|
{
|
||||||
connection: Socket;
|
connection: Socket;
|
||||||
session_data: string;
|
|
||||||
}
|
}
|
||||||
>;
|
>;
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user