]> git.mxchange.org Git - friendica.git/blobdiff - src/Module/Contact.php
We now store the violation as well
[friendica.git] / src / Module / Contact.php
index 25ced78305324bd29fa1560317aa6a091a064aa3..e8c9d2241a43a0577c7da637cbcb7dfa20a2c9a9 100644 (file)
@@ -28,7 +28,6 @@ use Friendica\Content\Pager;
 use Friendica\Content\Widget;
 use Friendica\Core\Protocol;
 use Friendica\Core\Renderer;
-use Friendica\Core\Session;
 use Friendica\Core\Theme;
 use Friendica\Core\Worker;
 use Friendica\Database\DBA;
@@ -36,6 +35,7 @@ use Friendica\DI;
 use Friendica\Model;
 use Friendica\Model\User;
 use Friendica\Module\Security\Login;
+use Friendica\Network\HTTPException\InternalServerErrorException;
 use Friendica\Network\HTTPException\NotFoundException;
 
 /**
@@ -60,12 +60,12 @@ class Contact extends BaseModule
 
                self::checkFormSecurityTokenRedirectOnError($redirectUrl, 'contact_batch_actions');
 
-               $orig_records = Model\Contact::selectToArray(['id', 'uid'], ['id' => $_POST['contact_batch'], 'uid' => [0, Session::getLocalUser()], 'self' => false, 'deleted' => false]);
+               $orig_records = Model\Contact::selectToArray(['id', 'uid'], ['id' => $_POST['contact_batch'], 'uid' => [0, DI::userSession()->getLocalUserId()], 'self' => false, 'deleted' => false]);
 
                $count_actions = 0;
                foreach ($orig_records as $orig_record) {
-                       $cdata = Model\Contact::getPublicAndUserContactID($orig_record['id'], Session::getLocalUser());
-                       if (empty($cdata) || Session::getPublicContact() === $cdata['public']) {
+                       $cdata = Model\Contact::getPublicAndUserContactID($orig_record['id'], DI::userSession()->getLocalUserId());
+                       if (empty($cdata) || DI::userSession()->getPublicContactId() === $cdata['public']) {
                                // No action available on your own contact
                                continue;
                        }
@@ -76,7 +76,7 @@ class Contact extends BaseModule
                        }
 
                        if (!empty($_POST['contacts_batch_block'])) {
-                               self::toggleBlockContact($cdata['public'], Session::getLocalUser());
+                               self::toggleBlockContact($cdata['public'], DI::userSession()->getLocalUserId());
                                $count_actions++;
                        }
 
@@ -94,7 +94,7 @@ class Contact extends BaseModule
 
        protected function post(array $request = [])
        {
-               if (!Session::getLocalUser()) {
+               if (!DI::userSession()->getLocalUserId()) {
                        return;
                }
 
@@ -114,7 +114,7 @@ class Contact extends BaseModule
         */
        public static function updateContactFromPoll(int $contact_id)
        {
-               $contact = DBA::selectFirst('contact', ['uid', 'url', 'network'], ['id' => $contact_id, 'uid' => Session::getLocalUser(), 'deleted' => false]);
+               $contact = DBA::selectFirst('contact', ['uid', 'url', 'network'], ['id' => $contact_id, 'uid' => DI::userSession()->getLocalUserId(), 'deleted' => false]);
                if (!DBA::isResult($contact)) {
                        return;
                }
@@ -154,13 +154,13 @@ class Contact extends BaseModule
         */
        private static function toggleIgnoreContact(int $contact_id)
        {
-               $ignored = !Model\Contact\User::isIgnored($contact_id, Session::getLocalUser());
-               Model\Contact\User::setIgnored($contact_id, Session::getLocalUser(), $ignored);
+               $ignored = !Model\Contact\User::isIgnored($contact_id, DI::userSession()->getLocalUserId());
+               Model\Contact\User::setIgnored($contact_id, DI::userSession()->getLocalUserId(), $ignored);
        }
 
        protected function content(array $request = []): string
        {
-               if (!Session::getLocalUser()) {
+               if (!DI::userSession()->getLocalUserId()) {
                        return Login::form($_SERVER['REQUEST_URI']);
                }
 
@@ -192,7 +192,7 @@ class Contact extends BaseModule
                $rel_widget = Widget::contactRels($_SERVER['REQUEST_URI'], $rel);
                $groups_widget = Widget::groups($_SERVER['REQUEST_URI'], $group);
 
-               DI::page()['aside'] .= $vcard_widget . $findpeople_widget . $follow_widget . $account_widget . $groups_widget . $networks_widget . $rel_widget;
+               DI::page()['aside'] .= $vcard_widget . $findpeople_widget . $follow_widget . $rel_widget . $groups_widget . $networks_widget . $account_widget;
 
                $tpl = Renderer::getMarkupTemplate('contacts-head.tpl');
                DI::page()['htmlhead'] .= Renderer::replaceMacros($tpl, [
@@ -204,7 +204,7 @@ class Contact extends BaseModule
 
                $_SESSION['return_path'] = DI::args()->getQueryString();
 
-               $sql_values = [Session::getLocalUser()];
+               $sql_values = [DI::userSession()->getLocalUserId()];
 
                // @TODO: Replace with parameter from router
                $type = DI::args()->getArgv()[1] ?? '';
@@ -230,7 +230,7 @@ class Contact extends BaseModule
                                $sql_extra = " AND `pending` AND NOT `archive` AND NOT `failed` AND ((`rel` = ?)
                                        OR `id` IN (SELECT `contact-id` FROM `intro` WHERE `intro`.`uid` = ? AND NOT `ignore`))";
                                $sql_values[] = Model\Contact::SHARING;
-                               $sql_values[] = Session::getLocalUser();
+                               $sql_values[] = DI::userSession()->getLocalUserId();
                                break;
                        default:
                                $sql_extra = " AND NOT `archive` AND NOT `blocked` AND NOT `pending`";
@@ -299,8 +299,8 @@ class Contact extends BaseModule
                $stmt = DBA::select('contact', [], $condition, ['order' => ['name'], 'limit' => [$pager->getStart(), $pager->getItemsPerPage()]]);
 
                while ($contact = DBA::fetch($stmt)) {
-                       $contact['blocked'] = Model\Contact\User::isBlocked($contact['id'], Session::getLocalUser());
-                       $contact['readonly'] = Model\Contact\User::isIgnored($contact['id'], Session::getLocalUser());
+                       $contact['blocked'] = Model\Contact\User::isBlocked($contact['id'], DI::userSession()->getLocalUserId());
+                       $contact['readonly'] = Model\Contact\User::isIgnored($contact['id'], DI::userSession()->getLocalUserId());
                        $contacts[] = self::getContactTemplateVars($contact);
                }
                DBA::close($stmt);
@@ -424,7 +424,7 @@ class Contact extends BaseModule
        public static function getTabsHTML(array $contact, int $active_tab)
        {
                $cid = $pcid = $contact['id'];
-               $data = Model\Contact::getPublicAndUserContactID($contact['id'], Session::getLocalUser());
+               $data = Model\Contact::getPublicAndUserContactID($contact['id'], DI::userSession()->getLocalUserId());
                if (!empty($data['user']) && ($contact['id'] == $data['public'])) {
                        $cid = $data['user'];
                } elseif (!empty($data['public'])) {
@@ -495,21 +495,23 @@ class Contact extends BaseModule
         *
         * @param array $contact Contact array
         * @return array Template fields
+        * @throws InternalServerErrorException
+        * @throws \ImagickException
         */
-       public static function getContactTemplateVars(array $contact)
+       public static function getContactTemplateVars(array $contact): array
        {
                $alt_text = '';
 
-               if (!empty($contact['url']) && isset($contact['uid']) && ($contact['uid'] == 0) && Session::getLocalUser()) {
-                       $personal = Model\Contact::getByURL($contact['url'], false, ['uid', 'rel', 'self'], Session::getLocalUser());
+               if (!empty($contact['url']) && isset($contact['uid']) && ($contact['uid'] == 0) && DI::userSession()->getLocalUserId()) {
+                       $personal = Model\Contact::getByURL($contact['url'], false, ['uid', 'rel', 'self'], DI::userSession()->getLocalUserId());
                        if (!empty($personal)) {
-                               $contact['uid'] = $personal['uid'];
-                               $contact['rel'] = $personal['rel'];
+                               $contact['uid']  = $personal['uid'];
+                               $contact['rel']  = $personal['rel'];
                                $contact['self'] = $personal['self'];
                        }
                }
 
-               if (!empty($contact['uid']) && !empty($contact['rel']) && Session::getLocalUser() == $contact['uid']) {
+               if (!empty($contact['uid']) && !empty($contact['rel']) && DI::userSession()->getLocalUserId() == $contact['uid']) {
                        switch ($contact['rel']) {
                                case Model\Contact::FRIEND:
                                        $alt_text = DI::l10n()->t('Mutual Friendship');
@@ -530,7 +532,7 @@ class Contact extends BaseModule
 
                $url = Model\Contact::magicLinkByContact($contact);
 
-               if (strpos($url, 'redir/') === 0) {
+               if (strpos($url, 'contact/redir/') === 0) {
                        $sparkle = ' class="sparkle" ';
                } else {
                        $sparkle = '';
@@ -546,15 +548,15 @@ class Contact extends BaseModule
 
                if ($contact['self']) {
                        $alt_text = DI::l10n()->t('This is you');
-                       $url = $contact['url'];
-                       $sparkle = '';
+                       $url      = $contact['url'];
+                       $sparkle  = '';
                }
 
                return [
                        'id'           => $contact['id'],
                        'url'          => $url,
                        'img_hover'    => DI::l10n()->t('Visit %s\'s profile [%s]', $contact['name'], $contact['url']),
-                       'photo_menu'   => Model\Contact::photoMenu($contact),
+                       'photo_menu'   => Model\Contact::photoMenu($contact, DI::userSession()->getLocalUserId()),
                        'thumb'        => Model\Contact::getThumb($contact, true),
                        'alt_text'     => $alt_text,
                        'name'         => $contact['name'],