diff --git a/src/Tgstation.Server.Host/Controllers/UserController.cs b/src/Tgstation.Server.Host/Controllers/UserController.cs index 96ceaf0c2f..de016b1b3d 100644 --- a/src/Tgstation.Server.Host/Controllers/UserController.cs +++ b/src/Tgstation.Server.Host/Controllers/UserController.cs @@ -172,9 +172,15 @@ namespace Tgstation.Server.Host.Controllers } /// - [TgsAuthorize(AdministrationRights.EditUsers)] + [TgsAuthorize] public override async Task GetId(long id, CancellationToken cancellationToken) { + if (id == AuthenticationContext.User.Id) + return await Read(cancellationToken).ConfigureAwait(false); + + if (!((AdministrationRights)AuthenticationContext.GetRight(RightsType.Administration)).HasFlag(AdministrationRights.EditUsers)) + return Forbid(); + var user = await DatabaseContext.Users.Where(x => x.Id == id).FirstOrDefaultAsync(cancellationToken).ConfigureAwait(false); if (user == default) return NotFound();