The block's configuration page doesn't indicate any special visibility at all. Nothing for specific roles. Nothing in "Page specific visibility settings". Nothing in the "Show on every page except the listed pages" box. How does drupal know not to show it?

Comments

heine’s picture

If a hook_block implementation doesn't return 'content', then a block is not shown.

        // For usability's sake, avoid showing two login forms on one page.
        if (!$user->uid && !(arg(0) == 'user' && !is_numeric(arg(1)))) {

          $block['subject'] = t('User login');
          $block['content'] = drupal_get_form('user_login_block');
        }
        return $block;
work77’s picture

That clears it up! Thanks.

dnewkerk’s picture

It's a special block from Drupal core and its custom behavior is from code in core. It doesn't show after logging in because once a user has logged in, continuing to show a form for logging in has no purpose. If you'd like to make a log out block in its place, make a custom block with a link to /logout and have it show only to certain roles.