X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FModel%2FGroup.php;h=db9ec331e46f34bede096b71443e5fc0a69f6836;hb=045a0b2a007d869fc141f3f4a7a1761589565fdf;hp=857b972d62b4c81c4f1d02ff64e54b689f0355a8;hpb=8d57c7c94ae5f2ce75c5284e1f7697a151ffacd8;p=friendica.git diff --git a/src/Model/Group.php b/src/Model/Group.php index 857b972d62..db9ec331e4 100644 --- a/src/Model/Group.php +++ b/src/Model/Group.php @@ -11,6 +11,7 @@ use Friendica\Database\DBM; use dba; require_once 'boot.php'; +require_once 'include/dba.php'; require_once 'include/text.php'; /** @@ -47,6 +48,9 @@ class Group extends BaseObject } $return = dba::insert('group', ['uid' => $uid, 'name' => $name]); + if ($return) { + $return = dba::lastInsertId(); + } } return $return; } @@ -54,15 +58,12 @@ class Group extends BaseObject /** * @brief Get a list of group ids a contact belongs to * - * @todo Get rid of $uid, the contact id already bears the information - * - * @param int $uid * @param int $cid * @return array */ - private static function getByContactIdForUserId($uid, $cid) + public static function getIdsByContactId($cid) { - $condition = ['uid' => $uid, 'contact-id' => $cid]; + $condition = ['contact-id' => $cid]; $stmt = dba::select('group_member', ['gid'], $condition); $return = []; @@ -93,13 +94,11 @@ class Group extends BaseObject AND `contact-id` IN (SELECT `contact-id` FROM `group_member` - WHERE `group_member`.`gid` = `group`.`id` - AND `group_member`.`uid` = ?) + WHERE `group_member`.`gid` = `group`.`id`) ) AS `count` FROM `group` WHERE `group`.`uid` = ?;", local_user(), - local_user(), local_user() ); @@ -132,7 +131,7 @@ class Group extends BaseObject /** * @brief Mark a group as deleted * - * @param type $gid + * @param int $gid * @return boolean */ public static function remove($gid) { @@ -140,8 +139,13 @@ class Group extends BaseObject return false; } + $group = dba::select('group', ['uid'], ['gid' => $gid], ['limit' => 1]); + if (!DBM::is_result($group)) { + return false; + } + // remove group from default posting lists - $user = dba::select('user', ['def_gid', 'allow_gid', 'deny_gid'], ['uid' => $uid], ['limit' => 1]); + $user = dba::select('user', ['def_gid', 'allow_gid', 'deny_gid'], ['uid' => $group['uid']], ['limit' => 1]); if (DBM::is_result($user)) { $change = false; @@ -159,7 +163,7 @@ class Group extends BaseObject } if ($change) { - dba::update('user', $user, ['uid' => $uid]); + dba::update('user', $user, ['uid' => $group['uid']]); } } @@ -177,9 +181,9 @@ class Group extends BaseObject * * @deprecated Use Group::remove instead * - * @param type $uid - * @param type $name - * @return type + * @param int $uid + * @param string $name + * @return bool */ public static function removeByName($uid, $name) { $return = false; @@ -367,7 +371,7 @@ class Group extends BaseObject $member_of = array(); if ($cid) { - $member_of = self::getByContactIdForUserId(local_user(), $cid); + $member_of = self::getIdsByContactId($cid); } while ($group = dba::fetch($stmt)) {