Summary | Skipping login tasks not working as expected |
Queue | Horde Framework Packages |
Queue Version | Git master |
Type | Bug |
State | Resolved |
Priority | 2. Medium |
Owners | jan (at) horde (dot) org, slusarz (at) horde (dot) org |
Requester | jan (at) horde (dot) org |
Created | 08/03/2009 (5819 days ago) |
Due | |
Updated | 01/22/2010 (5647 days ago) |
Assigned | 08/05/2009 (5817 days ago) |
Resolved | 08/20/2009 (5802 days ago) |
Github Issue Link | |
Github Pull Request | |
Milestone | |
Patch | No |
Add Horde_Registry#listAllApps
Allow for listing of applications without regard to permissions. Needed
to solve chicken-or-egg problem of setting up a new install, but admin/setup
failing to load because of applications without configuration files.
This broke when fixing
Bug: 8475when we check auth before checking isAdmin()http://git.horde.org/diff.php/framework/Core/lib/Horde/Registry.php?rt=horde-git&r1=13879630963e68a2bfe3f85e37082bd6d5ac6631&r2=5c6f6169a588110f9ccc9892eadeb431b737f571
http://git.horde.org/diff.php/horde/admin/setup/index.php?rt=horde-git&r1=b23cc31ca5d964fd8f9be807871eb0595aee63d9&r2=5c6f6169a588110f9ccc9892eadeb431b737f571
State ⇒ Resolved
( ! ) Fatal error: Call to a member function needDisplay() on a
non-object in
/home/jan/horde-git/framework/LoginTasks/lib/Horde/LoginTasks.php on
line 291
Bug #8502.http://cvs.horde.org/diff.php/horde/services/logintasks.php?rt=horde&r1=1.13&r2=1.14&ty=u
New Attachment: trace.1250718299_377761.xt
( ! ) Fatal error: Call to a member function needDisplay() on a
non-object in
/home/jan/horde-git/framework/LoginTasks/lib/Horde/LoginTasks.php on
line 291
Call Stack
# Time Memory Function Location
1 0,0618 89360 {main}( ) ../logintasks.php:0
2 8,9816 5354584 Horde_LoginTasks->displayTasks( ) ../logintasks.php:38
Attached is a trace.
class. To reach there, we have to successfully finish IMP
authentication which by definition requires the Horde_Imap_Client
object to be loaded into the session. Might be useful to do a
print_r on the imp_imap->ob object in IMP_Imap_Tree to see what it is
set to.
happens once, it happens even after reloading. ->ob is null in those
cases. Here is an updated backtrace:
( ! ) Fatal error: Call to a member function getNamespaces() on a
non-object in /home/jan/horde-hatchery/imp/lib/Imap.php on line 325
Call Stack
# Time Memory Function Location
1 0,0134 129576 {main}( ) ../sidebar.php:0
2 1,4395 5554256 Horde_Block->buildTree( class Horde_Tree_javascript {
public $_source_name = 'n_horde_menu'; public $_options_name =
'o_horde_menu'; public $_target_name = 't_horde_menu'; public
$_instance = 'horde_menu'; public $_header = array (); public $_nodes
= array ('horde' => array ('label' => 'Horde', 'expanded' => FALSE,
'url' => '/headhorde/index.php', 'icon' =>
'/headhorde/themes/graphics/horde.png', 'icondir' => ''), 'imp' =>
array ('label' => 'Webmail', 'expanded' => FALSE, 'url' =>
'/headhorde/imp/', 'icon' => '/headhorde/imp/themes/graphics/imp.png',
'icondir' => '', 'children' => array (...)), 'ingo' => array ('label'
=> 'Filter', 'expanded' => FALSE, 'url' => '/headhorde/ingo/', 'icon'
=> '/headhorde/ingo/themes/graphics/ingo.png', 'icondir' => ''), 'sam'
=> array ('label' => 'Spam', 'expanded' => FALSE, 'url' =>
'/headhorde/sam/', 'icon' => '/headhorde/sam/themes/graphics/sam.png',
'icondir' => ''), 'forwards' => array ('label' => 'Weiterleitung',
'expanded' => FALSE, 'url' => '/headhorde/forwards/', 'icon' =>
'/headhorde/forwards/themes/graphics/forwards.png', 'icondir' => ''),
'vacation' => array ('label' => 'Abwesenheit', 'expanded' => FALSE,
'url' => '/headhorde/vacation/', 'icon' =>
'/headhorde/vacation/themes/graphics/vacation.png', 'icondir' => ''),
'impcompose' => array ('label' => 'Neue Nachricht', 'expanded' =>
FALSE, 'icon' => 'compose.png', 'icondir' =>
'/headhorde/imp/themes/graphics', 'url' =>
'javascript:Horde.popup(\'%2F%2A-secure-%7B%22url%22%3A%22%5C%2Fheadhorde%5C%2Fimp%5C%2Fcompose.php%22%7D%2A%2F\');', 'target' => 'horde_menu'), 'impsearch' => array ('label' => 'Suche', 'expanded' => FALSE, 'icon' => 'search.png', 'icondir' => '/headhorde/imp/themes/graphics', 'url' => '/headhorde/imp/search.php')); public $_root_nodes = array (0 => 'horde', 1 => 'imp'); public $_extra_cols_left = 0; public $_extra_cols_right = 0; public $_options = array ('lines' => TRUE, 'target' => 'horde_main'); public $_sortCriteria = NULL; public $_usesession = TRUE; public $_static = FALSE; public $_header_name = 'h_horde_menu' }, 0, 'imp'
) ../sidebar.php:233
3 1,6015 6121924 Horde_Block_imp_tree_folders->_buildTree( class
Horde_Tree_javascript { public $_source_name = 'n_horde_menu'; public
$_options_name = 'o_horde_menu'; public $_target_name =
't_horde_menu'; public $_instance = 'horde_menu'; public $_header =
array (); public $_nodes = array ('horde' => array ('label' =>
'Horde', 'expanded' => FALSE, 'url' => '/headhorde/index.php', 'icon'
=> '/headhorde/themes/graphics/horde.png', 'icondir' => ''), 'imp' =>
array ('label' => 'Webmail', 'expanded' => FALSE, 'url' =>
'/headhorde/imp/', 'icon' => '/headhorde/imp/themes/graphics/imp.png',
'icondir' => '', 'children' => array (...)), 'ingo' => array ('label'
=> 'Filter', 'expanded' => FALSE, 'url' => '/headhorde/ingo/', 'icon'
=> '/headhorde/ingo/themes/graphics/ingo.png', 'icondir' => ''), 'sam'
=> array ('label' => 'Spam', 'expanded' => FALSE, 'url' =>
'/headhorde/sam/', 'icon' => '/headhorde/sam/themes/graphics/sam.png',
'icondir' => ''), 'forwards' => array ('label' => 'Weiterleitung',
'expanded' => FALSE, 'url' => '/headhorde/forwards/', 'icon' =>
'/headhorde/forwards/themes/graphics/forwards.png', 'icondir' => ''),
'vacation' => array ('label' => 'Abwesenheit', 'expanded' => FALSE,
'url' => '/headhorde/vacation/', 'icon' =>
'/headhorde/vacation/themes/graphics/vacation.png', 'icondir' => ''),
'impcompose' => array ('label' => 'Neue Nachricht', 'expanded' =>
FALSE, 'icon' => 'compose.png', 'icondir' =>
'/headhorde/imp/themes/graphics', 'url' =>
'javascript:Horde.popup(\'%2F%2A-secure-%7B%22url%22%3A%22%5C%2Fheadhorde%5C%2Fimp%5C%2Fcompose.php%22%7D%2A%2F\');', 'target' => 'horde_menu'), 'impsearch' => array ('label' => 'Suche', 'expanded' => FALSE, 'icon' => 'search.png', 'icondir' => '/headhorde/imp/themes/graphics', 'url' => '/headhorde/imp/search.php')); public $_root_nodes = array (0 => 'horde', 1 => 'imp'); public $_extra_cols_left = 0; public $_extra_cols_right = 0; public $_options = array ('lines' => TRUE, 'target' => 'horde_main'); public $_sortCriteria = NULL; public $_usesession = TRUE; public $_static = FALSE; public $_header_name = 'h_horde_menu' }, 0, 'imp'
) ../Block.php:198
4 1,7509 7846868 IMP_Imap_Tree::singleton( ) ../tree_folders.php:57
5 1,7518 7848260 IMP_Imap_Tree->__construct( ) ../Tree.php:220
6 1,7518 7848260 IMP_Imap->getNamespaceList( ) ../Tree.php:233
to false during debugging this. If I turn it on, I'm right logged in
to IMP. But without that I get the mentioned behavior, and not the
IMP login page.
Horde_Registry::hasPermission(), I neglected the special case of a
user not authenticated to an app but requesting only SHOW permission.
In this single case, we need to do a permissions check since this is
the only permission allowed if not authenticated. See:
http://lists.horde.org/archives/commits/2009-August/001705.html
Still can't reproduce the rest though, no matter what combo of
auth/admin/initial_app parameters I set. At worst (a combo that
doesn't auto login to IMP), the IMP portal block reports it is not
authenticated and the IMP sidebar link doesn't show anything.
Clicking on an IMP/Mail link leads to the login page. All of this is
working as expected.
I'm not sure how imp_imap->ob is not set in the garbage collection
class. To reach there, we have to successfully finish IMP
authentication which by definition requires the Horde_Imap_Client
object to be loaded into the session. Might be useful to do a print_r
on the imp_imap->ob object in IMP_Imap_Tree to see what it is set to.
to false during debugging this. If I turn it on, I'm right logged in
to IMP. But without that I get the mentioned behavior, and not the IMP
login page.
But even with hordeauth, I get the following in the sidebar:
( ! ) Fatal error: Call to a member function getNamespaces() on a
non-object in /home/jan/horde-hatchery/imp/lib/Imap.php on line 324
Call Stack
# Time Memory Function Location
1 0,0012 129164 {main}( ) ../sidebar.php:0
2 5,1231 5511424 Horde_Block->buildTree( class Horde_Tree_javascript {
public $_source_name = 'n_horde_menu'; public $_options_name =
'o_horde_menu'; public $_target_name = 't_horde_menu'; public
$_instance = 'horde_menu'; public $_header = array (); public $_nodes
= array ('horde' => array ('label' => 'Horde', 'expanded' => FALSE,
'url' => '/headhorde/index.php', 'icon' =>
'/headhorde/themes/graphics/horde.png', 'icondir' => ''), 'imp' =>
array ('label' => 'Webmail', 'expanded' => FALSE, 'url' =>
'/headhorde/imp/', 'icon' => '/headhorde/imp/themes/graphics/imp.png',
'icondir' => '', 'children' => array (...)), 'ingo' => array ('label'
=> 'Filter', 'expanded' => FALSE, 'url' => '/headhorde/ingo/', 'icon'
=> '/headhorde/ingo/themes/graphics/ingo.png', 'icondir' => ''), 'sam'
=> array ('label' => 'Spam', 'expanded' => FALSE, 'url' =>
'/headhorde/sam/', 'icon' => '/headhorde/sam/themes/graphics/sam.png',
'icondir' => ''), 'forwards' => array ('label' => 'Weiterleitung',
'expanded' => FALSE, 'url' => '/headhorde/forwards/', 'icon' =>
'/headhorde/forwards/themes/graphics/forwards.png', 'icondir' => ''),
'vacation' => array ('label' => 'Abwesenheit', 'expanded' => FALSE,
'url' => '/headhorde/vacation/', 'icon' =>
'/headhorde/vacation/themes/graphics/vacation.png', 'icondir' => ''));
public $_root_nodes = array (0 => 'horde', 1 => 'imp'); public
$_extra_cols_left = 0; public $_extra_cols_right = 0; public $_options
= array ('lines' => TRUE, 'target' => 'horde_main'); public
$_sortCriteria = NULL; public $_usesession = TRUE; public $_static =
FALSE; public $_header_name = 'h_horde_menu' }, 0, 'imp'
) ../sidebar.php:233
3 5,1231 5511424 Horde_Registry->pushApp( 'imp', array ('logintasks'
=> FALSE) ) ../Block.php:193
4 5,1481 6083004 Horde_LoginTasks::singleton( 'imp' ) ../Registry.php:906
5 5,1482 6083004 Horde_LoginTasks->__construct( 'imp' ) ../LoginTasks.php:72
6 5,1482 6083004 Horde_LoginTasks->_createTaskList( ) ../LoginTasks.php:97
7 5,1570 6285844 IMP_LoginTasks_SystemTask_GarbageCollection->execute(
) ../LoginTasks.php:209
8 5,1855 8016652 IMP_Imap_Tree::singleton( ) ../GarbageCollection.php:30
9 5,1858 8017868 IMP_Imap_Tree->__construct( ) ../Tree.php:220
10 5,1858 8017868 IMP_Imap->getNamespaceList( ) ../Tree.php:233
and 'application = imp' auth drivers. IMP is my initial_application.
admin I get "Not authorized" in the IMP block, hordeauth isn't
working anymore. As a regular user, I don't see IMP in the menu
anymore at all.
Tracing the code:
pushApp('imp', array('checkPerms' => true))
calls hasPermission()
hasPermission() does Horde_Auth::isAuthenticated() call. This call
will automatically do transparent auth. If not authenticated, will
return false and pushApp() will throw an authentication error; the
Horde_Auth::isAuthenticated() call will fail there also. Really
stinks that we have to do that same call twice.
Then hasPermission() returns true because I am listed as an admin.
Would also return true if no permissions exist for IMP, or if I am
permitted to view imp.
I get "Not authorized" in the IMP block, hordeauth isn't working
anymore. As a regular user, I don't see IMP in the menu anymore at all.
Assigned to Jan Schneider
an admin. In Horde_Registry::pushApp(), if you are an admin the line:
$checkPerms && $this->hasPermission($app, PERMS_READ)
will always return true, and the code in hasPermission() will *never*
call isAuthenticated() to setup the session. The isAuthenticated()
check must occur before the session is created in any application
handling authentication.
I think there are 2 problems with the logic in hasPermission():
1.) Being a horde admin does not automatically give you 'permission'
to access it. You need valid authentication to that auth also.
2.) Applications that require authentication by definition will
*never* allow guest access.
So try my commit to Registry.php in hordegit - it seems to fix things for me.
( ! ) Notice: Undefined index: imp in
/home/jan/horde-hatchery/imp/lib/Imap/Tree.php on line 239
Call Stack
# Time Memory Function Location
1 0,0514 126976 {main}( ) ../sidebar.php:0
2 1,0744 8571544 Horde_Block->buildTree( class Horde_Tree_javascript {
public $_source_name = 'n_horde_menu'; public $_options_name =
'o_horde_menu'; public $_target_name = 't_horde_menu'; public
$_instance = 'horde_menu'; public $_header = array (); public $_nodes
= array ('horde' => array ('label' => 'Horde', 'expanded' => FALSE,
'url' => '/headhorde/index.php', 'icon' =>
'/headhorde/themes/graphics/horde.png', 'icondir' => ''), 'imp' =>
array ('label' => 'Webmail', 'expanded' => FALSE, 'url' =>
'/headhorde/imp/', 'icon' => '/headhorde/imp/themes/graphics/imp.png',
'icondir' => '', 'children' => array (...)), 'ingo' => array ('label'
=> 'Filter', 'expanded' => FALSE, 'url' => '/headhorde/ingo/', 'icon'
=> '/headhorde/ingo/themes/graphics/ingo.png', 'icondir' => ''), 'sam'
=> array ('label' => 'Spam', 'expanded' => FALSE, 'url' =>
'/headhorde/sam/', 'icon' => '/headhorde/sam/themes/graphics/sam.png',
'icondir' => ''), 'forwards' => array ('label' => 'Weiterleitung',
'expanded' => FALSE, 'url' => '/headhorde/forwards/', 'icon' =>
'/headhorde/forwards/themes/graphics/forwards.png', 'icondir' => ''),
'vacation' => array ('label' => 'Abwesenheit', 'expanded' => FALSE,
'url' => '/headhorde/vacation/', 'icon' =>
'/headhorde/vacation/themes/graphics/vacation.png', 'icondir' => ''));
public $_root_nodes = array (0 => 'horde', 1 => 'imp'); public
$_extra_cols_left = 0; public $_extra_cols_right = 0; public $_options
= array ('lines' => TRUE, 'target' => 'horde_main'); public
$_sortCriteria = NULL; public $_usesession = TRUE; public $_static =
FALSE; public $_header_name = 'h_horde_menu' }, 0, 'imp'
) ../sidebar.php:227
3 1,0744 8571544 Horde_Registry->pushApp( 'imp', array ('logintasks'
=> FALSE) ) ../Block.php:193
4 1,2647 9220220 Horde_LoginTasks::singleton( 'imp',
'http://php5.wg.de:8888/headhorde/services/portal/sidebar.php'
) ../Registry.php:918
5 1,2647 9220220 Horde_LoginTasks->__construct( 'imp',
'http://php5.wg.de:8888/headhorde/services/portal/sidebar.php'
) ../LoginTasks.php:80
6 1,2648 9220220 Horde_LoginTasks->_createTaskList(
'http://php5.wg.de:8888/headhorde/services/portal/sidebar.php'
) ../LoginTasks.php:106
7 1,2924 9445932 IMP_LoginTasks_SystemTask_GarbageCollection->execute(
) ../LoginTasks.php:221
8 1,3784 10430648 IMP_Imap_Tree::singleton( ) ../GarbageCollection.php:30
9 1,3784 10431304 IMP_Imap_Tree->__construct( ) ../Tree.php:227
( ! ) Notice: Undefined index: protocol in
/home/jan/horde-hatchery/imp/lib/Imap/Tree.php on line 435
Call Stack
# Time Memory Function Location
1 0,0514 126976 {main}( ) ../sidebar.php:0
2 1,0744 8571544 Horde_Block->buildTree( class Horde_Tree_javascript {
public $_source_name = 'n_horde_menu'; public $_options_name =
'o_horde_menu'; public $_target_name = 't_horde_menu'; public
$_instance = 'horde_menu'; public $_header = array (); public $_nodes
= array ('horde' => array ('label' => 'Horde', 'expanded' => FALSE,
'url' => '/headhorde/index.php', 'icon' =>
'/headhorde/themes/graphics/horde.png', 'icondir' => ''), 'imp' =>
array ('label' => 'Webmail', 'expanded' => FALSE, 'url' =>
'/headhorde/imp/', 'icon' => '/headhorde/imp/themes/graphics/imp.png',
'icondir' => '', 'children' => array (...)), 'ingo' => array ('label'
=> 'Filter', 'expanded' => FALSE, 'url' => '/headhorde/ingo/', 'icon'
=> '/headhorde/ingo/themes/graphics/ingo.png', 'icondir' => ''), 'sam'
=> array ('label' => 'Spam', 'expanded' => FALSE, 'url' =>
'/headhorde/sam/', 'icon' => '/headhorde/sam/themes/graphics/sam.png',
'icondir' => ''), 'forwards' => array ('label' => 'Weiterleitung',
'expanded' => FALSE, 'url' => '/headhorde/forwards/', 'icon' =>
'/headhorde/forwards/themes/graphics/forwards.png', 'icondir' => ''),
'vacation' => array ('label' => 'Abwesenheit', 'expanded' => FALSE,
'url' => '/headhorde/vacation/', 'icon' =>
'/headhorde/vacation/themes/graphics/vacation.png', 'icondir' => ''));
public $_root_nodes = array (0 => 'horde', 1 => 'imp'); public
$_extra_cols_left = 0; public $_extra_cols_right = 0; public $_options
= array ('lines' => TRUE, 'target' => 'horde_main'); public
$_sortCriteria = NULL; public $_usesession = TRUE; public $_static =
FALSE; public $_header_name = 'h_horde_menu' }, 0, 'imp'
) ../sidebar.php:227
3 1,0744 8571544 Horde_Registry->pushApp( 'imp', array ('logintasks'
=> FALSE) ) ../Block.php:193
4 1,2647 9220220 Horde_LoginTasks::singleton( 'imp',
'http://php5.wg.de:8888/headhorde/services/portal/sidebar.php'
) ../Registry.php:918
5 1,2647 9220220 Horde_LoginTasks->__construct( 'imp',
'http://php5.wg.de:8888/headhorde/services/portal/sidebar.php'
) ../LoginTasks.php:80
6 1,2648 9220220 Horde_LoginTasks->_createTaskList(
'http://php5.wg.de:8888/headhorde/services/portal/sidebar.php'
) ../LoginTasks.php:106
7 1,2924 9445932 IMP_LoginTasks_SystemTask_GarbageCollection->execute(
) ../LoginTasks.php:221
8 1,3784 10430648 IMP_Imap_Tree::singleton( ) ../GarbageCollection.php:30
9 1,3784 10431304 IMP_Imap_Tree->__construct( ) ../Tree.php:227
10 1,3798 10434968 IMP_Imap_Tree->init( ) ../Tree.php:252
( ! ) Notice: Undefined index: protocol in
/home/jan/horde-hatchery/imp/lib/Imap/Tree.php on line 455
Call Stack
# Time Memory Function Location
1 0,0514 126976 {main}( ) ../sidebar.php:0
2 1,0744 8571544 Horde_Block->buildTree( class Horde_Tree_javascript {
public $_source_name = 'n_horde_menu'; public $_options_name =
'o_horde_menu'; public $_target_name = 't_horde_menu'; public
$_instance = 'horde_menu'; public $_header = array (); public $_nodes
= array ('horde' => array ('label' => 'Horde', 'expanded' => FALSE,
'url' => '/headhorde/index.php', 'icon' =>
'/headhorde/themes/graphics/horde.png', 'icondir' => ''), 'imp' =>
array ('label' => 'Webmail', 'expanded' => FALSE, 'url' =>
'/headhorde/imp/', 'icon' => '/headhorde/imp/themes/graphics/imp.png',
'icondir' => '', 'children' => array (...)), 'ingo' => array ('label'
=> 'Filter', 'expanded' => FALSE, 'url' => '/headhorde/ingo/', 'icon'
=> '/headhorde/ingo/themes/graphics/ingo.png', 'icondir' => ''), 'sam'
=> array ('label' => 'Spam', 'expanded' => FALSE, 'url' =>
'/headhorde/sam/', 'icon' => '/headhorde/sam/themes/graphics/sam.png',
'icondir' => ''), 'forwards' => array ('label' => 'Weiterleitung',
'expanded' => FALSE, 'url' => '/headhorde/forwards/', 'icon' =>
'/headhorde/forwards/themes/graphics/forwards.png', 'icondir' => ''),
'vacation' => array ('label' => 'Abwesenheit', 'expanded' => FALSE,
'url' => '/headhorde/vacation/', 'icon' =>
'/headhorde/vacation/themes/graphics/vacation.png', 'icondir' => ''));
public $_root_nodes = array (0 => 'horde', 1 => 'imp'); public
$_extra_cols_left = 0; public $_extra_cols_right = 0; public $_options
= array ('lines' => TRUE, 'target' => 'horde_main'); public
$_sortCriteria = NULL; public $_usesession = TRUE; public $_static =
FALSE; public $_header_name = 'h_horde_menu' }, 0, 'imp'
) ../sidebar.php:227
3 1,0744 8571544 Horde_Registry->pushApp( 'imp', array ('logintasks'
=> FALSE) ) ../Block.php:193
4 1,2647 9220220 Horde_LoginTasks::singleton( 'imp',
'http://php5.wg.de:8888/headhorde/services/portal/sidebar.php'
) ../Registry.php:918
5 1,2647 9220220 Horde_LoginTasks->__construct( 'imp',
'http://php5.wg.de:8888/headhorde/services/portal/sidebar.php'
) ../LoginTasks.php:80
6 1,2648 9220220 Horde_LoginTasks->_createTaskList(
'http://php5.wg.de:8888/headhorde/services/portal/sidebar.php'
) ../LoginTasks.php:106
7 1,2924 9445932 IMP_LoginTasks_SystemTask_GarbageCollection->execute(
) ../LoginTasks.php:221
8 1,3784 10430648 IMP_Imap_Tree::singleton( ) ../GarbageCollection.php:30
9 1,3784 10431304 IMP_Imap_Tree->__construct( ) ../Tree.php:227
10 1,3798 10434968 IMP_Imap_Tree->init( ) ../Tree.php:252
( ! ) Notice: Undefined index: protocol in
/home/jan/horde-hatchery/imp/lib/Imap.php on line 330
Call Stack
# Time Memory Function Location
1 0,0514 126976 {main}( ) ../sidebar.php:0
2 1,0744 8571544 Horde_Block->buildTree( class Horde_Tree_javascript {
public $_source_name = 'n_horde_menu'; public $_options_name =
'o_horde_menu'; public $_target_name = 't_horde_menu'; public
$_instance = 'horde_menu'; public $_header = array (); public $_nodes
= array ('horde' => array ('label' => 'Horde', 'expanded' => FALSE,
'url' => '/headhorde/index.php', 'icon' =>
'/headhorde/themes/graphics/horde.png', 'icondir' => ''), 'imp' =>
array ('label' => 'Webmail', 'expanded' => FALSE, 'url' =>
'/headhorde/imp/', 'icon' => '/headhorde/imp/themes/graphics/imp.png',
'icondir' => '', 'children' => array (...)), 'ingo' => array ('label'
=> 'Filter', 'expanded' => FALSE, 'url' => '/headhorde/ingo/', 'icon'
=> '/headhorde/ingo/themes/graphics/ingo.png', 'icondir' => ''), 'sam'
=> array ('label' => 'Spam', 'expanded' => FALSE, 'url' =>
'/headhorde/sam/', 'icon' => '/headhorde/sam/themes/graphics/sam.png',
'icondir' => ''), 'forwards' => array ('label' => 'Weiterleitung',
'expanded' => FALSE, 'url' => '/headhorde/forwards/', 'icon' =>
'/headhorde/forwards/themes/graphics/forwards.png', 'icondir' => ''),
'vacation' => array ('label' => 'Abwesenheit', 'expanded' => FALSE,
'url' => '/headhorde/vacation/', 'icon' =>
'/headhorde/vacation/themes/graphics/vacation.png', 'icondir' => ''));
public $_root_nodes = array (0 => 'horde', 1 => 'imp'); public
$_extra_cols_left = 0; public $_extra_cols_right = 0; public $_options
= array ('lines' => TRUE, 'target' => 'horde_main'); public
$_sortCriteria = NULL; public $_usesession = TRUE; public $_static =
FALSE; public $_header_name = 'h_horde_menu' }, 0, 'imp'
) ../sidebar.php:227
3 1,0744 8571544 Horde_Registry->pushApp( 'imp', array ('logintasks'
=> FALSE) ) ../Block.php:193
4 1,2647 9220220 Horde_LoginTasks::singleton( 'imp',
'http://php5.wg.de:8888/headhorde/services/portal/sidebar.php'
) ../Registry.php:918
5 1,2647 9220220 Horde_LoginTasks->__construct( 'imp',
'http://php5.wg.de:8888/headhorde/services/portal/sidebar.php'
) ../LoginTasks.php:80
6 1,2648 9220220 Horde_LoginTasks->_createTaskList(
'http://php5.wg.de:8888/headhorde/services/portal/sidebar.php'
) ../LoginTasks.php:106
7 1,2924 9445932 IMP_LoginTasks_SystemTask_GarbageCollection->execute(
) ../LoginTasks.php:221
8 1,3784 10430648 IMP_Imap_Tree::singleton( ) ../GarbageCollection.php:30
9 1,3784 10431304 IMP_Imap_Tree->__construct( ) ../Tree.php:227
10 1,3798 10434968 IMP_Imap_Tree->init( ) ../Tree.php:252
11 1,3837 10437496 IMP_Imap_Tree->insert( array (0 => 'INBOX')
) ../Tree.php:485
12 1,3848 10458032 IMP_Imap_Tree->_getNamespace( 'INBOX' ) ../Tree.php:692
13 1,3849 10458032 IMP_Imap->getNamespace( 'INBOX' ) ../Tree.php:1477
( ! ) Fatal error: Call to a member function getNamespaces() on a
non-object in /home/jan/horde-hatchery/imp/lib/Imap.php on line 311
Call Stack
# Time Memory Function Location
1 0,0514 126976 {main}( ) ../sidebar.php:0
2 1,0744 8571544 Horde_Block->buildTree( class Horde_Tree_javascript {
public $_source_name = 'n_horde_menu'; public $_options_name =
'o_horde_menu'; public $_target_name = 't_horde_menu'; public
$_instance = 'horde_menu'; public $_header = array (); public $_nodes
= array ('horde' => array ('label' => 'Horde', 'expanded' => FALSE,
'url' => '/headhorde/index.php', 'icon' =>
'/headhorde/themes/graphics/horde.png', 'icondir' => ''), 'imp' =>
array ('label' => 'Webmail', 'expanded' => FALSE, 'url' =>
'/headhorde/imp/', 'icon' => '/headhorde/imp/themes/graphics/imp.png',
'icondir' => '', 'children' => array (...)), 'ingo' => array ('label'
=> 'Filter', 'expanded' => FALSE, 'url' => '/headhorde/ingo/', 'icon'
=> '/headhorde/ingo/themes/graphics/ingo.png', 'icondir' => ''), 'sam'
=> array ('label' => 'Spam', 'expanded' => FALSE, 'url' =>
'/headhorde/sam/', 'icon' => '/headhorde/sam/themes/graphics/sam.png',
'icondir' => ''), 'forwards' => array ('label' => 'Weiterleitung',
'expanded' => FALSE, 'url' => '/headhorde/forwards/', 'icon' =>
'/headhorde/forwards/themes/graphics/forwards.png', 'icondir' => ''),
'vacation' => array ('label' => 'Abwesenheit', 'expanded' => FALSE,
'url' => '/headhorde/vacation/', 'icon' =>
'/headhorde/vacation/themes/graphics/vacation.png', 'icondir' => ''));
public $_root_nodes = array (0 => 'horde', 1 => 'imp'); public
$_extra_cols_left = 0; public $_extra_cols_right = 0; public $_options
= array ('lines' => TRUE, 'target' => 'horde_main'); public
$_sortCriteria = NULL; public $_usesession = TRUE; public $_static =
FALSE; public $_header_name = 'h_horde_menu' }, 0, 'imp'
) ../sidebar.php:227
3 1,0744 8571544 Horde_Registry->pushApp( 'imp', array ('logintasks'
=> FALSE) ) ../Block.php:193
4 1,2647 9220220 Horde_LoginTasks::singleton( 'imp',
'http://php5.wg.de:8888/headhorde/services/portal/sidebar.php'
) ../Registry.php:918
5 1,2647 9220220 Horde_LoginTasks->__construct( 'imp',
'http://php5.wg.de:8888/headhorde/services/portal/sidebar.php'
) ../LoginTasks.php:80
6 1,2648 9220220 Horde_LoginTasks->_createTaskList(
'http://php5.wg.de:8888/headhorde/services/portal/sidebar.php'
) ../LoginTasks.php:106
7 1,2924 9445932 IMP_LoginTasks_SystemTask_GarbageCollection->execute(
) ../LoginTasks.php:221
8 1,3784 10430648 IMP_Imap_Tree::singleton( ) ../GarbageCollection.php:30
9 1,3784 10431304 IMP_Imap_Tree->__construct( ) ../Tree.php:227
10 1,3798 10434968 IMP_Imap_Tree->init( ) ../Tree.php:252
11 1,3837 10437496 IMP_Imap_Tree->insert( array (0 => 'INBOX')
) ../Tree.php:485
12 1,3848 10458032 IMP_Imap_Tree->_getNamespace( 'INBOX' ) ../Tree.php:692
13 1,3849 10458032 IMP_Imap->getNamespace( 'INBOX' ) ../Tree.php:1477
14 1,3862 10458680 IMP_Imap->getNamespaceList( ) ../Imap.php:334
tasks first. Namely, just run the system tasks as they are verified
and dont add them to the tasklist at all.
http://cvs.horde.org/diff.php/horde/services/logintasks.php?rt=horde&r1=1.11&r2=1.12&ty=u
State ⇒ Feedback
_createTaskList() first. Thus, when runTasks() is run on the init
page, the ready() call will automatically handle all those tasks.
However, when multiple apps were being scanned, the order the tasks
were being added in _createTaskList() were:
Horde - systemtasks
Horde - tasks
App - systemtasks
App - tasks
I've fixed _createTaskList() to store systemtasks and tasks
separately. When done scanning, we combine the arrays and systemtasks
are guaranteed to be first. Hopefully this fixes things.
http://lists.horde.org/archives/commits/2009-August/001581.html
Priority ⇒ 2. Medium
State ⇒ Assigned
Patch ⇒ No
Milestone ⇒
Assigned to Michael Slusarz
Summary ⇒ Skipping login tasks not working as expected
Type ⇒ Bug
Queue ⇒ Horde Framework Packages
found the following:
In LoginTasks::runTasks(), if setting 'runtasks' to false in the call
to LoginTasks_Tasklist::ready(), that method splits up system tasks
into $tmp and all other tasks into $this->_tasks.
Then, LoginTasks_Tasklist::needDisplay() still returns true, because
the $options hash is not considered there anymore.
Maybe the split-up in ready() is supposed differently, the
array_slice() call looks suspicious to me. Can we guarantee that
system tasks are always first in $this->_tasks?