Merge pull request #264 from LD-Reborn/235-feature-implement-maxdownloadableuserimagesize-settings

Implemented MaxDownloadableUserImageSize config setting
This commit is contained in:
LD50
2025-11-02 22:35:20 +01:00
committed by GitHub
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");
}

View File

@@ -13,7 +13,6 @@ public static class ImageHelper
{
public static string ResizeAndConvertToBase64(byte[] imageBytes, int size = 32)
{
size = Math.Min(size, 256);
using var inputStream = new MemoryStream(imageBytes);
using var image = Image.Load(inputStream);