mirror of
https://github.com/OPSnet/Gazelle.git
synced 2026-01-16 18:04:34 -05:00
49 lines
1.6 KiB
PHP
49 lines
1.6 KiB
PHP
<?php
|
|
/** @phpstan-var \Gazelle\User $Viewer */
|
|
/** @phpstan-var \Twig\Environment $Twig */
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace Gazelle;
|
|
|
|
$userMan = new Manager\User();
|
|
|
|
$user = $userMan->findById(($_REQUEST['id'] ?? '') === 'me' ? $Viewer->id : (int)($_REQUEST['id'] ?? 0));
|
|
if (is_null($user)) {
|
|
Error404::error();
|
|
}
|
|
if ($user->id !== $Viewer->id && !$Viewer->permitted('users_edit_profiles')) {
|
|
Error403::error();
|
|
}
|
|
|
|
$donor = new User\Donor($user);
|
|
$profile = [
|
|
'title' => $user->profileTitle(),
|
|
'info' => new Util\Textarea('info', $user->profileInfo(), 42, 8),
|
|
];
|
|
foreach (range(1, 4) as $level) {
|
|
if ($donor->profileInfo($level) !== false) {
|
|
$profile[$level] = [
|
|
'title' => $donor->profileTitle($level),
|
|
'info' => new Util\Textarea("profile_info_$level", $donor->profileInfo($level) ?? '', 42, 8),
|
|
];
|
|
}
|
|
}
|
|
$navList = new Manager\UserNavigation()->fullList();
|
|
$notifier = new User\Notification($user);
|
|
|
|
echo $Twig->render('user/setting.twig', [
|
|
'donor' => $donor,
|
|
'lastfm_username' => new Util\LastFM()->username($user),
|
|
'nav_items' => $navList,
|
|
'nav_items_user' => $user->navigationList(),
|
|
'notify_config' => $notifier->config(),
|
|
'profile' => $profile,
|
|
'push_topic' => $notifier->pushToken(),
|
|
'release_order' => $user->releaseOrder(new ReleaseType()->extendedList()),
|
|
'stylesheet' => new User\Stylesheet($user),
|
|
'stylesheets' => new Manager\Stylesheet()->list(),
|
|
'user' => $user,
|
|
'viewer' => $Viewer,
|
|
]);
|