diff options
Diffstat (limited to 'engine/lib/access.php')
| -rw-r--r-- | engine/lib/access.php | 76 | 
1 files changed, 61 insertions, 15 deletions
| diff --git a/engine/lib/access.php b/engine/lib/access.php index c1987e159..471b85236 100644 --- a/engine/lib/access.php +++ b/engine/lib/access.php @@ -65,9 +65,6 @@  			$user_id = (int) $user_id;
  			$site_id = (int) $site_id;
 -			if (!$user = get_entity($user_id))
 -				$user = null;
 -			
  			if (empty($access_array[$user_id]) || $flush == true) {
  				$query = "select am.access_collection_id from {$CONFIG->dbprefix}access_collection_membership am ";
 @@ -87,9 +84,7 @@  			}
 -			$access_array_temp = trigger_plugin_hook('access:collections','user',array('user' => $user, 'site_id' => $site_id),$access_array[$user_id]);
 -			
 -			return $access_array_temp;
 +			return $access_array[$user_id];
  		}
 @@ -143,9 +138,6 @@  			$user_id = (int) $user_id;
  			$site_id = (int) $site_id;
 -			if (!$user = get_entity($user_id))
 -				$user = null;
 -			
  			if (empty($access_array[$user_id]) || $flush == true) {
  				$query = "select ag.* from {$CONFIG->dbprefix}access_collections ag ";
 @@ -158,13 +150,13 @@  						$tmp_access_array[$collection->id] = elgg_echo($collection->name);
  				}
 +				$tmp_access_array = trigger_plugin_hook('access','user',array('user_id' => $user_id, 'site_id' => $site_id),$tmp_access_array);
 +				
  				$access_array[$user_id] = $tmp_access_array;
  			}
 -			$tmp_access_array = trigger_plugin_hook('access:collections:write','user',array('user' => $user, 'site_id' => $site_id),$tmp_access_array);
 -			
 -			return $tmp_access_array;
 +			return $access_array[$user_id];
  		}
 @@ -201,7 +193,7 @@  			$collection_id = (int) $collection_id;
  			$collections = get_write_access_array();
 -			if (in_array($collection_id,$collections)) {
 +			if (array_key_exists($collection_id, $collections)) {
  				global $CONFIG;
  				delete_data("delete from {$CONFIG->dbprefix}access_collection_membership where access_collection_id = {$collection_id}");
  				delete_data("delete from {$CONFIG->dbprefix}access_collections where id = {$collection_id}");
 @@ -213,6 +205,22 @@  		}
  		/**
 +		 * Get a specified access collection
 +		 *
 +		 * @param int $collection_id The collection ID
 +		 * @return array|false Depending on success
 +		 */
 +		function get_access_collection($collection_id) {
 +    		
 +    		$collection_id = (int) $collection_id;
 +    		global $CONFIG;
 +    		$get_collection = get_data("SELECT * FROM {$CONFIG->dbprefix}access_collections WHERE id = {$collection_id}");
 +    		
 +    		return $get_collection;
 +    		
 +		}
 +		
 +		/**
  		 * Adds a user to the specified user collection
  		 *
  		 * @param int $user_guid The GUID of the user to add
 @@ -225,7 +233,7 @@  			$user_guid = (int) $user_guid;
  			$collections = get_write_access_array();
 -			if (in_array($collection_id, $collections) && $user = get_user($user_guid)) {
 +			if (array_key_exists($collection_id, $collections) && $user = get_user($user_guid)) {
  				global $CONFIG;
  				insert_data("insert into {$CONFIG->dbprefix}access_collection_membership set access_collection_id = {$collection_id}, user_guid = {$user_guid}");
 @@ -250,7 +258,7 @@  			$user_guid = (int) $user_guid;
  			$collections = get_write_access_array();
 -			if (in_array($collection_id, $collections) && $user = get_user($user_guid)) {
 +			if (array_key_exists($collection_id, $collections) && $user = get_user($user_guid)) {
  				global $CONFIG;
  				delete_data("delete from {$CONFIG->dbprefix}access_collection_membership where access_collection_id = {$collection_id} and user_guid = {$user_guid}");
 @@ -262,6 +270,44 @@  		}
 +		/**
 +		 * Get all of a users collections
 +		 *
 +		 * @param int $owner_guid The user ID
 +		 * @return true|false Depending on success
 +		 */
 +		function get_user_access_collections($owner_guid) {
 +			
 +			$owner_guid = (int) $owner_guid;
 +			
 +			global $CONFIG;
 +			
 +			$collections = get_data("SELECT * FROM {$CONFIG->dbprefix}access_collections WHERE owner_guid = {$owner_guid}");
 +			
 +			return $collections;
 +			
 +		}
 +		
 +		/**
 +		 * Get all of members of a friend collection
 +		 *
 +		 * @param int $collection The collection's ID
 +		 * @return ElggUser entities if successful, false if not
 +		 */
 +		function get_members_of_access_collection($collection) {
 +    		
 +    		$collection = (int)$collection;
 +    		
 +    		global $CONFIG;
 +		
 +		    $query = "select e.* from {$CONFIG->dbprefix}access_collection_membership m join {$CONFIG->dbprefix}entities e on e.guid = m.user_guid WHERE m.access_collection_id = {$collection}";
 +		    
 +			$collection_members = get_data($query, "entity_row_to_elggstar");
 +			
 +			return $collection_members;
 +			
 +		}
 +		
  	/**
  	 * Some useful constant definitions
  	 */
 | 
