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