diff --git a/boot.php b/boot.php index 79cf3e5b3..695f9e85c 100644 --- a/boot.php +++ b/boot.php @@ -43,7 +43,7 @@ define('FRIENDICA_PLATFORM', 'Friendica'); define('FRIENDICA_CODENAME', 'Asparagus'); define('FRIENDICA_VERSION', '3.6-dev'); define('DFRN_PROTOCOL_VERSION', '2.23'); -define('DB_UPDATE_VERSION', 1236); +define('DB_UPDATE_VERSION', 1237); define('NEW_UPDATE_ROUTINE_VERSION', 1170); /** diff --git a/include/acl_selectors.php b/include/acl_selectors.php index d1b791136..7a488ca40 100644 --- a/include/acl_selectors.php +++ b/include/acl_selectors.php @@ -529,7 +529,7 @@ function acl_lookup(App $a, $out_type = 'json') { // This can be done when we can delete cache entries via wildcard $r = q("SELECT `group`.`id`, `group`.`name`, GROUP_CONCAT(DISTINCT `group_member`.`contact-id` SEPARATOR ',') AS uids FROM `group` - INNER JOIN `group_member` ON `group_member`.`gid`=`group`.`id` AND `group_member`.`uid` = `group`.`uid` + INNER JOIN `group_member` ON `group_member`.`gid`=`group`.`id` WHERE NOT `group`.`deleted` AND `group`.`uid` = %d $sql_extra GROUP BY `group`.`name`, `group`.`id` diff --git a/include/uimport.php b/include/uimport.php index e3c2f4e6c..d9b040597 100644 --- a/include/uimport.php +++ b/include/uimport.php @@ -232,8 +232,6 @@ function import_account(App $a, $file) { } foreach ($account['group_member'] as &$group_member) { - $group_member['uid'] = $newuid; - $import = 0; foreach ($account['group'] as $group) { if ($group['id'] == $group_member['gid'] && isset($group['newid'])) { diff --git a/mod/uexport.php b/mod/uexport.php index 5a897f4ab..396082508 100644 --- a/mod/uexport.php +++ b/mod/uexport.php @@ -109,7 +109,7 @@ function uexport_account($a) { ); $group_member = _uexport_multirow( - sprintf("SELECT * FROM `group_member` WHERE uid = %d", intval(local_user())) + sprintf("SELECT `group_member`.`gid`, `group_member`.`contact-id` FROM `group_member` INNER JOIN `group` ON `group`.`id` = `group_member`.`gid` WHERE `group`.`uid` = %d", intval(local_user())) ); $output = array( diff --git a/src/Database/DBStructure.php b/src/Database/DBStructure.php index c118d862f..7a6c3eaa7 100644 --- a/src/Database/DBStructure.php +++ b/src/Database/DBStructure.php @@ -990,15 +990,13 @@ class DBStructure { $database["group_member"] = array( "fields" => array( "id" => array("type" => "int(10) unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1"), - "uid" => array("type" => "int(10) unsigned", "not null" => "1", "default" => "0", "relation" => array("user" => "uid")), "gid" => array("type" => "int(10) unsigned", "not null" => "1", "default" => "0", "relation" => array("group" => "id")), "contact-id" => array("type" => "int(10) unsigned", "not null" => "1", "default" => "0", "relation" => array("contact" => "id")), ), "indexes" => array( "PRIMARY" => array("id"), "contactid" => array("contact-id"), - "gid_contactid" => array("gid", "contact-id"), - "uid_gid_contactid" => array("UNIQUE", "uid", "gid", "contact-id"), + "gid_contactid" => array("UNIQUE", "gid", "contact-id"), ) ); $database["gserver"] = array( diff --git a/src/Model/Contact.php b/src/Model/Contact.php index 2e1bc01c7..2203b6216 100644 --- a/src/Model/Contact.php +++ b/src/Model/Contact.php @@ -42,7 +42,7 @@ class Contact extends BaseObject INNER JOIN `group_member` ON `contact`.`id` = `group_member`.`contact-id` WHERE `gid` = ? - AND `group_member`.`uid` = ? + AND `contact`.`uid` = ? AND NOT `contact`.`self` AND NOT `contact`.`blocked` AND NOT `contact`.`pending` @@ -73,7 +73,7 @@ class Contact extends BaseObject INNER JOIN `group_member` ON `contact`.`id` = `group_member`.`contact-id` WHERE `gid` = ? - AND `group_member`.`uid` = ? + AND `contact`.`uid` = ? AND `contact`.`network` = ? AND `contact`.`notify` != ""', $gid, @@ -605,7 +605,9 @@ class Contact extends BaseObject AND NOT `pending` AND `id` NOT IN ( SELECT DISTINCT(`contact-id`) - FROM `group_member` WHERE `uid` = %d + FROM `group_member` + INNER JOIN `group` ON `group`.`id` = `group_member`.`gid` + WHERE `group`.`uid` = %d ) LIMIT %d, %d", intval($uid), intval($uid), intval($start), intval($count) ); diff --git a/src/Model/Group.php b/src/Model/Group.php index cdc2a821d..542827151 100644 --- a/src/Model/Group.php +++ b/src/Model/Group.php @@ -96,8 +96,7 @@ 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` = ?;", diff --git a/update.php b/update.php index 6bb99af57..9701e9e39 100644 --- a/update.php +++ b/update.php @@ -1,6 +1,6 @@