X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FModule%2FDelegation.php;h=c14573c8b330c9a76e55384ac6e31d6e44938aa1;hb=6dbbd081795fa1c8fe57db2248ac162efeeada88;hp=d2930317c08ce638aa22b54e10dec3485a33265d;hpb=91ba4bb2aba53d74e5dc6d11dea6ad73b5e4fafe;p=friendica.git diff --git a/src/Module/Delegation.php b/src/Module/Delegation.php index d2930317c0..c14573c8b3 100644 --- a/src/Module/Delegation.php +++ b/src/Module/Delegation.php @@ -1,30 +1,50 @@ . + * + */ namespace Friendica\Module; use Friendica\BaseModule; use Friendica\Core\Hook; -use Friendica\Core\L10n; use Friendica\Core\Renderer; use Friendica\Core\Session; use Friendica\Database\DBA; -use Friendica\Model\Contact; +use Friendica\DI; +use Friendica\Model\Notification; use Friendica\Model\User; use Friendica\Network\HTTPException\ForbiddenException; +use Friendica\Util\Proxy; /** * Switches current user between delegates/parent user */ class Delegation extends BaseModule { - public static function post(array $parameters = []) + protected function post(array $request = []) { if (!local_user()) { return; } $uid = local_user(); - $orig_record = self::getApp()->user; + $orig_record = User::getById(DI::app()->getLoggedInUserId()); if (Session::get('submanage')) { $user = User::getById(Session::get('submanage')); @@ -79,7 +99,7 @@ class Delegation extends BaseModule Session::clear(); - Session::setAuthenticatedForUser(self::getApp(), $user, true, true); + DI::auth()->setForUser(DI::app(), $user, true, true); if ($limited_id) { Session::set('submanage', $original_id); @@ -88,47 +108,44 @@ class Delegation extends BaseModule $ret = []; Hook::callAll('home_init', $ret); - self::getApp()->internalRedirect('profile/' . self::getApp()->user['nickname']); - // NOTREACHED + notice($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()) { - throw new ForbiddenException(L10n::t('Permission denied.')); + throw new ForbiddenException(DI::l10n()->t('Permission denied.')); } - $identities = self::getApp()->identities; + $identities = User::identities(DI::session()->get('submanage', local_user())); //getting additinal 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'] === self::getApp()->user['nickname']); + $identities[$key]['selected'] = ($identity['nickname'] === DI::app()->getLoggedInUserNickname()); - $condition = ["`uid` = ? AND `msg` != '' AND NOT (`type` IN (?, ?)) AND NOT `seen`", $identity['uid'], NOTIFY_INTRO, NOTIFY_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' => L10n::t('Manage Identities and/or Pages'), - '$desc' => L10n::t('Toggle between different identities or community/group pages which share your account details or which you have been granted "manage" permissions'), - '$choose' => L10n::t('Select an identity to manage: '), + '$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, - '$submit' => L10n::t('Submit'), + '$submit' => DI::l10n()->t('Submit'), ]); return $o;