Admin suite: monitoring dashboard, user management/ban, broadcast, reports, SMS test
- /Admin/Overview: platform monitoring stats (users by role, facilities, listings, applies, push subs, queue, reports, bans) - /Admin/Users: search/filter + ban/unban (User.IsBanned + reason); banned users blocked at login - /Admin/Broadcast: send announcement (in-app + web push) to all / staff / employers via NotificationService - Reports: report button on shift/job detail → /report endpoint → /Admin/Reports (resolve/dismiss) - Settings: 'send test SMS' button; admin cross-nav links; SMS API config already in place - migration AdminBanReports; verified overview/users/broadcast/report persist Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -62,6 +62,11 @@ public class LoginModel : PageModel
|
||||
|
||||
// Find or create the user. The configured admin phone is granted the Admin role.
|
||||
var user = await _db.Users.FirstOrDefaultAsync(u => u.Phone == phone);
|
||||
if (user is { IsBanned: true })
|
||||
{
|
||||
Error = "حساب شما مسدود شده است." + (string.IsNullOrWhiteSpace(user.BanReason) ? "" : $" ({user.BanReason})");
|
||||
return Page();
|
||||
}
|
||||
var isAdmin = phone == OtpService.Normalize(_config["Auth:AdminPhone"] ?? "");
|
||||
var isEmployer = string.Equals(AccountType, "employer", StringComparison.OrdinalIgnoreCase);
|
||||
if (user is null)
|
||||
|
||||
Reference in New Issue
Block a user