X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FModule%2FDelegation.php;h=8a2b313000bce2db24c0d200ac99d924b44b7822;hb=96d2cddb54f3ea3ead6e43e5ca1f814ed6327987;hp=f68b9db8d5cbd7d73f6cb869ad428885af97ada1;hpb=f4da50063aac4ca2dea0055437bf360f666c741d;p=friendica.git diff --git a/src/Module/Delegation.php b/src/Module/Delegation.php index f68b9db8d5..8a2b313000 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; } } - $identity = intval($_POST['identity'] ?? 0); + $identity = intval($request['identity'] ?? 0); if (!$identity) { return; } @@ -77,16 +76,16 @@ class Delegation extends BaseModule $user = DBA::selectFirst('user', [], ['uid' => $identity, 'parent-uid' => $orig_record['uid']]); // Check if the target user is one of our siblings - if (!DBA::isResult($user) && ($orig_record['parent-uid'] != 0)) { + if (!DBA::isResult($user) && $orig_record['parent-uid']) { $user = DBA::selectFirst('user', [], ['uid' => $identity, 'parent-uid' => $orig_record['parent-uid']]); } // Check if it's our parent or our own user if (!DBA::isResult($user) && ( - $orig_record['parent-uid'] != 0 && $orig_record['parent-uid'] == $identity + $orig_record['parent-uid'] && $orig_record['parent-uid'] === $identity || - $orig_record['uid'] != 0 && $orig_record['uid'] == $identity + $orig_record['uid'] && $orig_record['uid'] === $identity ) ) { $user = User::getById($identity); @@ -97,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 = DI::app()->identities; + $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) { - $thumb = Contact::selectFirst(['thumb'], ['uid' => $identity['uid'], 'self' => true]); - if (!DBA::isResult($thumb)) { - continue; - } - - $identities[$key]['thumb'] = $thumb['thumb']; + $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'], Type::INTRO, 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; }