Skip to content
Snippets Groups Projects
Commit 96a057e7 authored by Jan-Hendrik Willms's avatar Jan-Hendrik Willms
Browse files

user admin: allow searching for matriculation number and add matriculation...

user admin: allow searching for matriculation number and add matriculation number to export, fixes #4497

Closes #4497

Merge request studip/studip!3289
parent 12af962c
Branches
No related tags found
No related merge requests found
......@@ -100,11 +100,12 @@ class Admin_UserController extends AuthenticatedController
}
}
$request['username'] = trim($request['username']);
$request['email'] = trim($request['email']);
$request['vorname'] = trim($request['vorname']);
$request['nachname'] = trim($request['nachname']);
$request['inaktiv'] = $inaktiv;
$request['username'] = trim($request['username']);
$request['email'] = trim($request['email']);
$request['matriculation_number'] = trim($request['matriculation_number']);
$request['vorname'] = trim($request['vorname']);
$request['nachname'] = trim($request['nachname']);
$request['inaktiv'] = $inaktiv;
$request['datafields'] = $search_datafields;
$_SESSION['admin']['user'] = $request;
......@@ -135,6 +136,7 @@ class Admin_UserController extends AuthenticatedController
'vorname',
'nachname',
'email',
'matriculation_number',
'inaktiv',
'locked',
'show_only_not_lectures',
......@@ -162,16 +164,16 @@ class Admin_UserController extends AuthenticatedController
PageLayout::postInfo(_('Sie haben keine Suchkriterien ausgewählt!'));
} elseif (count($this->users) < 1 && Request::submitted('search')) {
PageLayout::postInfo(_('Es wurden keine Personen mit diesen Suchkriterien gefunden.'));
} else {
} elseif (!Request::submitted('export')) {
$_SESSION['admin']['user']['results'] = true;
PageLayout::postInfo(sprintf(_('Es wurden %s Personen mit diesen Suchkriterien gefunden.'), count($this->users)));
}
if (is_array($this->users) && Request::submitted('export')) {
$tmpname = md5(uniqid('tmp'));
$captions = ['username',
'vorname',
'nachname',
'email',
'matriculation_number',
'status',
'authentifizierung',
'domänen',
......@@ -189,11 +191,12 @@ class Admin_UserController extends AuthenticatedController
$u['Vorname'],
$u['Nachname'],
$u['Email'],
$u['matriculation_number'],
$u['perms'],
$u['auth_plugin'],
join(';', $userdomains),
implode(';', $userdomains),
$u['mkdate'] ? strftime('%x', $u['mkdate']) : '',
$u->online->last_lifesign ? strftime('%x', $u->online->last_lifesign) : ''
isset($u->online->last_lifesign) ? strftime('%x', $u->online->last_lifesign) : ''
];
foreach ($this->datafields as $datafield) {
$df = new DatafieldEntryModel(
......@@ -207,14 +210,15 @@ class Admin_UserController extends AuthenticatedController
}
return $data;
};
if (array_to_csv(array_map($mapper, $this->users), $GLOBALS['TMP_PATH'] . '/' . $tmpname, $captions)) {
$this->redirect(
FileManager::getDownloadURLForTemporaryFile(
$tmpname,
'nutzer-export.csv'
)
);
}
$this->render_csv(
array_merge(
[$captions],
array_map($mapper, $this->users),
),
'nutzer-export.csv'
);
return;
}
}
......
......@@ -21,16 +21,21 @@ use Studip\Button;
<fieldset>
<legend><?= _('Benutzerverwaltung') ?></legend>
<label class="col-3">
<label class="col-2">
<?= _('Benutzername') ?>
<input name="username" type="text" value="<?= htmlReady($request['username'] ?? '') ?>">
</label>
<label class="col-3">
<label class="col-2">
<?= _('E-Mail') ?>
<input name="email" type="text" value="<?= htmlReady($request['email'] ?? '') ?>">
</label>
<label class="col-2">
<?= _('Matrikelnummer') ?>
<input name="matriculation_number" type="text" value="<?= htmlReady($request['matriculation_number'] ?? '') ?>">
</label>
<label class="col-3">
<?= _('Vorname') ?>
<input name="vorname" type="text" value="<?= htmlReady($request['vorname'] ?? '') ?>">
......
......@@ -431,6 +431,11 @@ class User extends AuthUserMd5 implements Range, PrivacyObject, Studip\Calendar\
$params[':email'] = self::searchParam($attributes['email']);
}
if (!empty($attributes['matriculation_number'])) {
$where[] = "au.`matriculation_number` LIKE :matriculation_number";
$params[':matriculation_number'] = self::searchParam($attributes['matriculation_number']);
}
//permissions
if (!empty($attributes['perm']) && $attributes['perm'] !== 'alle') {
$where[] = "au.`perms` = :perms";
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment