Add check_dead parameter to Item::enumeratePermissions
This commit is contained in:
		
					parent
					
						
							
								aba23abfaa
							
						
					
				
			
			
				commit
				
					
						828368267c
					
				
			
		
					 1 changed files with 11 additions and 4 deletions
				
			
		|  | @ -2881,13 +2881,20 @@ class Item extends BaseObject | ||||||
| 		return ($recipients1 == $recipients2); | 		return ($recipients1 == $recipients2); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	// returns an array of contact-ids that are allowed to see this object
 | 	/** | ||||||
| 	public static function enumeratePermissions(array $obj) | 	 * Returns an array of contact-ids that are allowed to see this object | ||||||
|  | 	 * | ||||||
|  | 	 * @param array $obj        Item array with at least uid, allow_cid, allow_gid, deny_cid and deny_gid | ||||||
|  | 	 * @param bool  $check_dead Prunes unavailable contacts from the result | ||||||
|  | 	 * @return array | ||||||
|  | 	 * @throws \Exception | ||||||
|  | 	 */ | ||||||
|  | 	public static function enumeratePermissions(array $obj, bool $check_dead = false) | ||||||
| 	{ | 	{ | ||||||
| 		$allow_people = expand_acl($obj['allow_cid']); | 		$allow_people = expand_acl($obj['allow_cid']); | ||||||
| 		$allow_groups = Group::expand($obj['uid'], expand_acl($obj['allow_gid'])); | 		$allow_groups = Group::expand($obj['uid'], expand_acl($obj['allow_gid']), $check_dead); | ||||||
| 		$deny_people  = expand_acl($obj['deny_cid']); | 		$deny_people  = expand_acl($obj['deny_cid']); | ||||||
| 		$deny_groups  = Group::expand($obj['uid'], expand_acl($obj['deny_gid'])); | 		$deny_groups  = Group::expand($obj['uid'], expand_acl($obj['deny_gid']), $check_dead); | ||||||
| 		$recipients   = array_unique(array_merge($allow_people, $allow_groups)); | 		$recipients   = array_unique(array_merge($allow_people, $allow_groups)); | ||||||
| 		$deny         = array_unique(array_merge($deny_people, $deny_groups)); | 		$deny         = array_unique(array_merge($deny_people, $deny_groups)); | ||||||
| 		$recipients   = array_diff($recipients, $deny); | 		$recipients   = array_diff($recipients, $deny); | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue