feat: log staff sign-in and sign-out and force logout at a set time

This commit is contained in:
2026-10-19 13:34:55 +03:30
parent 3863c5e7d1
commit 8590579605
25 changed files with 588 additions and 15 deletions
@@ -8,6 +8,7 @@ import { RolesGuard } from '../auth/roles.guard';
import { OrgModuleGuard } from '../billing/org-module.guard';
import { RequireOrgModule } from '../billing/org-module.decorator';
import { AuditLogsService } from './audit-logs.service';
import { AttendanceService } from '../attendance/attendance.service';
class ListAuditQueryDto {
@IsOptional()
@@ -45,7 +46,23 @@ class ListAuditQueryDto {
@RequireOrgModule('audit_logs')
@Roles('owner', 'admin')
export class AuditLogsController {
constructor(private readonly auditLogs: AuditLogsService) {}
constructor(
private readonly auditLogs: AuditLogsService,
private readonly attendance: AttendanceService,
) {}
@Get('attendance')
attendanceList(
@CurrentUser() user: { organizationId: string },
@Query() query: ListAuditQueryDto,
) {
return this.attendance.list(user.organizationId, {
q: query.q,
userId: query.actorUserId,
page: query.page,
limit: query.limit,
});
}
@Get()
list(
+2 -1
View File
@@ -2,12 +2,13 @@ import { Module } from '@nestjs/common';
import { APP_INTERCEPTOR } from '@nestjs/core';
import { AuthModule } from '../auth/auth.module';
import { BillingModule } from '../billing/billing.module';
import { AttendanceModule } from '../attendance/attendance.module';
import { AuditLogsController } from './audit-logs.controller';
import { AuditLogsInterceptor } from './audit-logs.interceptor';
import { AuditLogsService } from './audit-logs.service';
@Module({
imports: [AuthModule, BillingModule],
imports: [AuthModule, BillingModule, AttendanceModule],
controllers: [AuditLogsController],
providers: [
AuditLogsService,