You are here

function user_relationships_api_can_request in User Relationships 6

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

Parameters

$requester requesting user object or uid:

$relationship_type loaded relationship type object or rtid:

Return value

TRUE iff requester is allowed to request this type of relationship

6 calls to user_relationships_api_can_request()
UserRelationshipsApiTestCase::testUserRelationshipsLoadDuplicates in user_relationships_api/tests/user_relationships_api.api.test
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

... See full list

File

user_relationships_api/user_relationships_api.api.inc, line 432
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_request($requester, $relationship_type) {

  //validate arguments
  if (is_numeric($requester)) {
    $requester = user_load($requester);
  }
  if (is_numeric($relationship_type)) {
    $relationship_type = user_relationships_type_load($relationship_type);
  }
  if (!is_object($requester) || !is_object($relationship_type)) {
    return FALSE;
  }
  if ($requester->uid == 1) {
    return TRUE;
  }

  //if no roles have been set, any user can request
  if (!isset($relationship_type->roles) || !count($relationship_type->roles)) {
    return TRUE;
  }

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