Module reahl.web.interfaces

The interfaces for persisted classes that are needed by the core Reahl framework. Different implementations of the framework can be provided by implementing these.

UserSessionProtocol

class reahl.web.interfaces.UserSessionProtocol

A UserSession represents a potentially lengthy interaction of a particular user with the system.

abstract classmethod for_current_session()

Returns a UserSession instance for the current user. If no UserSession is present for the current interaction yet this method should create one. If a UserSession does exist for the current interaction, this method returns the correct UserSession.

abstract is_active()

Answers whether the session is still usable (instead of being expired due to inactivity).

abstract is_secured()

Answers whether the interaction is currently done via a secure channel where applicable.

New in version 3.1.

abstract set_last_activity_time()

Sets a timestamp on the UserSession to indicate when the last activity was detected relating to this interaction. UserSessions typically expire automatically if no activity is detected after some time.

abstract get_interface_locale()

Answers a string identifying the currently selected locale.

abstract classmethod get_or_create_session()

Returns a session, creating a new one if none can be determined. If one can be determined from the browser, that session is returned.

abstract set_session_key(response)

Called at the end of a request loop to enable an implementation to save some identifying information to the response (such as setting a cookie with the ID of the current session).

abstract classmethod initialise_web_session_on(context)

Fetch/create a new UserSession or do any initialisation or reinitialisation needed on it and set it on the given context as its .session attribute.

Called at the beginning of a request or after an abort during the request (which may require reinitialisation of the session so it may still be used after the abort).

UserInputProtocol

class reahl.web.interfaces.UserInputProtocol

User input, typed as strings on a form is persisted using this class, for the current user’s session for use in a subsequent request. Used via web.persisted_userinput_class.

abstract classmethod get_previously_entered_for_form(form, input_name, entered_input_type)

Returns the user input associated with the given reahl.web.ui.Form, as previously saved using input_name as name.

Changed in version 4.0: Added entered_input_type

abstract classmethod save_input_value_for_form(form, input_name, value, entered_input_type)

Persists value as the value of the user input associated with the given reahl.web.ui.Form, using input_name as name.

Changed in version 4.0: Added entered_input_type

abstract classmethod get_persisted_for_view(view, key, value_type)

Returns the value associated with the given reahl.web.ui.UrlBoundView, as previously saved using key.

New in version 5.0.

abstract classmethod add_persisted_for_view(view, key, value, value_type)

Persists value associated with the given reahl.web.ui.UrlBoundView, to be retrieved using key.

New in version 5.0.

abstract classmethod remove_persisted_for_view(view, key)

Removes previously persisted value with the given reahl.web.ui.UrlBoundView, as previously saved using key

New in version 5.0.

PersistedExceptionProtocol

class reahl.web.interfaces.PersistedExceptionProtocol

When a reahl.component.exceptions.DomainException happens during Form submission, the exception is persisted using this class, for the current user’s session for use in a subsequent request. Used via web.persisted_exception_class.

abstract classmethod clear_for_form_except_inputs(form)

Clears the exception associated with this form, while leaving exeptions for invididual inputs intact.

New in version 5.0.

abstract classmethod save_exception_for_form(form, **kwargs)

Saves a an exception for the given reahl.web.ui.Form.

New in version 5.0.

abstract classmethod get_exception_for_form(form)

Retrieves an exception previously saved for the given reahl.web.ui.Form, or None if not found.

abstract classmethod get_exception_for_input(form, input_name)

Retrieves an exception previously saved for the given reahl.web.ui.Form and input_name or None if not found.

abstract classmethod clear_for_all_inputs(form)

Removes all saved Exceptions associated with the given reahl.web.ui.Form.

PersistedFileProtocol

class reahl.web.interfaces.PersistedFileProtocol

When a file is uploaded, file is persisted using this class, for the current user’s session for use in a subsequent request. Used via web.persisted_file_class.

abstract property file_obj

Returns an object with traditional .read and .seek methods which can be used to read the contents of the persisted file.

abstract classmethod clear_for_form(form)

Removes all files previously saved for the given reahl.web.ui.Form.

abstract classmethod get_persisted_for_form(form, input_name)

Returns the previously persisted file for the given reahl.web.ui.Form, using the given input_name as name.

abstract classmethod add_persisted_for_form(form, input_name, uploaded_file)

Saves the given uploaded_file (a cgi.FileStorage) using the given input_name for the given reahl.web.ui.Form.

abstract classmethod remove_persisted_for_form(form, input_name, filename)

Removes previously persisted file with name filename, as saved for the given reahl.web.ui.Form and input_name.

abstract classmethod is_uploaded_for_form(form, input_name, filename)

Answers whether a file with name filename has previously been saved for the given reahl.web.ui.Form and input_name.