Add explicit parameter to IHandleUserSession->setvisitorContacts

- Convert some remaining $_SESSION references to object calls
- Address part of https://github.com/friendica/friendica/issues/12486#issuecomment-1428489772
This commit is contained in:
Hypolite Petovan 2023-03-26 19:00:48 -04:00
parent 2fdf39e8b8
commit b268fa60e7
4 changed files with 18 additions and 12 deletions

View File

@ -109,6 +109,8 @@ interface IHandleUserSessions extends IHandleSessions
/** /**
* Set the session variable that contains the contact IDs for the visitor's contact URL * Set the session variable that contains the contact IDs for the visitor's contact URL
*
* @param string $my_url
*/ */
public function setVisitorsContacts(); public function setVisitorsContacts(string $my_url);
} }

View File

@ -140,9 +140,9 @@ class UserSession implements IHandleUserSessions
} }
/** {@inheritDoc} */ /** {@inheritDoc} */
public function setVisitorsContacts() public function setVisitorsContacts(string $my_url)
{ {
$this->session->set('remote', Contact::getVisitorByUrl($this->session->get('my_url'))); $this->session->set('remote', Contact::getVisitorByUrl($my_url));
} }
/** {@inheritDoc} */ /** {@inheritDoc} */

View File

@ -795,14 +795,16 @@ class Profile
$visitor = Contact::getById($cid); $visitor = Contact::getById($cid);
// Authenticate the visitor. // Authenticate the visitor.
$_SESSION['authenticated'] = 1; DI::userSession()->setMultiple([
$_SESSION['visitor_id'] = $visitor['id']; 'authenticated' => 1,
$_SESSION['visitor_handle'] = $visitor['addr']; 'visitor_id' => $visitor['id'],
$_SESSION['visitor_home'] = $visitor['url']; 'visitor_handle' => $visitor['addr'],
$_SESSION['my_url'] = $visitor['url']; 'visitor_home' => $visitor['url'],
$_SESSION['remote_comment'] = $visitor['subscribe']; 'my_url' => $visitor['url'],
'remote_comment' => $visitor['subscribe'],
]);
DI::userSession()->setVisitorsContacts(); DI::userSession()->setVisitorsContacts($visitor['url']);
$a->setContactId($visitor['id']); $a->setContactId($visitor['id']);

View File

@ -323,19 +323,21 @@ class Authentication
*/ */
public function setForUser(App $a, array $user_record, bool $login_initial = false, bool $interactive = false, bool $login_refresh = false) public function setForUser(App $a, array $user_record, bool $login_initial = false, bool $interactive = false, bool $login_refresh = false)
{ {
$my_url = $this->baseUrl . '/profile/' . $user_record['nickname'];
$this->session->setMultiple([ $this->session->setMultiple([
'uid' => $user_record['uid'], 'uid' => $user_record['uid'],
'theme' => $user_record['theme'], 'theme' => $user_record['theme'],
'mobile-theme' => $this->pConfig->get($user_record['uid'], 'system', 'mobile_theme'), 'mobile-theme' => $this->pConfig->get($user_record['uid'], 'system', 'mobile_theme'),
'authenticated' => 1, 'authenticated' => 1,
'page_flags' => $user_record['page-flags'], 'page_flags' => $user_record['page-flags'],
'my_url' => $this->baseUrl . '/profile/' . $user_record['nickname'], 'my_url' => $my_url,
'my_address' => $user_record['nickname'] . '@' . substr($this->baseUrl, strpos($this->baseUrl, '://') + 3), 'my_address' => $user_record['nickname'] . '@' . substr($this->baseUrl, strpos($this->baseUrl, '://') + 3),
'addr' => $this->remoteAddress, 'addr' => $this->remoteAddress,
'nickname' => $user_record['nickname'], 'nickname' => $user_record['nickname'],
]); ]);
$this->session->setVisitorsContacts(); $this->session->setVisitorsContacts($my_url);
$member_since = strtotime($user_record['register_date']); $member_since = strtotime($user_record['register_date']);
$this->session->set('new_member', time() < ($member_since + (60 * 60 * 24 * 14))); $this->session->set('new_member', time() < ($member_since + (60 * 60 * 24 * 14)));