Add permission to access the GDPR export
authorTim Düsterhus <duesterhus@woltlab.com>
Tue, 23 Feb 2021 13:49:50 +0000 (14:49 +0100)
committerTim Düsterhus <duesterhus@woltlab.com>
Tue, 23 Feb 2021 13:49:50 +0000 (14:49 +0100)
Resolves #3993

com.woltlab.wcf/userGroupOption.xml
wcfsetup/install/files/acp/templates/userList.tpl
wcfsetup/install/files/lib/acp/action/UserExportGdprAction.class.php
wcfsetup/install/lang/de.xml
wcfsetup/install/lang/en.xml

index 79a68163a5b54fc13147efeacf51bd8c8ee0a1f3..eeb6a39bfeb44f49fbfbe62b02f87e21a428adcf 100644 (file)
@@ -1055,9 +1055,18 @@ webp</defaultvalue>
                                <defaultvalue>1</defaultvalue>
                                <options>module_tagging</options>
                        </option>
+                       <option name="admin.user.canExportGdprData">
+                               <categoryname>admin.user.user</categoryname>
+                               <optiontype>boolean</optiontype>
+                               <defaultvalue>0</defaultvalue>
+                               <admindefaultvalue>1</admindefaultvalue>
+                               <moddefaultvalue>0</moddefaultvalue>
+                               <userdefaultvalue>0</userdefaultvalue>
+                               <usersonly>1</usersonly>
+                       </option>
                </options>
        </import>
        <delete>
-               <option name="user.profile.canMail" />
+               <option name="user.profile.canMail"/>
        </delete>
 </data>
index 13b61cd26dfab3622d3f3438dea768c05ab9721b..1f92e0ef3b559f2432c676442b46db9ecb354823 100644 (file)
                                                                                {/if}
                                                                        {/if}
                                                                        
-                                                                       {if $user->editable}
+                                                                       {if $user->accessible && $__wcf->session->getPermission('admin.user.canExportGdprData')}
                                                                                <li><a href="{link controller='UserExportGdpr' id=$user->userID}{/link}">{lang}wcf.acp.user.exportGdpr{/lang}</a></li>
                                                                        {/if}
                                                                        
index 31d08b84e09b5addb5541b08b205b9ffaf3297b7..3a300ebc91f2d205eac56210595cc4a13fb7154e 100644 (file)
@@ -100,7 +100,7 @@ class UserExportGdprAction extends AbstractAction
     /**
      * @inheritDoc
      */
-    public $neededPermissions = ['admin.user.canEditUser'];
+    public $neededPermissions = ['admin.user.canExportGdprData'];
 
     /**
      * list of user option names that are excluded from the output, any option that begins with
index 29d5e64681a3e1e8d639cf67c7143ec58df7171d..7810ce023a093a324a294617558951a07741bbd6 100644 (file)
@@ -921,6 +921,8 @@ ACHTUNG: Die oben genannten Meldungen sind stark gekürzt. Sie können Details z
                <item name="wcf.acp.group.option.user.signature.attachment.maxCount"><![CDATA[Maximale Dateianhänge]]></item>
                <item name="wcf.acp.group.requireMultifactor"><![CDATA[Mehrfaktor-Authentifizierung erzwingen]]></item>
                <item name="wcf.acp.group.requireMultifactor.description"><![CDATA[Benutzer, die Mitglied dieser Benutzergruppe sind, können die Mehrfaktor-Authentifizierung nicht deaktivieren und können besonders geschützte Bereiche erst betreten, wenn sie die Mehrfaktor-Authentifizierung eingerichtet haben.]]></item>
+               <item name="wcf.acp.group.option.admin.user.canExportGdprData"><![CDATA[Kann persönliche Daten (DSGVO) exportieren]]></item>
+               <item name="wcf.acp.group.option.admin.user.canExportGdprData.description"><![CDATA[Der Export gemäß der europäischen Datenschutzgrundverordnung (DSGVO) enthält detaillierte persönliche Daten des jeweiligen Benutzers. Eine Filterung der im Export enthaltenen Information auf Basis der Zugriffsrechte des Administrators findet <strong>nicht</strong> statt und kann unter Umständen Informationen enthalten, die einem Administrator auf andere Weise nicht zugänglich wären.]]></item>
        </category>
        <category name="wcf.acp.index">
                <item name="wcf.acp.index.credits"><![CDATA[Über WoltLab Suite&trade;]]></item>
index 5f5e01a74820e485767c8d1b65459f324c305bfe..1263759d8c2827df0fc44f8b0e24664fc52d27c5 100644 (file)
@@ -898,6 +898,8 @@ ATTENTION: The messages listed above are greatly shortened. You can view details
                <item name="wcf.acp.group.option.user.signature.attachment.maxCount"><![CDATA[Maximum Attachments]]></item>
                <item name="wcf.acp.group.requireMultifactor"><![CDATA[Require Multi-factor Authentication]]></item>
                <item name="wcf.acp.group.requireMultifactor.description"><![CDATA[Users that are members of this user group may not disable multi-factor authentication. They will also be required to set up multi-factor authentication before they may enter protected areas.]]></item>
+               <item name="wcf.acp.group.option.admin.user.canExportGdprData"><![CDATA[Can export personal data (GDPR)]]></item>
+               <item name="wcf.acp.group.option.admin.user.canExportGdprData.description"><![CDATA[The export according to the European General Data Protection Regulation (GDPR) contains detailed personal data of the respective user. The export <strong>will not</strong> be filtered according to the administrator’s permissions and may contain information that would be inaccessible otherwise.]]></item>
        </category>
        <category name="wcf.acp.index">
                <item name="wcf.acp.index.credits"><![CDATA[About WoltLab Suite&trade;]]></item>