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) |
Jump to:
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
Can you export your view please?
#2
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' => ' ',
),
),
'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
Any ideas? Thanks!!
#4
A gentle bump. :-)
#5
I am confused. That view does not contain any access control.
#6
Hm. Ok, after dereine points it out I see it, even though firefox refused to find it earlier. Ignore #5.
#7
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
Marking nmi -- need some debugging from source to determine what's going on here.