Browse Source

Centralize owner data fetch

pull/4095/head
Hypolite Petovan 4 years ago
parent
commit
df02238659
  1. 31
      src/Model/User.php
  2. 22
      src/Protocol/Diaspora.php
  3. 14
      src/Worker/Delivery.php

31
src/Model/User.php

@ -33,6 +33,37 @@ require_once 'include/text.php';
*/
class User
{
/**
* @brief Get owner data by user id
*
* @param int $uid
* @return boolean|array
*/
public static function getOwnerDataById($uid) {
$r = dba::p("SELECT
`contact`.*,
`user`.`prvkey` AS `uprvkey`,
`user`.`timezone`,
`user`.`nickname`,
`user`.`sprvkey`,
`user`.`spubkey`,
`user`.`page-flags`,
`user`.`account-type`,
`user`.`prvnets`
FROM `contact`
INNER JOIN `user`
ON `user`.`uid` = `contact`.`uid`
WHERE `contact`.`uid` = ?
AND `contact`.`self` = 1
LIMIT 1",
$uid
);
if (!DBM::is_result($r)) {
return false;
}
return $r[0];
}
/**
* @brief Returns the default group for a given user and network
*

22
src/Protocol/Diaspora.php

@ -4051,28 +4051,10 @@ class Diaspora
return;
}
$r = dba::p("SELECT
`contact`.*,
`user`.`prvkey` AS `uprvkey`,
`user`.`timezone`,
`user`.`nickname`,
`user`.`sprvkey`,
`user`.`spubkey`,
`user`.`page-flags`,
`user`.`account-type`,
`user`.`prvnets`
FROM `contact`
INNER JOIN `user`
ON `user`.`uid` = `contact`.`uid`
WHERE `contact`.`uid` = ?
AND `contact`.`self` = 1
LIMIT 1",
$uid
);
if (!DBM::is_result($r)) {
$owner = User::getOwnerDataById($uid);
if (!$owner) {
return;
}
$owner = $r[0];
if (!$recips) {
$recips = q(

14
src/Worker/Delivery.php

@ -10,6 +10,7 @@ use Friendica\Core\System;
use Friendica\Core\Config;
use Friendica\Database\DBM;
use Friendica\Model\Contact;
use Friendica\Model\User;
use Friendica\Protocol\Diaspora;
use Friendica\Protocol\DFRN;
use Friendica\Protocol\Email;
@ -140,20 +141,11 @@ class Delivery {
}
}
$r = q("SELECT `contact`.*, `user`.`prvkey` AS `uprvkey`,
`user`.`timezone`, `user`.`nickname`, `user`.`sprvkey`, `user`.`spubkey`,
`user`.`page-flags`, `user`.`account-type`, `user`.`prvnets`
FROM `contact` INNER JOIN `user` ON `user`.`uid` = `contact`.`uid`
WHERE `contact`.`uid` = %d AND `contact`.`self` = 1 LIMIT 1",
intval($uid)
);
if (!DBM::is_result($r)) {
$owner = User::getOwnerDataById($uid);
if (!$owner) {
return;
}
$owner = $r[0];
$walltowall = (($top_level && ($owner['id'] != $items[0]['contact-id'])) ? true : false);
$public_message = true;

Loading…
Cancel
Save