function user_relationships_panels_visibility_ctools_access_check in User Relationships 7
Same name and namespace in other branches
- 6 user_relationships_panels_visibility/plugins/access/ur_relationship.inc \user_relationships_panels_visibility_ctools_access_check()
Check for access based on relationship.
1 string reference to 'user_relationships_panels_visibility_ctools_access_check'
- ur_relationship.inc in user_relationships_panels_visibility/
plugins/ access/ ur_relationship.inc
File
- user_relationships_panels_visibility/
plugins/ access/ ur_relationship.inc, line 51
Code
function user_relationships_panels_visibility_ctools_access_check($conf, $context) {
if (empty($context) || count($context) != 2 || empty($context[0]->data) || empty($context[1]->data)) {
return FALSE;
}
$account1 = $context[0]->data;
$account2 = $context[1]->data;
// If you are viewing something which is your own (like your profile) return TRUE.
if ($conf['ur_self']['1'] == 1 && $account1->uid == $account2->uid) {
return TRUE;
}
$relationships = user_relationships_load(array(
"between" => array(
$account1->uid,
$account2->uid,
),
));
foreach ($relationships as $relationship) {
// If this relationship is in the conf file
if (!empty($conf['ur_relationship'][$relationship->rtid])) {
// If no approval required, or approval has been granted
if (!$relationship->requires_approval || $relationship->requires_approval && $relationship->approved) {
// If not a oneway, or else it is a oneway requested by this user
if (!$relationship->is_oneway || $relationship->requester_id == $account1->uid) {
return TRUE;
}
}
}
}
return FALSE;
}