You are here

function user_relationships_request in User Relationships 5.2

Same name and namespace in other branches
  1. 5 user_relationships_forms.inc \user_relationships_request()

Request a new relationship with another user

2 string references to 'user_relationships_request'
user_relationships_menu in ./user_relationships_hooks.inc
Menu
user_relationship_direct_form_alter in plugins/user_relationship_direct/user_relationship_direct.module

File

./user_relationships_forms.inc, line 197

Code

function user_relationships_request($requestee_id) {
  global $user;
  $requester = user_load(array(
    'uid' => $user->uid,
  ));
  $requestee = user_load(array(
    'uid' => $requestee_id,
  ));
  if (empty($requestee->name)) {
    drupal_set_message(user_relationships_get_message('non_existant_user'));
  }
  else {
    if (!user_access('can have relationship', $requestee)) {
      drupal_set_message(user_relationships_get_message('not_accepting_requests'));
    }
    else {
      if ($user->uid == $requestee_id) {
        drupal_set_message(user_relationships_get_message('self_request'));
      }
      else {
        $form = user_relationships_request_form($requester, $requestee);
        if (!$form['rtid']['#options']) {
          drupal_set_message(user_relationships_get_message('too_many_relationships'), 'error');
        }
        else {
          if (sizeof($relations = user_relationships_types_load()) < 2) {
            foreach ($relations as $relation) {
              $rtid = $relation->rtid;
            }
            if (user_access('can have relationship', $requestee)) {
              if ($current_relationships = user_relationships_load(array(
                'between' => array(
                  $requester->uid,
                  $user->uid,
                ),
              ))) {
                drupal_set_message(user_relationships_get_message('too_many_relationships'), 'error');
                drupal_goto();
              }
            }
            else {
              drupal_set_message(user_relationships_get_message('not_accepting_requests'));
              drupal_goto();
            }
            $relationship_type = user_relationships_type_load(array(
              'rtid' => $rtid,
            ));
            $relationship = user_relationships_request_relationship($user->uid, $requestee_id, $relationship_type);
            if ($relationship === FALSE) {
              drupal_set_message(user_relationships_get_message('unknown_error', $relationship));
            }
            $relationship->requester = $requester;
            $relationship->requestee = $requestee;
            $relationship->type = $relationship_type;
            drupal_set_message(user_relationships_get_message($relationship->approved ? 'pre_approved' : 'submitted', $relationship));
            drupal_goto(drupal_get_path_alias('user/' . $form_values['requestee']));
          }
          else {
            $form = confirm_form($form, t('How do you relate to %name?', array(
              '%name' => $requestee->name,
            )), "user/{$requestee->uid}", '', t('Create'), t('Cancel'), 'user_relationships_request_confirm');
            return $form;
          }
        }
      }
    }
  }
  drupal_goto();
}