Documentation versions

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 the user with the system.

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.

is_active()

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

is_secured()

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

New in version 3.1.

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.

get_interface_locale()

Answers a string identifying the currently selected locale.

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.

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).

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.

classmethod get_previously_entered_for_form(form, input_name)

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

classmethod save_input_value_for_form(form, input_name, value)

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

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.

classmethod get_exception_for_form(form)

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

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.

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.

file_obj

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

classmethod clear_for_form(form)

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

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.

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.

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.

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.

Documentation versions