From 0fe45573d21b5110a46de7b6dc60cbcec3f99de7 Mon Sep 17 00:00:00 2001 From: Jan-Hendrik Willms <tleilax+studip@gmail.com> Date: Thu, 4 Nov 2021 13:25:45 +0000 Subject: [PATCH] fixes #389 --- app/controllers/consultation/admin.php | 30 ++++++++++++++++++++--- lib/models/User.class.php | 1 + lib/navigation/ConsultationNavigation.php | 1 + 3 files changed, 28 insertions(+), 4 deletions(-) diff --git a/app/controllers/consultation/admin.php b/app/controllers/consultation/admin.php index 5ff0e3781de..12c77a7edb9 100644 --- a/app/controllers/consultation/admin.php +++ b/app/controllers/consultation/admin.php @@ -26,6 +26,21 @@ class Consultation_AdminController extends ConsultationController $this->range_config = $this->range->getConfiguration(); $this->setupSidebar($action, $this->range_config); + + // Show information about which user is edited when a deputy edits + if ($this->range instanceof User && Deputy::isDeputy($GLOBALS['user']->id, $this->range->id, true)) { + $message = sprintf( + _('Daten von: %1$s (%2$s), Status: %3$s'), + htmlReady($this->range->getFullName()), + htmlReady($this->range->username), + htmlReady($this->range->perms) + ); + PageLayout::postMessage( + MessageBox::info($message) + , 'settings-user-anncouncement' + ); + + } } private function groupSlots(array $slots) @@ -442,7 +457,7 @@ class Consultation_AdminController extends ConsultationController { if ($what === 'messages') { // TODO: Applicable everywhere? - $GLOBALS['user']->cfg->store( + $this->getUserConfig()->store( 'CONSULTATION_SEND_MESSAGES', (bool) $state ); @@ -453,7 +468,7 @@ class Consultation_AdminController extends ConsultationController (bool) $state ); } elseif ($what === 'grouped') { - $GLOBALS['user']->cfg->store( + $this->getUserConfig()->store( 'CONSULTATION_SHOW_GROUPED', (bool) $state ); @@ -733,7 +748,7 @@ class Consultation_AdminController extends ConsultationController $options = $sidebar->addWidget(new OptionsWidget()); $options->addCheckbox( _('Benachrichtungen über Buchungen'), - $GLOBALS['user']->cfg->CONSULTATION_SEND_MESSAGES, + $this->getUserConfig()->getValue('CONSULTATION_SEND_MESSAGES'), $this->toggleURL('messages/1', $action === 'expired'), $this->toggleURL('messages/0', $action === 'expired') ); @@ -745,7 +760,7 @@ class Consultation_AdminController extends ConsultationController ); $options->addCheckbox( _('Termine gruppiert anzeigen'), - $GLOBALS['user']->cfg->CONSULTATION_SHOW_GROUPED, + $this->getUserConfig()->getValue('CONSULTATION_SHOW_GROUPED'), $this->toggleURL('grouped/1', $action === 'expired'), $this->toggleURL('grouped/0', $action === 'expired') ); @@ -774,4 +789,11 @@ class Consultation_AdminController extends ConsultationController Request::get("{$index}-time") ])); } + + private function getUserConfig(): RangeConfig + { + return $this->range instanceof User + ? $this->range->getConfiguration() + : $GLOBALS['user']->cfg; + } } diff --git a/lib/models/User.class.php b/lib/models/User.class.php index 744ef0618e4..3212b70f7f4 100644 --- a/lib/models/User.class.php +++ b/lib/models/User.class.php @@ -1413,6 +1413,7 @@ class User extends AuthUserMd5 implements Range, PrivacyObject $user_id = $GLOBALS['user']->id; } return $user_id === $this->user_id + || Deputy::isDeputy($user_id, $this->user_id, true) || self::find($user_id)->perms === 'root'; } diff --git a/lib/navigation/ConsultationNavigation.php b/lib/navigation/ConsultationNavigation.php index f205882fb93..73aaf5497f5 100644 --- a/lib/navigation/ConsultationNavigation.php +++ b/lib/navigation/ConsultationNavigation.php @@ -1,6 +1,7 @@ <?php class ConsultationNavigation extends Navigation { + /** @var Range */ protected $range; public function __construct(Range $range) -- GitLab