Labyrinth::Session - Session Management for Labyrinth.
use Labyrinth::Session; Login($username,$password); my $logged_in = 1 if(my $user = ValidSession());
Provides the session management functionality, including Login & Logout functions, to maintain a user's access to the system.
Handles login capabilities, including bad logins.
Handles logout capabilities.
Reloads an existing session, or creates a new one.
Stores the current request, while the user logs in. (A simple form of continuations)
Retrieves the last request, if the user has logged in. (A simple form of continuations) If the user is already login will set according to their realm.
Verifies the user has authorisation to the requested level. If userid is omitted, the current user is assumed.
Returns the folders the user (and associated groups) has access to.
Looks up the user's authorisation level, based on their user id and any groups they belong to.
Given a username and password checks the database to ensure that the user exists. Note that this uses both SHA1 (new encryption) and OLD_PASSWORD (old encyription) to find the user. The latter is preserved for older implementations.
Convienence function to load all folders when required.
Returns the list of folders for the given leaf folder.
Returns true or false as to whether the given user has access to the specified folder. If no folder is given the default 'public' folder is used. If no user is given the currently logged in user is used.
Returns the list of groups the given user has access to.
Within the current session, this function allows the user to change the language associated within the system.
Currently this language element is under used, and could be used for error and message strings pulled from a phrasebook.
Updates specific fields for the current session.
In addition to the above functions, the Session Management also allows for an object interface.
Barbie, <firstname.lastname@example.org> for Miss Barbell Productions, http://www.missbarbell.co.uk/
Copyright (C) 2002-2014 Barbie for Miss Barbell Productions All Rights Reserved. This module is free software; you can redistribute it and/or modify it under the Artistic License 2.0.