Go to the latest version of this document.

# ``twisted`.`cred`.`portal`.`IRealm``

interface documentation

`class IRealm(Interface): (source)`

Known subclasses: `twisted.mail.interfaces.IDomain`

Known implementations: `twisted.conch.unix.UnixSSHRealm`, `twisted.mail.mail.MailService`, `twisted.mail.maildir.MaildirDirdbmDomain`, `twisted.protocols.ftp.BaseFTPRealm`, `twisted.words.service.WordsRealm`, `twisted.conch.manhole_tap._StupidRealm`

View In Hierarchy

The realm connects application-specific objects to the authentication system.

Method | `requestAvatar` | Return avatar which provides one of the given interfaces.

def requestAvatar(avatarId: `bytes | tuple[]`, mind: `object`, *interfaces: `_InterfaceItself`) -> `Deferred[_requestResult] | _requestResult`: (source)

Return avatar which provides one of the given interfaces.

Parameters
avatarId:`bytes | tuple[]` | a string that identifies an avatar, as returned by `ICredentialsChecker.requestAvatarId` (via a Deferred). Alternatively, it may be `twisted.cred.checkers.ANONYMOUS`.
mind:`object` | usually None. See the description of mind in `Portal.login`.
*interfaces:`_InterfaceItself` | the interface(s) the returned avatar should implement, e.g. `IMailAccount`. See the description of `Portal.login`.

Returns
`Deferred[_requestResult] | _requestResult` | a deferred which will fire a tuple of (interface, avatarAspect, logout), or the tuple itself. The interface will be one of the interfaces passed in the 'interfaces' argument. The 'avatarAspect' will implement that interface. The 'logout' object is a callable which will detach the mind from the avatar.