diff --git a/config/config.default.php b/config/config.default.php
index b066a611..b46cd20b 100644
--- a/config/config.default.php
+++ b/config/config.default.php
@@ -266,9 +266,13 @@ return [
// Whether the mobile number can be shown to other users
'enable_mobile_show' => (bool) env('ENABLE_MOBILE_SHOW', false),
- // Enables prename and lastname
+ // Enables first name and last name
'enable_user_name' => (bool) env('ENABLE_USER_NAME', false),
+ // Show a users first name and last name instead of username
+ 'display_full_name' => env('display_full_name', false)
+ && env('ENABLE_USER_NAME', false),
+
// Enable displaying the pronoun fields
'enable_pronoun' => (bool) env('ENABLE_PRONOUN', true),
diff --git a/includes/controller/shift_entries_controller.php b/includes/controller/shift_entries_controller.php
index b28ff009..ccb0515c 100644
--- a/includes/controller/shift_entries_controller.php
+++ b/includes/controller/shift_entries_controller.php
@@ -108,7 +108,7 @@ function shift_entry_create_controller_admin(Shift $shift, ?AngelType $angeltype
$shiftEntry->save();
ShiftEntry_onCreate($shiftEntry);
- success(sprintf(__('%s has been subscribed to the shift.'), $signup_user->name));
+ success(sprintf(__('%s has been subscribed to the shift.'), $signup_user->displayName));
throw_redirect(shift_link($shift));
}
@@ -116,7 +116,7 @@ function shift_entry_create_controller_admin(Shift $shift, ?AngelType $angeltype
$users = User::query()->orderBy('name')->get();
$users_select = [];
foreach ($users as $user) {
- $users_select[$user->id] = $user->name;
+ $users_select[$user->id] = $user->displayName;
}
$angeltypes_select = $angeltypes->pluck('name', 'id')->toArray();
@@ -157,14 +157,14 @@ function shift_entry_create_controller_supporter(Shift $shift, AngelType $angelt
$shiftEntry->save();
ShiftEntry_onCreate($shiftEntry);
- success(sprintf(__('%s has been subscribed to the shift.'), $signup_user->name));
+ success(sprintf(__('%s has been subscribed to the shift.'), $signup_user->displayName));
throw_redirect(shift_link($shift));
}
$users = $angeltype->userAngelTypes->sortBy('name');
$users_select = [];
foreach ($users as $u) {
- $users_select[$u->id] = $u->name;
+ $users_select[$u->id] = $u->displayName;
}
$room = $shift->room;
diff --git a/includes/controller/user_angeltypes_controller.php b/includes/controller/user_angeltypes_controller.php
index 917769f6..d0ab2499 100644
--- a/includes/controller/user_angeltypes_controller.php
+++ b/includes/controller/user_angeltypes_controller.php
@@ -169,7 +169,7 @@ function user_angeltype_confirm_controller(): array
User_Nick_render($user_source, true),
AngelType_name_render($angeltype, true)
));
- success(sprintf(__('%s confirmed for angeltype %s.'), $user_source->name, $angeltype->name));
+ success(sprintf(__('%s confirmed for angeltype %s.'), $user_source->displayName, $angeltype->name));
user_angeltype_confirm_email($user_source, $angeltype);
@@ -195,7 +195,7 @@ function user_angeltype_confirm_email(User $user, AngelType $angeltype): void
$user,
'notification.angeltype.confirmed',
'emails/angeltype-confirmed',
- ['name' => $angeltype->name, 'angeltype' => $angeltype, 'username' => $user->name]
+ ['name' => $angeltype->name, 'angeltype' => $angeltype, 'username' => $user->displayName]
);
} catch (TransportException $e) {
/** @var LoggerInterface $logger */
@@ -220,7 +220,7 @@ function user_angeltype_add_email(User $user, AngelType $angeltype): void
$user,
'notification.angeltype.added',
'emails/angeltype-added',
- ['name' => $angeltype->name, 'angeltype' => $angeltype, 'username' => $user->name]
+ ['name' => $angeltype->name, 'angeltype' => $angeltype, 'username' => $user->displayName]
);
} catch (TransportException $e) {
/** @var LoggerInterface $logger */
@@ -264,7 +264,7 @@ function user_angeltype_delete_controller(): array
$user_angeltype->delete();
engelsystem_log(sprintf('User %s removed from %s.', User_Nick_render($user_source, true), $angeltype->name));
- success(sprintf(__('User %s removed from %s.'), $user_source->name, $angeltype->name));
+ success(sprintf(__('User %s removed from %s.'), $user_source->displayName, $angeltype->name));
throw_redirect(page_link_to('angeltypes', ['action' => 'view', 'angeltype_id' => $angeltype->id]));
}
@@ -319,7 +319,7 @@ function user_angeltype_update_controller(): array
AngelType_name_render($angeltype, true),
User_Nick_render($user_source, true)
));
- success(sprintf($msg, $angeltype->name, $user_source->name));
+ success(sprintf($msg, $angeltype->name, $user_source->displayName));
throw_redirect(page_link_to('angeltypes', ['action' => 'view', 'angeltype_id' => $angeltype->id]));
}
@@ -367,7 +367,7 @@ function user_angeltype_add_controller(): array
User_Nick_render($user_source, true),
AngelType_name_render($angeltype, true)
));
- success(sprintf(__('User %s added to %s.'), $user_source->name, $angeltype->name));
+ success(sprintf(__('User %s added to %s.'), $user_source->displayName, $angeltype->name));
if ($request->hasPostData('auto_confirm_user')) {
$userAngelType->confirmUser()->associate($user_source);
diff --git a/includes/controller/user_driver_licenses_controller.php b/includes/controller/user_driver_licenses_controller.php
index ed279ac7..d1977656 100644
--- a/includes/controller/user_driver_licenses_controller.php
+++ b/includes/controller/user_driver_licenses_controller.php
@@ -137,7 +137,7 @@ function user_driver_license_edit_controller()
}
return [
- sprintf(__('Edit %s driving license information'), $user_source->name),
+ sprintf(__('Edit %s driving license information'), $user_source->displayName),
UserDriverLicense_edit_view($user_source, $driverLicense),
];
}
diff --git a/includes/controller/users_controller.php b/includes/controller/users_controller.php
index 437d6593..5ed7a7e6 100644
--- a/includes/controller/users_controller.php
+++ b/includes/controller/users_controller.php
@@ -91,7 +91,7 @@ function user_delete_controller()
}
return [
- sprintf(__('Delete %s'), $user_source->name),
+ sprintf(__('Delete %s'), $user_source->displayName),
User_delete_view($user_source),
];
}
@@ -182,7 +182,7 @@ function user_edit_vouchers_controller()
}
return [
- sprintf(__('%s\'s vouchers'), $user_source->name),
+ sprintf(__('%s\'s vouchers'), $user_source->displayName),
User_edit_vouchers_view($user_source),
];
}
@@ -244,7 +244,7 @@ function user_controller()
}
return [
- $user_source->name,
+ $user_source->displayName,
User_view(
$user_source,
auth()->can('admin_user'),
diff --git a/includes/helper/email_helper.php b/includes/helper/email_helper.php
index f3b8826c..fb340107 100644
--- a/includes/helper/email_helper.php
+++ b/includes/helper/email_helper.php
@@ -32,7 +32,7 @@ function engelsystem_email_to_user($recipientUser, $title, $message, $notIfItsMe
$recipientUser->contact->email ?: $recipientUser->email,
$title,
'emails/mail',
- ['username' => $recipientUser->name, 'message' => $message]
+ ['username' => $recipientUser->displayName, 'message' => $message]
);
} catch (Exception $e) {
$status = false;
@@ -48,7 +48,7 @@ function engelsystem_email_to_user($recipientUser, $title, $message, $notIfItsMe
$translator->setLocale($locale);
if (!$status) {
- error(sprintf(__('User %s could not be notified by email due to an error.'), $recipientUser->name));
+ error(sprintf(__('User %s could not be notified by email due to an error.'), $recipientUser->displayName));
engelsystem_log(sprintf('User %s could not be notified by email due to an error.', $recipientUser->name));
}
diff --git a/includes/helper/shift_helper.php b/includes/helper/shift_helper.php
index 9af7481f..e6edb614 100644
--- a/includes/helper/shift_helper.php
+++ b/includes/helper/shift_helper.php
@@ -84,7 +84,7 @@ class Shift
'end' => $end,
'room' => $room,
'freeloaded' => $freeloaded,
- 'username' => $user->name,
+ 'username' => $user->displayName,
]
);
} catch (TransportException $e) {
diff --git a/includes/pages/admin_active.php b/includes/pages/admin_active.php
index 8e387496..4685e76b 100644
--- a/includes/pages/admin_active.php
+++ b/includes/pages/admin_active.php
@@ -339,7 +339,7 @@ function admin_active()
array_merge(
[
'no' => __('No.'),
- 'nick' => __('Nickname'),
+ 'nick' => __('Name'),
],
($goodie_tshirt ? ['shirt_size' => __('Size')] : []),
[
diff --git a/includes/pages/admin_arrive.php b/includes/pages/admin_arrive.php
index a4d79017..31a66707 100644
--- a/includes/pages/admin_arrive.php
+++ b/includes/pages/admin_arrive.php
@@ -185,7 +185,7 @@ function admin_arrive()
form_submit('submit', __('Search')),
], page_link_to('admin_arrive')),
table([
- 'name' => __('Nickname'),
+ 'name' => __('Name'),
'rendered_planned_arrival_date' => __('Planned arrival'),
'arrived' => __('Arrived?'),
'rendered_arrival_date' => __('Arrival date'),
diff --git a/includes/pages/admin_free.php b/includes/pages/admin_free.php
index f698e715..7fd17faa 100644
--- a/includes/pages/admin_free.php
+++ b/includes/pages/admin_free.php
@@ -3,6 +3,7 @@
use Engelsystem\Helpers\Carbon;
use Engelsystem\Models\AngelType;
use Engelsystem\Models\User\User;
+use Illuminate\Database\Eloquent\Collection;
use Illuminate\Database\Query\JoinClause;
/**
@@ -25,6 +26,7 @@ function admin_free()
$search = strip_request_item('search');
}
+ /** @var AngelType[]|Collection $angel_types_source */
$angel_types_source = AngelType::all(['id', 'name']);
$angel_types = [
'' => __('All'),
@@ -121,7 +123,7 @@ function admin_free()
]),
]),
table([
- 'name' => __('Nick'),
+ 'name' => __('Name'),
'shift_state' => __('Next shift'),
'last_shift' => __('Last shift'),
'dect' => __('DECT'),
diff --git a/includes/pages/admin_rooms.php b/includes/pages/admin_rooms.php
new file mode 100644
index 00000000..e69de29b
diff --git a/includes/pages/admin_shifts.php b/includes/pages/admin_shifts.php
index 7fa8299f..c4fc29bc 100644
--- a/includes/pages/admin_shifts.php
+++ b/includes/pages/admin_shifts.php
@@ -10,6 +10,7 @@ use Engelsystem\Models\Shifts\Schedule;
use Engelsystem\Models\Shifts\Shift;
use Engelsystem\Models\Shifts\ShiftType;
use Engelsystem\Models\User\User;
+use Illuminate\Database\Eloquent\Collection;
use Illuminate\Support\Str;
/**
@@ -55,6 +56,7 @@ function admin_shifts()
}
// Load shift types
+ /** @var ShiftType[]|Collection $shifttypes_source */
$shifttypes_source = ShiftType::all();
$shifttypes = [];
foreach ($shifttypes_source as $shifttype) {
diff --git a/includes/pages/guest_login.php b/includes/pages/guest_login.php
index a798f427..9353b4c0 100644
--- a/includes/pages/guest_login.php
+++ b/includes/pages/guest_login.php
@@ -13,6 +13,7 @@ use Engelsystem\Models\User\Settings;
use Engelsystem\Models\User\State;
use Engelsystem\Models\User\User;
use Illuminate\Database\Connection;
+use Illuminate\Database\Eloquent\Collection;
/**
* @return string
@@ -67,6 +68,7 @@ function guest_register()
$selected_angel_types = [];
$planned_arrival_date = null;
+ /** @var AngelType[]|Collection $angel_types_source */
$angel_types_source = AngelType::all();
$angel_types = [];
if (!empty($session->get('oauth2_groups'))) {
diff --git a/includes/view/UserAngelTypes_view.php b/includes/view/UserAngelTypes_view.php
index e6950c7e..e50e1f04 100644
--- a/includes/view/UserAngelTypes_view.php
+++ b/includes/view/UserAngelTypes_view.php
@@ -20,7 +20,7 @@ function UserAngelType_update_view(UserAngelType $user_angeltype, User $user, An
? __('Do you really want to add supporter rights for %s to %s?')
: __('Do you really want to remove supporter rights for %s from %s?'),
$angeltype->name,
- $user->name
+ $user->displayName
), true),
form([
buttons([
@@ -92,7 +92,7 @@ function UserAngelType_confirm_view(UserAngelType $user_angeltype, User $user, A
msg(),
info(sprintf(
__('Do you really want to confirm %s for %s?'),
- $user->name,
+ $user->displayName,
$angeltype->name
), true),
form([
@@ -116,7 +116,7 @@ function UserAngelType_delete_view(UserAngelType $user_angeltype, User $user, An
msg(),
info(sprintf(
__('Do you really want to delete %s from %s?'),
- $user->name,
+ $user->displayName,
$angeltype->name
), true),
form([
@@ -170,7 +170,7 @@ function UserAngelType_join_view($user, AngelType $angeltype)
msg(),
info(sprintf(
__('Do you really want to add %s to %s?'),
- $user->name,
+ $user->displayName,
$angeltype->name
), true),
form([
diff --git a/includes/view/User_view.php b/includes/view/User_view.php
index ad286612..aa6e5b79 100644
--- a/includes/view/User_view.php
+++ b/includes/view/User_view.php
@@ -129,9 +129,11 @@ function Users_view(
'actions' => '' . count($usersList) . '',
];
- $user_table_headers = [
- 'name' => Users_table_header_link('name', __('Nick'), $order_by),
- ];
+ $user_table_headers = [];
+
+ if (!config('display_full_name')) {
+ $user_table_headers['name'] = Users_table_header_link('name', __('Nick'), $order_by);
+ }
if (config('enable_user_name')) {
$user_table_headers['first_name'] = Users_table_header_link('first_name', __('Prename'), $order_by);
$user_table_headers['last_name'] = Users_table_header_link('last_name', __('Name'), $order_by);
@@ -844,11 +846,11 @@ function User_Nick_render($user, $plain = false)
}
if ($plain) {
- return sprintf('%s (%u)', $user->name, $user->id);
+ return sprintf('%s (%u)', $user->displayName, $user->id);
}
return render_profile_link(
- ' ' . htmlspecialchars($user->name) . '',
+ ' ' . htmlspecialchars($user->displayName) . '',
$user->id,
($user->state->arrived ? '' : 'text-muted')
);
diff --git a/resources/views/api/atom.twig b/resources/views/api/atom.twig
index 2fb42e79..43ac6ff5 100644
--- a/resources/views/api/atom.twig
+++ b/resources/views/api/atom.twig
@@ -16,7 +16,7 @@
{{ news.updated_at.format(dateFormat) }}
{{ news.created_at.format(dateFormat) }}
- {{ news.user.name }}
+ {{ news.user.displayName }}
{{ news.text }}
diff --git a/resources/views/api/rss.twig b/resources/views/api/rss.twig
index a2b95daf..feb9ebd8 100644
--- a/resources/views/api/rss.twig
+++ b/resources/views/api/rss.twig
@@ -16,7 +16,7 @@
{{ url('/news/' ~ news.id) }}
{{ uuidBy(news.id, '113115') }}
{{ news.created_at.format(dateFormat) }}
- {{ news.user.name }}
+ {{ news.user.displayName }}
{{ news.text }}
diff --git a/resources/views/layouts/parts/navbar.twig b/resources/views/layouts/parts/navbar.twig
index a5c7ab0a..ae1d9488 100644
--- a/resources/views/layouts/parts/navbar.twig
+++ b/resources/views/layouts/parts/navbar.twig
@@ -74,7 +74,7 @@
- {{ m.angel() }} {{ user.name }}
+ {{ m.angel() }} {{ user.displayName }}