From 4b48762b01762a3c9976635bc241fa24f99a72f2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?C=C3=B4me=20Chilliet?= <come.chilliet@fusiondirectory.org>
Date: Tue, 5 Nov 2019 14:55:18 +0100
Subject: [PATCH] :sparkles: feat(core) Add configuration option for avatar max
 size

Avoid hard-coded limits and instead have a configuration option to set
 maximum size for user avatars

issue #6049
---
 contrib/openldap/core-fd-conf.schema    | 9 ++++++++-
 plugins/config/class_configInLdap.inc   | 5 +++++
 plugins/personal/generic/class_user.inc | 2 +-
 3 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/contrib/openldap/core-fd-conf.schema b/contrib/openldap/core-fd-conf.schema
index 4dcd7c526..306ad8092 100644
--- a/contrib/openldap/core-fd-conf.schema
+++ b/contrib/openldap/core-fd-conf.schema
@@ -155,6 +155,12 @@ attributetype ( 1.3.6.1.4.1.38414.8.12.21 NAME 'fdPostalAddressPattern'
   SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
   SINGLE-VALUE)
 
+attributetype ( 1.3.6.1.4.1.38414.8.12.22 NAME 'fdMaxAvatarSize'
+  DESC 'FusionDirectory - Maximum user picture width and height in pixels'
+  EQUALITY integerMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
+  SINGLE-VALUE)
+
 # Password
 
 attributetype ( 1.3.6.1.4.1.38414.8.13.1 NAME 'fdPasswordDefaultHash'
@@ -584,7 +590,8 @@ objectclass ( 1.3.6.1.4.1.38414.8.2.1 NAME 'fusionDirectoryConf'
     fdStrictNamingRules $ fdMinId $ fdUidNumberBase $
     fdGidNumberBase $ fdUserRDN $ fdGroupRDN $ fdIdAllocationMethod $
     fdGidNumberPoolMin $ fdUidNumberPoolMin $ fdGidNumberPoolMax $ fdUidNumberPoolMax $
-    fdAclRoleRDN $ fdCnPattern $ fdRestrictRoleMembers $ fdSplitPostalAddress $ fdPostalAddressPattern $
+    fdAclRoleRDN $ fdCnPattern $ fdRestrictRoleMembers $
+    fdSplitPostalAddress $ fdPostalAddressPattern $ fdMaxAvatarSize $
     fdPasswordDefaultHash $ fdPasswordMinLength $ fdPasswordMinDiffer $
     fdHandleExpiredAccounts $ fdSaslRealm $ fdSaslExop $
     fdForcePasswordDefaultHash $ fdPasswordAllowedHashes $
diff --git a/plugins/config/class_configInLdap.inc b/plugins/config/class_configInLdap.inc
index 93e8055c3..24e784c76 100644
--- a/plugins/config/class_configInLdap.inc
+++ b/plugins/config/class_configInLdap.inc
@@ -286,6 +286,11 @@ class configInLdap extends simplePlugin
             _('Postal address pattern'), _('When using separate address fields, you can use a pattern to fill postalAddress field.'),
             'fdPostalAddressPattern'
           ),
+          new IntAttribute(
+            _('Avatar max size'), _('Maximum user picture width and height in pixels. Bigger uploaded pictures will be resized.'),
+            'fdMaxAvatarSize', FALSE,
+            1, FALSE, 200
+          ),
         ]
       ],
       'debug' => [
diff --git a/plugins/personal/generic/class_user.inc b/plugins/personal/generic/class_user.inc
index 4a55f638c..014025551 100644
--- a/plugins/personal/generic/class_user.inc
+++ b/plugins/personal/generic/class_user.inc
@@ -106,7 +106,7 @@ class user extends simplePlugin
           new ImageAttribute(
             _('Picture'), _('The avatar for this user'),
             'jpegPhoto', FALSE,
-            150, 200, 'jpeg'
+            $config->get_cfg_value('MaxAvatarSize', 200), $config->get_cfg_value('MaxAvatarSize', 200), 'jpeg'
           ),
         ]
       ],
-- 
GitLab