Add new ACL::getContactListByUserId and ACL::getGroupListByUserId methods

This commit is contained in:
Hypolite Petovan 2019-11-28 12:33:00 -05:00
parent 440d3eb9c4
commit 11da7f4095

View File

@ -13,6 +13,7 @@ use Friendica\Model\Contact;
use Friendica\Model\GContact;
use Friendica\Core\Session;
use Friendica\Util\Network;
use Friendica\Model\Group;
/**
* Handle ACL management and display
@ -251,6 +252,63 @@ class ACL extends BaseObject
];
}
/**
* Returns the ACL list of contacts for a given user id
*
* @param int $user_id
* @return array
* @throws \Exception
*/
public static function getContactListByUserId(int $user_id)
{
$acl_contacts = Contact::selectToArray(
['id', 'name', 'addr', 'micro'],
['uid' => $user_id, 'pending' => false, 'rel' => [Contact::FOLLOWER, Contact::FRIEND]]
);
array_walk($acl_contacts, function (&$value) {
$value['type'] = 'contact';
});
return $acl_contacts;
}
/**
* Returns the ACL list of groups (including meta-groups) for a given user id
*
* @param int $user_id
* @return array
*/
public static function getGroupListByUserId(int $user_id)
{
$acl_groups = [
[
'id' => Group::FOLLOWERS,
'name' => L10n::t('Followers'),
'addr' => '',
'micro' => 'images/twopeople.png',
'type' => 'group',
],
[
'id' => Group::MUTUALS,
'name' => L10n::t('Mutuals'),
'addr' => '',
'micro' => 'images/twopeople.png',
'type' => 'group',
]
];
foreach (Group::getByUserId($user_id) as $group) {
$acl_groups[] = [
'id' => $group['id'],
'name' => $group['name'],
'addr' => '',
'micro' => 'images/twopeople.png',
'type' => 'group',
];
}
return $acl_groups;
}
/**
* Return the full jot ACL selector HTML
*