sub _ipAuth { ## ## authenticate by the visitors IP address ## return 0; } ########################################################### sub _loadProfile { ## ## load the user profile for a given user id ## my $self = shift; my ($userid, $user_info) = @_; # store some dummy values $self->{userid} = $userid; $self->{profile}{username} = 'guest'; $self->{profile}{user_info} = $user_info; } ########################################################### sub saveProfile { ## ## save probably modified user profile ## } ########################################################### sub isGroupMember { ## ## check if user is in given group ## # abstract class w/o group functions, for real applications use a subclass return 0; } ########################################################### ### ### internal methods ### ########################################################### ########################################################### sub _debug { ## ## log debug message ## my $self = shift; $self->{logger}->debug(@_) if $self->{logger}; } ########################################################### sub _info { ## ## log info message ## my $self = shift; $self->{logger}->info(@_) if $self->{logger}; } ########################################################### sub _session { ## ## get reference on CGI::Session object ## my $self = shift; return $self->{session}; } ########################################################### sub _cgi { ## ## get reference on CGI object ## my $self = shift; return $self->{cgi}; } ########################################################### sub _encpw { ## ## encrypt password ## my ($self, $password) = @_; return md5_hex($password); } ########################################################### sub _loggedIn { ## ## accessor to internal logged-in flag and session parameter ## my $self = shift; if (@_) { # set internal flag if ($self->{logged_in} = shift) { # set session parameter $self->_session->param("~logged-in", 1); } else { # clear session parameter $self->_session->clear(["~logged-in"]); } $self->_debug("(re)set logged_in: ", $self->{logged_in}); } # return internal flag return $self->{logged_in}; } ########################################################### sub _url { my $self = shift; return $self->{url}; }