feat(260925-bow): neue Benutzer bekommen die laufende Version eingetragen

- UserService.create (Admin-Anlage, beide LDAP-Wege) und AdminSeedService
  setzen lastSeenReleaseVersion = getRunningRelease(), null auf dev

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-09-25 08:50:06 +02:00
parent 25c8db746a
commit 5ae9aaa0d6
2 changed files with 15 additions and 0 deletions
+5
View File
@@ -2,6 +2,7 @@ import { Injectable, Logger, OnApplicationBootstrap } from '@nestjs/common';
import { ConfigService } from '@nestjs/config';
import * as argon2 from 'argon2';
import { GroupsService } from '../groups/groups.service';
import { getRunningRelease } from '../health/app-version';
import { forTenant } from '../prisma/prisma-tenant.extension';
import { prismaErrorCode } from '../prisma/prisma-error';
import { PrismaService } from '../prisma/prisma.service';
@@ -116,6 +117,10 @@ export class AdminSeedService implements OnApplicationBootstrap {
tenantId: tenant.id,
mustChangePassword: forceChange,
isActive: true,
// quick-260925-bow (D-04): laufende freigegebene Version, damit der
// Erst-Administrator kein "Was ist neu"-Fenster mit Altlasten sieht;
// null auf dev-Staenden.
lastSeenReleaseVersion: getRunningRelease(),
},
});
} catch (err: unknown) {
+10
View File
@@ -2,6 +2,7 @@ import { ConflictException, Injectable, Logger } from '@nestjs/common';
import * as argon2 from 'argon2';
import type { User } from '@prisma/client';
import { GroupsService } from '../groups/groups.service';
import { getRunningRelease } from '../health/app-version';
import { forTenant } from '../prisma/prisma-tenant.extension';
import { prismaErrorCode } from '../prisma/prisma-error';
import { PrismaService } from '../prisma/prisma.service';
@@ -140,6 +141,14 @@ export class UserService {
* endet damit bei JEDEM Aufrufer an dieser einen Stelle. Die Meldung
* nennt WEDER den Halter NOCH dessen Mandanten, weil das sonst eine
* Aussage ueber einen fremden Mandanten waere (T-DAS-08).
*
* "Was ist neu"-Fenster (quick-260925-bow, D-04): neue Benutzer (Admin-
* Anlage, AD-Abgleich und AD-Import) bekommen hier die laufende
* freigegebene Version (`getRunningRelease()`) als
* `lastSeenReleaseVersion` eingetragen, damit sie kein Fenster mit
* Aenderungen aus der Zeit vor ihrem Konto sehen; auf Staenden ohne
* freigegebene Version (`dev`) `null`. Der Wert ist eine Eigenschaft des
* Servers, kein Parameter dieser Methode.
*/
async create(data: {
username: string;
@@ -164,6 +173,7 @@ export class UserService {
...rest,
username: rest.username.toLowerCase(),
passwordHash: password ? await argon2.hash(password) : null,
lastSeenReleaseVersion: getRunningRelease(),
},
});
} catch (err: unknown) {