Implemented MaxDownloadableUserImageSize config setting

This commit is contained in:
2025-11-02 22:35:06 +01:00
parent b7279e498f
commit 6d065de974
2 changed files with 6 additions and 1 deletions

View File

@@ -98,6 +98,7 @@ public class HomeController : Controller
[ResponseCache(Duration = 3600, Location = ResponseCacheLocation.Any, VaryByQueryKeys = new[] { "uid", "size" })]
public async Task<IActionResult> UserPhotoAsync(string uid, int? size)
{
Task<AdminSettingsModel> adminSettingsModelTask = _ldap.GetAdminSettingsModelAsync();
UserModel? user = await _ldap.GetUserByUidAsync(uid, _ldap.UsersAttributes);
if (user is null || user.JpegPhoto is null)
{
@@ -107,6 +108,11 @@ public class HomeController : Controller
{
return File(Convert.FromBase64String(user.JpegPhoto), "image/jpeg");
}
if (size is not null)
{
AdminSettingsModel adminSettingsModel = await adminSettingsModelTask;
size = Math.Min((int)size, adminSettingsModel.MaxDownloadableUserImageSize);
}
string encodedFile = ImageHelper.ResizeAndConvertToBase64(Convert.FromBase64String(user.JpegPhoto), size ?? 32);
return File(Convert.FromBase64String(encodedFile), "image/jpeg");
}