Table of Contents

Constructor UserModerationService

Namespace
UsluzionicaServer.Services
Assembly
UsluzionicaServer.dll

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):

  1. IsActive se 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.

  2. Refresh tokeni se nisu poništavali. Access token traje 60 minuta, pa je banovan korisnik nastavljao da radi do sat vremena.

  3. AdminService.DeactivateUserAsync je 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 UserModerationService(AppDbContext db, NotificationService notifications, ILogger<UserModerationService> logger)

Parameters

db AppDbContext
notifications NotificationService
logger ILogger<UserModerationService>