'A list of effective principals derived from request.
This will return a list of principals including, at least,
:data:`pyramid.security.Everyone`. If there is no authenticated
userid, or the ``callback`` returns ``None``, this will be the
only principal:
.. code-block:: python
return [Everyone]
If the ``callback`` does not return ``None`` and an authenticated
userid is found, then the principals will include
:data:`pyramid.security.Authenticated`, the ``authenticated_userid``
and the list of principals returned by the ``callback``:
.. code-block:: python
extra_principals = callback(userid, request)
return [Everyone, Authenticated, userid] + extra_principals'

def effective_principals(self, request):

    debug = self.debug
    effective_principals = [Everyone]
    userid = self.unauthenticated_userid(request)
    if (userid is None):
        (debug and self._log(('unauthenticated_userid    returned    %r;    returning    %r' % (userid, effective_principals)), 'effective_principals', request))
        return effective_principals
    if (self._clean_principal(userid) is None):
        (debug and self._log(('unauthenticated_userid    returned    disallowed    %r;    returning    %r    as    if    it    was    None' % (userid, effective_principals)), 'effective_principals', request))
        return effective_principals
    if (self.callback is None):
        (debug and self._log('groupfinder    callback    is    None,    so    groups    is    []', 'effective_principals', request))
        groups = []
    else:
        groups = self.callback(userid, request)
        (debug and self._log(('groupfinder    callback    returned    %r    as    groups' % (groups,)), 'effective_principals', request))
    if (groups is None):
        (debug and self._log(('returning    effective    principals:    %r' % (effective_principals,)), 'effective_principals', request))
        return effective_principals
    effective_principals.append(Authenticated)
    effective_principals.append(userid)
    effective_principals.extend(groups)
    (debug and self._log(('returning    effective    principals:    %r' % (effective_principals,)), 'effective_principals', request))
    return effective_principals
