access() non-object PHP error when trying to access view with Access to to a role that user isn't a part of.

capellic - September 16, 2009 - 16:55
Project:Views
Version:6.x-2.6
Component:Views Data
Category:bug report
Priority:normal
Assigned:Unassigned
Status:postponed (maintainer needs more info)
Description

I get the following error when I have set a view display to only permit access to role A and I visit the display as a user who is not in role A.

PHP Fatal error: Call to a member function access() on a non-object in sites/all/modules/views/includes/view.inc on line 229

I have the Content Access module installed, but I disabled it to confirm that it isn't the cause of the problem.

#1

dereine - September 16, 2009 - 20:14

Can you export your view please?

#2

capellic - September 17, 2009 - 14:43

Sorry about that. Here it is.

<?php
$view
= new view;
$view->name = 'members';
$view->description = 'Members roster';
$view->tag = '';
$view->view_php = '';
$view->base_table = 'node';
$view->is_cacheable = FALSE;
$view->api_version = 2;
$view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
$handler = $view->new_display('default', 'Defaults', 'default');
$handler->override_option('relationships', array(
 
'content_profile_rel' => array(
   
'label' => 'Profile General',
   
'required' => 0,
   
'type' => 'profile_general',
   
'id' => 'content_profile_rel',
   
'table' => 'users',
   
'field' => 'content_profile_rel',
   
'override' => array(
     
'button' => 'Override',
    ),
   
'relationship' => 'none',
  ),
 
'content_profile_rel_1' => array(
   
'label' => 'Community Profile',
   
'required' => 0,
   
'type' => 'profile_community',
   
'id' => 'content_profile_rel_1',
   
'table' => 'users',
   
'field' => 'content_profile_rel',
   
'relationship' => 'none',
  ),
));
$handler->override_option('fields', array(
 
'field_profile_img_fid_1' => array(
   
'label' => '',
   
'alter' => array(
     
'alter_text' => 0,
     
'text' => '',
     
'make_link' => 0,
     
'path' => '',
     
'link_class' => '',
     
'alt' => '',
     
'prefix' => '',
     
'suffix' => '',
     
'help' => '',
     
'trim' => 0,
     
'max_length' => '',
     
'word_boundary' => 1,
     
'ellipsis' => 1,
     
'strip_tags' => 0,
     
'html' => 0,
    ),
   
'link_to_node' => 0,
   
'label_type' => 'none',
   
'format' => 'profile_thumbnail_linked',
   
'multiple' => array(
     
'group' => TRUE,
     
'multiple_number' => '',
     
'multiple_from' => '',
     
'multiple_reversed' => FALSE,
    ),
   
'exclude' => 0,
   
'id' => 'field_profile_img_fid_1',
   
'table' => 'node_data_field_profile_img',
   
'field' => 'field_profile_img_fid',
   
'relationship' => 'content_profile_rel_1',
  ),
 
'field_person_fname_value' => array(
   
'label' => '',
   
'alter' => array(
     
'alter_text' => 0,
     
'text' => '',
     
'make_link' => 0,
     
'path' => '',
     
'link_class' => '',
     
'alt' => '',
     
'prefix' => '',
     
'suffix' => '',
     
'help' => '',
     
'trim' => 0,
     
'max_length' => '',
     
'word_boundary' => 1,
     
'ellipsis' => 1,
     
'strip_tags' => 0,
     
'html' => 0,
    ),
   
'link_to_node' => 0,
   
'label_type' => 'none',
   
'format' => 'default',
   
'multiple' => array(
     
'group' => TRUE,
     
'multiple_number' => '',
     
'multiple_from' => '',
     
'multiple_reversed' => FALSE,
    ),
   
'exclude' => 0,
   
'id' => 'field_person_fname_value',
   
'table' => 'node_data_field_person_fname',
   
'field' => 'field_person_fname_value',
   
'override' => array(
     
'button' => 'Override',
    ),
   
'relationship' => 'content_profile_rel',
  ),
 
'field_person_lname_value' => array(
   
'label' => 'Name',
   
'alter' => array(
     
'alter_text' => 0,
     
'text' => '',
     
'make_link' => 0,
     
'path' => '',
     
'link_class' => '',
     
'alt' => '',
     
'prefix' => '',
     
'suffix' => '',
     
'help' => '',
     
'trim' => 0,
     
'max_length' => '',
     
'word_boundary' => 1,
     
'ellipsis' => 1,
     
'strip_tags' => 0,
     
'html' => 0,
    ),
   
'link_to_node' => 0,
   
'label_type' => 'custom',
   
'format' => 'default',
   
'multiple' => array(
     
'group' => TRUE,
     
'multiple_number' => '',
     
'multiple_from' => '',
     
'multiple_reversed' => FALSE,
    ),
   
'exclude' => 0,
   
'id' => 'field_person_lname_value',
   
'table' => 'node_data_field_person_lname',
   
'field' => 'field_person_lname_value',
   
'override' => array(
     
'button' => 'Override',
    ),
   
'relationship' => 'content_profile_rel',
  ),
 
'name' => array(
   
'label' => '',
   
'alter' => array(
     
'alter_text' => 1,
     
'text' => '<a href="/members/[name]">View profile ></a>',
     
'make_link' => 0,
     
'path' => '',
     
'link_class' => '',
     
'alt' => '',
     
'prefix' => '',
     
'suffix' => '',
     
'help' => '',
     
'trim' => 0,
     
'max_length' => '',
     
'word_boundary' => 1,
     
'ellipsis' => 1,
     
'strip_tags' => 0,
     
'html' => 0,
    ),
   
'link_to_user' => 0,
   
'overwrite_anonymous' => 0,
   
'anonymous_text' => '',
   
'exclude' => 0,
   
'id' => 'name',
   
'table' => 'users',
   
'field' => 'name',
   
'override' => array(
     
'button' => 'Override',
    ),
   
'relationship' => 'none',
  ),
));
$handler->override_option('filters', array(
 
'status' => array(
   
'operator' => '=',
   
'value' => '1',
   
'group' => '0',
   
'exposed' => FALSE,
   
'expose' => array(
     
'operator' => FALSE,
     
'label' => '',
    ),
   
'id' => 'status',
   
'table' => 'node',
   
'field' => 'status',
   
'override' => array(
     
'button' => 'Override',
    ),
   
'relationship' => 'none',
  ),
 
'type' => array(
   
'operator' => 'in',
   
'value' => array(
     
'profile_community' => 'profile_community',
    ),
   
'group' => '0',
   
'exposed' => FALSE,
   
'expose' => array(
     
'operator' => FALSE,
     
'label' => '',
    ),
   
'id' => 'type',
   
'table' => 'node',
   
'field' => 'type',
   
'override' => array(
     
'button' => 'Override',
    ),
   
'relationship' => 'none',
  ),
 
'status_1' => array(
   
'operator' => '=',
   
'value' => '1',
   
'group' => '0',
   
'exposed' => FALSE,
   
'expose' => array(
     
'operator' => FALSE,
     
'label' => '',
    ),
   
'id' => 'status_1',
   
'table' => 'users',
   
'field' => 'status',
   
'override' => array(
     
'button' => 'Override',
    ),
   
'relationship' => 'none',
  ),
 
'field_person_lname_value' => array(
   
'operator' => 'not empty',
   
'value' => '',
   
'group' => '0',
   
'exposed' => FALSE,
   
'expose' => array(
     
'operator' => FALSE,
     
'label' => '',
    ),
   
'case' => 1,
   
'id' => 'field_person_lname_value',
   
'table' => 'node_data_field_person_lname',
   
'field' => 'field_person_lname_value',
   
'override' => array(
     
'button' => 'Override',
    ),
   
'relationship' => 'content_profile_rel',
  ),
));
$handler->override_option('access', array(
 
'type' => 'role',
 
'role' => array(
   
'2' => 2,
  ),
));
$handler->override_option('cache', array(
 
'type' => 'none',
));
$handler->override_option('title', 'Members Directory');
$handler->override_option('empty', 'There are either no members or you do not have permission to view member information.');
$handler->override_option('empty_format', '4');
$handler->override_option('items_per_page', 50);
$handler->override_option('use_pager', '1');
$handler->override_option('style_plugin', 'table');
$handler->override_option('style_options', array(
 
'grouping' => '',
 
'override' => 1,
 
'sticky' => 1,
 
'order' => 'asc',
 
'columns' => array(
   
'title' => 'title',
   
'view_node' => 'view_node',
   
'field_person_fname_value' => 'field_person_lname_value',
   
'field_person_lname_value' => 'field_person_lname_value',
  ),
 
'info' => array(
   
'title' => array(
     
'sortable' => 0,
     
'separator' => '',
    ),
   
'view_node' => array(
     
'separator' => '',
    ),
   
'field_person_fname_value' => array(
     
'sortable' => 0,
     
'separator' => '',
    ),
   
'field_person_lname_value' => array(
     
'sortable' => 1,
     
'separator' => '&nbsp;',
    ),
  ),
 
'default' => 'field_person_lname_value',
));
$handler = $view->new_display('page', 'Page', 'page_1');
$handler->override_option('path', 'members');
$handler->override_option('menu', array(
 
'type' => 'none',
 
'title' => '',
 
'description' => '',
 
'weight' => 0,
 
'name' => 'navigation',
));
$handler->override_option('tab_options', array(
 
'type' => 'none',
 
'title' => '',
 
'description' => '',
 
'weight' => 0,
));
?>

#3

capellic - October 1, 2009 - 13:09

Any ideas? Thanks!!

#4

capellic - October 16, 2009 - 14:01

A gentle bump. :-)

#5

merlinofchaos - November 7, 2009 - 19:00

I am confused. That view does not contain any access control.

#6

merlinofchaos - November 7, 2009 - 19:08

Hm. Ok, after dereine points it out I see it, even though firefox refused to find it earlier. Ignore #5.

#7

merlinofchaos - November 7, 2009 - 19:15

Hmm. I made a view similar to this and I can't replicate the problem.

It looks like the error is in view::choose_display(). Can you put some debug around the line that is failing and see what the $displays variable is set to?

#8

merlinofchaos - November 10, 2009 - 21:43
Status:active» postponed (maintainer needs more info)

Marking nmi -- need some debugging from source to determine what's going on here.

 
 

Drupal is a registered trademark of Dries Buytaert.