X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FModule%2FDelegation.php;h=3595ff7f302f77db77be2834a0b252ef7563239c;hb=be8251ef0ca39376745dd0ab298208fb41395cce;hp=abcc5679ee20893268306f1ad4f98fcbc3a20d39;hpb=9f19adf8bbf72c054e56cf4ddff962aabeb0bca7;p=friendica.git diff --git a/src/Module/Delegation.php b/src/Module/Delegation.php index abcc5679ee..3595ff7f30 100644 --- a/src/Module/Delegation.php +++ b/src/Module/Delegation.php @@ -1,6 +1,6 @@ getLocalUserId()) { return; } - $uid = local_user(); - $orig_record = DI::app()->user; + $uid = DI::userSession()->getLocalUserId(); + $orig_record = User::getById(DI::app()->getLoggedInUserId()); - if (Session::get('submanage')) { - $user = User::getById(Session::get('submanage')); + if (DI::userSession()->getSubManagedUserId()) { + $user = User::getById(DI::userSession()->getSubManagedUserId()); if (DBA::isResult($user)) { $uid = intval($user['uid']); $orig_record = $user; @@ -98,48 +96,44 @@ class Delegation extends BaseModule return; } - Session::clear(); + DI::session()->clear(); DI::auth()->setForUser(DI::app(), $user, true, true); if ($limited_id) { - Session::set('submanage', $original_id); + DI::userSession()->setSubManagedUserId($original_id); } $ret = []; Hook::callAll('home_init', $ret); - DI::baseUrl()->redirect('profile/' . DI::app()->user['nickname']); - // NOTREACHED + DI::sysmsg()->addNotice($this->t('You are now logged in as %s', $user['username'])); + + DI::baseUrl()->redirect('network'); } - public static function content(array $parameters = []) + protected function content(array $request = []): string { - if (!local_user()) { + if (!DI::userSession()->getLocalUserId()) { throw new ForbiddenException(DI::l10n()->t('Permission denied.')); } - $identities = User::identities(DI::session()->get('submanage', local_user())); + $identities = User::identities(DI::userSession()->getSubManagedUserId() ?: DI::userSession()->getLocalUserId()); - //getting additinal information for each identity + //getting additional information for each identity foreach ($identities as $key => $identity) { - $self = Contact::selectFirst(['id', 'updated'], ['uid' => $identity['uid'], 'self' => true]); - if (!DBA::isResult($self)) { - continue; - } - - $identities[$key]['thumb'] = Contact::getAvatarUrlForId($self['id'], Proxy::SIZE_THUMB, $self['updated']); + $identities[$key]['thumb'] = User::getAvatarUrl($identity, Proxy::SIZE_THUMB); - $identities[$key]['selected'] = ($identity['nickname'] === DI::app()->user['nickname']); + $identities[$key]['selected'] = ($identity['nickname'] === DI::app()->getLoggedInUserNickname()); - $condition = ["`uid` = ? AND `msg` != '' AND NOT (`type` IN (?, ?)) AND NOT `seen`", $identity['uid'], Notification\Type::INTRO, Notification\Type::MAIL]; + $condition = ["`msg` != '' AND NOT (`type` IN (?, ?)) AND NOT `seen`", Notification\Type::INTRO, Notification\Type::MAIL]; $params = ['distinct' => true, 'expression' => 'parent']; - $notifications = DBA::count('notify', $condition, $params); + $notifications = DI::notify()->countForUser($identity['uid'], $condition, $params); $params = ['distinct' => true, 'expression' => 'convid']; $notifications += DBA::count('mail', ['uid' => $identity['uid'], 'seen' => false], $params); - $notifications += DBA::count('intro', ['blocked' => false, 'ignore' => false, 'uid' => $identity['uid']]); + $notifications += DI::intro()->countActiveForUser($identity['uid']); $identities[$key]['notifications'] = $notifications; }