Class UserModerationService
- Namespace
- UsluzionicaServer.Services
- Assembly
- UsluzionicaServer.dll
Deaktivacija i vraćanje naloga, sa SVIM posledicama.
Postoji kao zaseban servis zato što deaktivacija ima tri dela koja moraju da idu zajedno, a zovu je dva pozivaoca (admin ručno i rešavanje prijave). Da je logika prepisana na oba mesta, jedno bi pre ili kasnije zaboravilo jedan deo — i to tiho.
ŠTA JE RANIJE FALILO (zatečeno stanje pre ovog servisa):
IsActivese proveravao SAMO pri prijavi i osvežavanju tokena (AuthService). Oglasi deaktiviranog korisnika ostajali su u pretrazi — dakle baniš nalog, a sadržaj zbog kog si ga banovao i dalje stoji.Refresh tokeni se nisu poništavali. Access token traje 60 minuta, pa je banovan korisnik nastavljao da radi do sat vremena.
AdminService.DeactivateUserAsyncje bio TOGGLE (SetProperty(u => !u.IsActive)). Admin koji dvaput klikne na prijavu vratio bi nalog, a da to nigde ne vidi. Zato je ovde eksplicitno „deaktiviraj" ili „vrati", nikad „obrni".
public sealed class UserModerationService
- Inheritance
-
UserModerationService
- Inherited Members
Constructors
- UserModerationService(AppDbContext, NotificationService, ILogger<UserModerationService>)
Deaktivacija i vraćanje naloga, sa SVIM posledicama.
Postoji kao zaseban servis zato što deaktivacija ima tri dela koja moraju da idu zajedno, a zovu je dva pozivaoca (admin ručno i rešavanje prijave). Da je logika prepisana na oba mesta, jedno bi pre ili kasnije zaboravilo jedan deo — i to tiho.
ŠTA JE RANIJE FALILO (zatečeno stanje pre ovog servisa):
IsActivese proveravao SAMO pri prijavi i osvežavanju tokena (AuthService). Oglasi deaktiviranog korisnika ostajali su u pretrazi — dakle baniš nalog, a sadržaj zbog kog si ga banovao i dalje stoji.Refresh tokeni se nisu poništavali. Access token traje 60 minuta, pa je banovan korisnik nastavljao da radi do sat vremena.
AdminService.DeactivateUserAsyncje bio TOGGLE (SetProperty(u => !u.IsActive)). Admin koji dvaput klikne na prijavu vratio bi nalog, a da to nigde ne vidi. Zato je ovde eksplicitno „deaktiviraj" ili „vrati", nikad „obrni".
Methods
- DeaktivirajAsync(string, string?)
Deaktivira nalog: gasi pristup, sklanja sadržaj i poništava tokene.
- VratiAsync(string)
Vraća nalog u rad.