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;
}