X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FModule%2FDelegation.php;h=3595ff7f302f77db77be2834a0b252ef7563239c;hb=be8251ef0ca39376745dd0ab298208fb41395cce;hp=b6451c85af2d2822bec11cc3288fe636f9b94e0b;hpb=2c56d2f3360c08e312e5c167261af8e5d4b87af4;p=friendica.git diff --git a/src/Module/Delegation.php b/src/Module/Delegation.php index b6451c85af..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; @@ -97,54 +96,51 @@ 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; } $o = Renderer::replaceMacros(Renderer::getMarkupTemplate('delegation.tpl'), [ - '$title' => DI::l10n()->t('Manage Identities and/or Pages'), + '$title' => DI::l10n()->t('Switch between your accounts'), + '$settings_label' => DI::l10n()->t('Manage your accounts'), '$desc' => DI::l10n()->t('Toggle between different identities or community/group pages which share your account details or which you have been granted "manage" permissions'), '$choose' => DI::l10n()->t('Select an identity to manage: '), '$identities' => $identities,