'Complete successful authentication.
Save the mailbox and logout function for the authenticated user and
send a successful response to the client.
@type result: C{tuple}
@param interface_avatar_logout: The first item of the tuple is a
C{zope.interface.Interface} which is the interface
supported by the avatar.  The second item of the tuple is a
L{IMailbox} provider which is the mailbox for the
authenticated user.  The third item of the tuple is a no-argument
callable which is a function to be invoked when the session is
terminated.
@type user: L{bytes}
@param user: The user being authenticated.'

def _cbMailbox(self, result, user):

    (interface, avatar, logout) = result
    if (interface is not IMailbox):
        self.failResponse('Authentication    failed')
        log.err('_cbMailbox()    called    with    an    interface    other    than    IMailbox')
        return
    self.mbox = avatar
    self._onLogout = logout
    self.successResponse('Authentication    succeeded')
    if getattr(self.factory, 'noisy', True):
        log.msg(('Authenticated    login    for    ' + user))
