You are here

function datereminder_allowed_access_node in Date Reminder 7

Same name and namespace in other branches
  1. 6.2 datereminder.module \datereminder_allowed_access_node()
  2. 6 datereminder.module \datereminder_allowed_access_node()

Check if this user can access reminders for this node.

Parameters

node $node: The node

string $acc: What kind of access is requested? 'own' means set/view own reminder 'all' means view others' reminder

string loc: Where is the reminder to be displayed?

1 call to datereminder_allowed_access_node()
_datereminder_current_reminder_or_link in ./datereminder.module
Returns either a reminder form or, for anonymous user and if so enabled, an invitation to log in or register. @global type $user
1 string reference to 'datereminder_allowed_access_node'
_datereminder_menu in ./datereminder.admin.inc
Implements hook_menu().

File

./datereminder.module, line 755
Support for reminders for nodes with dates.

Code

function datereminder_allowed_access_node($node = NULL, $acc = 'own', $loc = DATEREMINDER_IN_NODE) {
  global $user;
  if (!isset($user) || $user->uid == 0) {
    return FALSE;
  }
  module_load_include('inc', 'datereminder', 'includes/defines');

  // First, be sure reminders are on for this.
  if (!isset($node) || $node->datereminder_enabled != DATEREMINDER_TYPE_ON) {
    return FALSE;
  }
  $accloc = variable_get('datereminder_display_loc', DATEREMINDER_IN_NODE);
  if ($loc != $accloc) {
    return FALSE;
  }
  if (!node_access('view', $node)) {

    // User shouldn't be able to view this node at all.
    return FALSE;
  }
  if (user_access(DATEREMINDER_VIEW_OTHER_USER_REMINDERS) || user_access(DATEREMINDER_ADMINISTER_REMINDERS)) {
    return TRUE;
  }
  if ($acc != 'own' || !user_access(DATEREMINDER_REQUEST_REMINDER)) {
    return FALSE;
  }
  module_load_include('inc', 'datereminder', 'includes/datereminder_form');
  return _datereminder_has_future_dates($node);
}