Elgg  Version 1.11
Public Member Functions | List of all members
Elgg\Database\AccessCollections Class Reference

Public Member Functions

 __construct ($site_guid)
 Constructor. More...
 
 getAccessList ($user_guid=0, $site_guid=0, $flush=false)
 Return a string of access_ids for $user_guid appropriate for inserting into an SQL IN clause. More...
 
 getAccessArray ($user_guid=0, $site_guid=0, $flush=false)
 Returns an array of access IDs a user is permitted to see. More...
 
 getWhereSql (array $options=array())
 Returns the SQL where clause for enforcing read access to data. More...
 
 hasAccessToEntity ($entity, $user=null)
 Can a user access an entity. More...
 
 getWriteAccessArray ($user_guid=0, $site_guid=0, $flush=false, array $input_params=array())
 Returns an array of access permissions that the user is allowed to save content with. More...
 
 canEdit ($collection_id, $user_guid=null)
 Can the user change this access collection? More...
 
 create ($name, $owner_guid=0, $site_guid=0)
 Creates a new access collection. More...
 
 update ($collection_id, $members)
 Updates the membership in an access collection. More...
 
 delete ($collection_id)
 Deletes a specified access collection and its membership. More...
 
 get ($collection_id)
 Get a specified access collection. More...
 
 addUser ($user_guid, $collection_id)
 Adds a user to an access collection. More...
 
 removeUser ($user_guid, $collection_id)
 Removes a user from an access collection. More...
 
 getEntityCollections ($owner_guid, $site_guid=0)
 Returns an array of database row objects of the access collections owned by $owner_guid. More...
 
 getMembers ($collection, $idonly=false)
 Get all of members of an access collection. More...
 
 getCollectionsByMember ($member_guid, $site_guid=0)
 Return an array of database row objects of the access collections $entity_guid is a member of. More...
 
 getReadableAccessLevel ($entity_access_id)
 Return the name of an ACCESS_* constant or an access collection, but only if the logged in user owns the access collection or is an admin. More...
 

Detailed Description

Definition at line 14 of file AccessCollections.php.

Constructor & Destructor Documentation

Elgg\Database\AccessCollections::__construct (   $site_guid)

Constructor.

Parameters
int$site_guidThe GUID of the default Elgg site

Definition at line 25 of file AccessCollections.php.

Member Function Documentation

Elgg\Database\AccessCollections::addUser (   $user_guid,
  $collection_id 
)

Adds a user to an access collection.

Triggers the 'access:collections:add_user', 'collection' plugin hook.

Parameters
int$user_guidThe GUID of the user to add
int$collection_idThe ID of the collection to add them to
Returns
bool

Definition at line 622 of file AccessCollections.php.

Elgg\Database\AccessCollections::canEdit (   $collection_id,
  $user_guid = null 
)

Can the user change this access collection?

Use the plugin hook of 'access:collections:write', 'user' to change this.

See also
get_write_access_array() for details on the hook.

Respects access control disabling for admin users and elgg_set_ignore_access()

See also
get_write_access_array()
Parameters
int$collection_idThe collection id
mixed$user_guidThe user GUID to check for. Defaults to logged in user.
Returns
bool

Definition at line 438 of file AccessCollections.php.

Elgg\Database\AccessCollections::create (   $name,
  $owner_guid = 0,
  $site_guid = 0 
)

Creates a new access collection.

Access colletions allow plugins and users to create granular access for entities.

Triggers plugin hook 'access:collections:addcollection', 'collection'

Definition at line 478 of file AccessCollections.php.

Elgg\Database\AccessCollections::delete (   $collection_id)

Deletes a specified access collection and its membership.

Parameters
int$collection_idThe collection ID
Returns
bool

Definition at line 564 of file AccessCollections.php.

Elgg\Database\AccessCollections::get (   $collection_id)

Get a specified access collection.

Note
This doesn't return the members of an access collection, just the database row of the actual collection.
See also
get_members_of_access_collection()
Parameters
int$collection_idThe collection ID
Returns
object|false

Definition at line 599 of file AccessCollections.php.

Elgg\Database\AccessCollections::getAccessArray (   $user_guid = 0,
  $site_guid = 0,
  $flush = false 
)

Returns an array of access IDs a user is permitted to see.

Can be overridden with the 'access:collections:read', 'user' plugin hook.

Warning
A callback for that plugin hook needs to either not retrieve data from the database that would use the access system (triggering the plugin again) or ignore the second call. Otherwise, an infinite loop will be created.

This returns a list of all the collection ids a user owns or belongs to plus public and logged in access levels. If the user is an admin, it includes the private access level.

Definition at line 103 of file AccessCollections.php.

Elgg\Database\AccessCollections::getAccessList (   $user_guid = 0,
  $site_guid = 0,
  $flush = false 
)

Return a string of access_ids for $user_guid appropriate for inserting into an SQL IN clause.

get_access_array

See also
get_access_array()
Parameters
int$user_guidUser ID; defaults to currently logged in user
int$site_guidSite ID; defaults to current site
bool$flushIf set to true, will refresh the access list from the database rather than using this function's cache.
Returns
string A list of access collections suitable for using in an SQL call private

Definition at line 44 of file AccessCollections.php.

