From 654d8fc143fa1b4749120b3071c40ae9f52b09d9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andr=C3=A9=20Noack?= <noack@data-quest.de>
Date: Wed, 26 Oct 2022 10:16:26 +0000
Subject: [PATCH] Resolve TIC #1678 "Export in der Benutzerverwaltung soll auch
 Datenfelder enthalten"

Closes #1678

Merge request studip/studip!1082
---
 app/controllers/admin/user.php | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

diff --git a/app/controllers/admin/user.php b/app/controllers/admin/user.php
index cf1c80665d7..72a42b4c57c 100644
--- a/app/controllers/admin/user.php
+++ b/app/controllers/admin/user.php
@@ -172,11 +172,14 @@ class Admin_UserController extends AuthenticatedController
                              'domänen',
                              'registriert seit',
                              'inaktiv seit'];
+                foreach ($this->datafields as $datafield) {
+                    $captions[] = $datafield->name;
+                }
                 $mapper   = function ($u) {
                     $userdomains = array_map(function ($ud) {
                         return $ud->name;
                     }, UserDomain::getUserDomainsForUser($u->id));
-                    return [
+                    $data = [
                         $u['username'],
                         $u['Vorname'],
                         $u['Nachname'],
@@ -187,6 +190,17 @@ class Admin_UserController extends AuthenticatedController
                         $u['mkdate'] ? strftime('%x', $u['mkdate']) : '',
                         $u->online->last_lifesign ? strftime('%x', $u->online->last_lifesign) : ''
                     ];
+                    foreach ($this->datafields as $datafield) {
+                        $df = new DatafieldEntryModel(
+                            [
+                                $datafield->id,
+                                $u['user_id'],
+                                '',
+                                ''
+                            ]);
+                        $data[] = $df->getTypedDatafield()->getDisplayValue(false);
+                    }
+                    return $data;
                 };
                 if (array_to_csv(array_map($mapper, $this->users), $GLOBALS['TMP_PATH'] . '/' . $tmpname, $captions)) {
                     $this->redirect(
-- 
GitLab