Module reahl.systemaccountmodel

A collection of classes to deal with accounts for different parties on a system.


class reahl.systemaccountmodel.AccountManagementInterface(**kwargs)

A session scoped object that @exposes a number of Fields and Events that user interface Widgets can use to access the functionality of this module.

Obtain an instance of AccountManagementInterface using AccountManagementInterface.for_current_session().

@exposed fields:

  • email: For input of any email address for use by Events.
  • new_email: For choosing a new email address (see events.change_email_event)
  • password: For typing a password for use by several Events.
  • repeat_password: For confirming a that fields.password was typed correctly.
  • stay_logged_in: Used when logging in to indicate that the user wishes to stay logged in for longer before the login times out.
  • secret: The secret key sent via email to verify the user’s identity.
  • accept_terms: Used when registering to indicate whether the user accepts the terms of the application.

@exposed events:

  • verify_event = Ask the system to verify the address entered.
  • register_event = Register a new account.
  • change_email_event = Requests a given email address to be changed.
  • investigate_event = Investigates whether a given email address is registered.
  • choose_password_event = Selects a new password given in fields.new_password (fields.secret should also be supplied).
  • reset_password_event = Requests that a password change be initiated (this will send a secret key to the current registered email).
  • login_event = Logs into the system using and fields.password
  • resend_event = Resends a secret of an outstanding request (to
  • log_out_event = Logs out the current account.


class reahl.systemaccountmodel.UserSession(**kwargs)

An implementation of reahl.interfaces.UserSessionProtocol of the Reahl framework.


class reahl.systemaccountmodel.SystemAccount(**kwargs)

The credentials for someone to be able to log into the system.

party = Property(party, <class 'reahl.systemaccountmodel.SystemAccount'>)

The party tho whom this account belongs.

registration_date = Property(registration_date, <class 'reahl.systemaccountmodel.SystemAccount'>)

The date when this account was first registered.

account_enabled = Property(account_enabled, <class 'reahl.systemaccountmodel.SystemAccount'>)

Whether this account is enabled or not

failed_logins = Property(failed_logins, <class 'reahl.systemaccountmodel.SystemAccount'>)

The number of failed loin attempts using this account.


class reahl.systemaccountmodel.EmailAndPasswordSystemAccount(**kwargs)

An EmailAndPasswordSystemAccount used an email address to identify the account uniquely, and uses a password to authenticate login attempts.


exception reahl.systemaccountmodel.PasswordException(commit=False)

Whenever a new password is chosen, it is input by a user into two separate fields to guard against typing errors. PasswordException is raised to indicate that the two PasswordFields do not match.


exception reahl.systemaccountmodel.InvalidPasswordException(commit=False)

Raised to indicate that a user supplied incorrect password or username.


exception reahl.systemaccountmodel.KeyException(commit=False)

Raised to indicate that the secret key given is not valid.


exception reahl.systemaccountmodel.InvalidEmailException(commit=False)

Raised to indicate that the given email address is not valid.


exception reahl.systemaccountmodel.NoSuchAccountException(commit=False)

Raised to indicate that the account relating to a supplied email address does not exist.


exception reahl.systemaccountmodel.NotUniqueException(commit=False)

Raised to indicate that an email address supplied for a new registration already is in use on the system.


exception reahl.systemaccountmodel.AccountNotActiveException(account_status)

Raised to indicate that the account related to the given email address is not active yet.