Elgg\Database\AccessCollections::getCollectionsByMember (   $member_guid,
  $site_guid = 0 
)

Return an array of database row objects of the access collections $entity_guid is a member of.

Parameters
int$member_guidThe entity guid
int$site_guidThe GUID of the site (default: current site).
Returns
array|false

Definition at line 767 of file AccessCollections.php.

Elgg\Database\AccessCollections::getEntityCollections (   $owner_guid,
  $site_guid = 0 
)

Returns an array of database row objects of the access collections owned by $owner_guid.

Parameters
int$owner_guidThe entity guid
int$site_guidThe GUID of the site (default: current site).
Returns
array|false

Definition at line 703 of file AccessCollections.php.

Elgg\Database\AccessCollections::getMembers (   $collection,
  $idonly = false 
)

Get all of members of an access collection.

Parameters
int$collectionThe collection's ID
bool$idonlyIf set to true, will only return the members' GUIDs (default: false)
Returns
[]|int[]|false guids or entities if successful, false if not

Definition at line 732 of file AccessCollections.php.

Elgg\Database\AccessCollections::getReadableAccessLevel (   $entity_access_id)

Return the name of an ACCESS_* constant or an access collection, but only if the logged in user owns the access collection or is an admin.

Ownership requirement prevents us from exposing names of access collections that current user has been added to by other members and may contain sensitive classification of the current user (e.g. close friends vs acquaintances).

Returns a string in the language of the user for global access levels, e.g.'Public, 'Friends', 'Logged in', 'Private'; or a name of the owned access collection, e.g. 'My work colleagues'; or a name of the group or other access collection, e.g. 'Group: Elgg technical support'; or 'Limited' if the user access is restricted to read-only, e.g. a friends collection the user was added to

Parameters
int$entity_access_idThe entity's access id
Returns
string
Since
1.11

Definition at line 806 of file AccessCollections.php.

Elgg\Database\AccessCollections::getWhereSql ( array  $options = array())

Returns the SQL where clause for enforcing read access to data.

Note that if this code is executed in privileged mode it will return (1=1).

Otherwise it returns a where clause to retrieve the data that a user has permission to read.

Plugin authors can hook into the 'get_sql', 'access' plugin hook to modify, remove, or add to the where clauses. The plugin hook will pass an array with the current ors and ands to the function in the form: array( 'ors' => array(), 'ands' => array() )

The results will be combined into an SQL where clause in the form: ((or1 OR or2 OR orN) AND (and1 AND and2 AND andN))

Parameters
array$optionsArray in format:
table_alias => STR Optional table alias. This is based on the select and join clauses.
                Default is 'e'. 

user_guid => INT Optional GUID for the user that we are retrieving data for. Defaults to the logged in user.

use_enabled_clause => BOOL Optional. Should we append the enabled clause? The default is set by access_show_hidden_entities().

access_column => STR Optional access column name. Default is 'access_id'.

owner_guid_column => STR Optional owner_guid column. Default is 'owner_guid'.

guid_column => STR Optional guid_column. Default is 'guid'.

Returns
string private

Definition at line 225 of file AccessCollections.php.

Elgg\Database\AccessCollections::getWriteAccessArray (   $user_guid = 0,
  $site_guid = 0,
  $flush = false,
array  $input_params = array() 
)

Returns an array of access permissions that the user is allowed to save content with.

Permissions returned are of the form (id => 'name').

Example return value in English: array( 0 => 'Private', -2 => 'Friends', 1 => 'Logged in users', 2 => 'Public', 34 => 'My favorite friends', );

Plugin hook of 'access:collections:write', 'user'

Warning
this only returns access collections that the user owns plus the standard access levels. It does not return access collections that the user belongs to such as the access collection for a group.
Parameters
int$user_guidThe user's GUID.
int$site_guidThe current site.
bool$flushIf this is set to true, this will ignore a cached access array
array$input_paramsSome parameters passed into an input/access view
Returns
array List of access permissions

Definition at line 372 of file AccessCollections.php.

Elgg\Database\AccessCollections::hasAccessToEntity (   $entity,
  $user = null 
)

Can a user access an entity.

Warning
If a logged in user doesn't have access to an entity, the core engine will not load that entity.

This is mostly useful for checking if a user other than the logged in user has access to an entity that is currently loaded.

Parameters
\ElggEntity$entityThe entity to check access for.
\ElggUser$userOptionally user to check access for. Defaults to logged in user (which is a useless default).
Returns
bool

Definition at line 319 of file AccessCollections.php.

Elgg\Database\AccessCollections::removeUser (   $user_guid,
  $collection_id 
)

Removes a user from an access collection.

Triggers the 'access:collections:remove_user', 'collection' plugin hook.

Parameters
int$user_guidThe user GUID
int$collection_idThe access collection ID
Returns
bool

Definition at line 665 of file AccessCollections.php.

Elgg\Database\AccessCollections::update (   $collection_id,
  $members 
)

Updates the membership in an access collection.

Warning
Expects a full list of all members that should be part of the access collection
Note
This will run all hooks associated with adding or removing members to access collections.
Parameters
int$collection_idThe ID of the collection.
array$membersArray of member GUIDs
Returns
bool

Definition at line 530 of file AccessCollections.php.


The documentation for this class was generated from the following file: