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();