X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FModel%2FPermissionSet.php;h=cc9650210ffaaa3d83be1c6720f88548e88643d4;hb=701dbdf7fc4979f05fde1c655b17ca3aff0a59e0;hp=983261fd617643b12907eabea14ae6ae80df4ea5;hpb=daa1177e3a1e42b4c95e0a8759f1610942b952c7;p=friendica.git diff --git a/src/Model/PermissionSet.php b/src/Model/PermissionSet.php index 983261fd61..cc9650210f 100644 --- a/src/Model/PermissionSet.php +++ b/src/Model/PermissionSet.php @@ -1,60 +1,78 @@ . + * */ -namespace Friendica\Model; -use Friendica\BaseObject; -use Friendica\Database\dba; -use Friendica\Database\DBM; +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(defaults($postarray, 'allow_cid', '')), - 'allow_gid' => self::sortPermissions(defaults($postarray, 'allow_gid', '')), - 'deny_cid' => self::sortPermissions(defaults($postarray, 'deny_cid', '')), - 'deny_gid' => self::sortPermissions(defaults($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'); } }