Name

Bric::App::Session - A class to handle user sessions

Synopsis

use Bric::App::Session;

#- Methods called from the apache perl handler -#

setup_user_session($r);

sync_user_session();

#- Methods called from widgets -#

[$new_state_name, $new_state_data] = init_state($widget, $state, $data);

$state_name = state_name($widget, $name);

$state_data = state_data($widget, ($data_hash || $name, $value));

[$state_name, $state_data] = state($widget, $state_name, $state_data);

Description

This module provides all the necessary functions for maintaining state within widgets. This includes setting a global state variable $session as well as accessor methods for setting the state name of a widget and state data of a widget.

Interface

Public Class Methods

instance()

Return a reference to the %session hash so that other parts of the API can get the current session without using %HTML::Mason::Commands::session directly.

Throws:

NONE

Side Effects:

NONE

Notes:

NONE

#------------------------------------------------------------------------------#

Functions

setup_user_session($r)

This function takes an Apache request object and sets up the persistent user session hash. This hash is tied to an Apache::Session::File object.

Throws:

Side Effects:

Notes:

NONE

sync_user_session()

Synchronizes changes to the user session back to the file system.

Throws:

Side Effects:

Notes:

NONE

expire_session()

Expires the user session, deleting it from the disk.

Throws:

Side Effects:

Notes:

NONE

[$new_state_name, $new_state_data] = init_state($widget, $state, $data)
$cur_name = init_state_name($widget, $name);
$cur_val = init_state_data($widget, $name, $value);
$key_val = reset_state($widget, $reset_key);

If a widget has not yet been called and this function is called, it will set some default values for that widgets state name and state data.

Throws:

NONE

Side Effects:

Notes:

NONE

$state_name = set_state_name($widget, $name)
$state_name = get_state_name($widget)

Set or get the current widget state name. A state name cannot be set to undef since it is bad style to rely on a state that you do not set explicitly. If you want to clear the state entirely, use clear_state.

Throws:

NONE

Side Effects:

Notes:

NONE

$state_data = set_state_data($widget, ($data_hash || $name, $value))
$state_data = get_state_data($widget, $name)

Get or set the state data. The set function takes either a hash or a key/value. Given a hash the set function will overwrite the state data. Given a key/value pair, it will set that key in the state data to that value.

The get function will return the whole state data hash if given just a widget. If passed a name it will return the value for the state data with that name.

Throws:

NONE

Side Effects:

Notes:

NONE

[$state_name, $state_data] = set_state($widget, $state_name, $state_data)
[$state_name, $state_data] = get_state($widget)

The set function takes a widget name, $widget, a state name, $state_name, and a hash ref, $state_data, containing state data. Both $state_name and $state_data are optional. If $state_name is undef, the state name will not be set, but if it does have a value it will be used to update the widget $widget state name. The same holds true for $state_data; undef will leave the state data untouched while a hash value will be used to overwrite the state data.

The get function returns both the state name and the state data..

Throws:

NONE

Side Effects:

Notes:

NONE

clear_state($widget)

Completely clears the state information for the given widget.

Throws:

NONE

Side Effects:

Notes:

NONE

(0 || 1) = set_user($user);
($login || undef) = get_user_login;
($uid || undef) = get_user_id;
($user || undef) = get_user_object;

Get/set logged in user information.

Throws: NONE

Side Effects:

Notes: NONE

Notes

NONE

Author

Garth Webb <garth@perijove.com>

See Also

perl, Bric, Apache::Session::File