diff --git a/app/controllers/consultation/admin.php b/app/controllers/consultation/admin.php index 5ff0e3781def9c02a606b083c59720d9ebeb53bf..12c77a7edb98d2dbb52d060a3b42479266ff55c7 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 744ef0618e4b898c8979ed59196b3137df8cfa25..3212b70f7f4b6fcdb2595e015ef56a5fe731688f 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 f205882fb93a98b4ad27e9ea376d3354f61c9a48..73aaf5497f597ea816be8b5a6e90c82e60eb975e 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)