You are here

function user_relationships_api_can_receive in User Relationships 6

Check whether a user is allowed to receive a certain relationship type

Parameters

$requestee requesting user object or uid:

$relationship_type loaded relationship type object or rtid:

Return value

TRUE iff receiver is allowed to request this type of relationship

5 calls to user_relationships_api_can_receive()
user_relationships_api_preprocess_author_pane in user_relationships_api/user_relationships_api.author-pane.inc
Implementation of hook_preprocess_author_pane().
user_relationships_request_relationship in user_relationships_api/user_relationships_api.api.inc
Request a new user relationship
user_relationships_ui_request_validate in user_relationships_ui/user_relationships_ui.actions.inc
Validate relationship request.
_user_relationships_ui_actions_between in user_relationships_ui/user_relationships_ui.module
List of possible relationship actions with between two users
_user_relationships_ui_get_requestable_rtypes in user_relationships_ui/user_relationships_ui.module
Get relationship types that a user can request TODO: factor out of .module into an include file

File

user_relationships_api/user_relationships_api.api.inc, line 466
User Relationships API. Data abstraction layer @author Jeff Smick (creator) @author Alex Karshakevich (maintainer) http://drupal.org/user/183217

Code

function user_relationships_api_can_receive($requestee, $relationship_type) {

  //validate arguments
  if (is_numeric($relationship_type)) {
    $relationship_type = user_relationships_type_load($relationship_type);
  }
  if (is_numeric($requestee)) {
    $requestee = user_load($requestee);
  }
  if (!is_object($requestee) || !is_object($relationship_type)) {
    return FALSE;
  }

  //if no roles have been set to receive the relationship, any user can receive it
  if (!isset($relationship_type->roles_receive) || !count($relationship_type->roles_receive)) {
    return TRUE;
  }

  //check user has at least one required role
  foreach ($relationship_type->roles_receive as $role_id) {
    if (isset($requestee->roles[$role_id])) {
      return TRUE;
    }
  }
  return FALSE;
}