X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FModel%2FPermissionSet.php;h=9138d46b7fedd03972d728b9dd653f38ef2deb5c;hb=a24febb8b656217a7cd88db205007420cb64485e;hp=a5d5ed2b85ecc6f575b982876b430cdb9796661d;hpb=5af9596dde162b1b9819869e3d5129f571a1c503;p=friendica.git diff --git a/src/Model/PermissionSet.php b/src/Model/PermissionSet.php index a5d5ed2b85..9138d46b7f 100644 --- a/src/Model/PermissionSet.php +++ b/src/Model/PermissionSet.php @@ -1,60 +1,78 @@ . + * */ -namespace Friendica\Model; -use Friendica\BaseObject; -use Friendica\Database\DBM; -use dba; +namespace Friendica\Model; -require_once 'include/dba.php'; +use Friendica\BaseModel; +use Friendica\DI; /** - * @brief functions for interacting with the permission set of an object (item, photo, event, ...) + * functions for interacting with the permission set of an object (item, photo, event, ...) + * + * @property int uid + * @property string allow_cid + * @property string allow_gid + * @property string deny_cid + * @property string deny_gid */ -class PermissionSet extends BaseObject +class PermissionSet extends BaseModel { /** * Fetch the id of a given permission set. Generate a new one when needed * - * @param array $postarray The array from an item, picture or event post - * @return id + * @param int $uid + * @param string|null $allow_cid Allowed contact IDs - empty = everyone + * @param string|null $allow_gid Allowed group IDs - empty = everyone + * @param string|null $deny_cid Disallowed contact IDs - empty = no one + * @param string|null $deny_gid Disallowed group IDs - empty = no one + * @return int id + * @throws \Exception + * @deprecated since 2020.03, use Repository\PermissionSet instead + * @see \Friendica\Repository\PermissionSet->getIdFromACL */ - public static function fetchIDForPost($postarray) - { - $condition = ['uid' => $postarray['uid'], - 'allow_cid' => self::sortPermissions($postarray['allow_cid']), - 'allow_gid' => self::sortPermissions($postarray['allow_gid']), - 'deny_cid' => self::sortPermissions($postarray['deny_cid']), - 'deny_gid' => self::sortPermissions($postarray['deny_gid'])]; - - $set = dba::selectFirst('permissionset', ['id'], $condition); - - if (!DBM::is_result($set)) { - dba::insert('permissionset', $condition, true); - - $set = dba::selectFirst('permissionset', ['id'], $condition); - } - return $set['id']; + public static function getIdFromACL( + int $uid, + string $allow_cid = null, + string $allow_gid = null, + string $deny_cid = null, + string $deny_gid = null + ) { + return DI::permissionSet()->getIdFromACL($uid, $allow_cid, $allow_gid, $deny_cid, $deny_gid); } - private static function sortPermissions($permissionlist) + /** + * Returns a permission set for a given contact + * + * @param integer $uid User id whom the items belong + * @param integer $contact_id Contact id of the visitor + * + * @return array of permission set ids. + * @throws \Exception + * @deprecated since 2020.03, use Repository\PermissionSet instead + * @see \Friendica\Repository\PermissionSet->selectByContactId + */ + public static function get($uid, $contact_id) { - $cleaned_list = trim($permissionlist, '<>'); - - if (empty($cleaned_list)) { - return $permissionlist; - } - - $elements = explode('><', $cleaned_list); - - if (count($elements) <= 1) { - return $permissionlist; - } - - asort($elements); + $permissionSets = DI::permissionSet()->selectByContactId($contact_id, $uid); - return '<' . implode('><', $elements) . '>'; + return $permissionSets->column('id'); } }