login($cgi, $ar, $tmout)

Input variables:

$cgi - CGI object
$ar  - parameter array ref
$tmout - whether the session has been timed out

Variables used or routines called:

to_remember - to remember inputs
check_user  - to check user logins
set_cookies - to set cookies

How to use:

my $q = new CGI;
$self->login($q, 'jsmith', 'jojo');     # login as jsmith
my %cfg = (usr=>'jsmith', pwd=>'jojo');
$self->login($q, \%cfg, 0);                # login as jsmith

Return: ($toc, $txt): the login screen HTML code

get_version ($cgi, $ar, $sub)

Input variables:

$cgi - CGI object
$ar  - Array ref containing all the parameters
$sub - sub procedure name.
       display user first name if it is 'login'

Variables used or routines called:

None.

How to use:

my $q = new CGI;
my %cfg = (usr=>'jsmith', pwd=>'jojo');
my @names = $q->param;
foreach my $k (@names) { $cfg{$k} = $q->param($k) if ! exists $cfg{$k}; }
$self->get_version($q, \%cfg);

Return: $t - HTML code

This method forms HTML code to show demorgraphic information about the subject.

check_timeout($cgi, $ar)

Input variables:

$cgi - CGI object
$ar  - Array ref containing all the parameters

Variables used or routines called:

None.

How to use:

my $q = new CGI;
my %cfg = (usr=>'jsmith', pwd=>'jojo');
my @names = $q->param;
foreach my $k (@names) { $cfg{$k} = $q->param($k) if ! exists $cfg{$k}; }
$self->check_timeout($q, \%cfg);

Return: 1 or 0: 1 - timed out; 0 - not timed out

This method checks to see if the session has been timed out. The default time out is 20 minutes.

get_access ($cgi,$ar)

Input variables:

$cgi - CGI object
$ar  - Array ref containing all the parameters

Variables used or routines called:

None

How to use:

my $q = new CGI;
my %cfg = (usr=>'jsmith', pwd=>'jojo');
my @names = $q->param;
foreach my $k (@names) { $cfg{$k} = $q->param($k) if ! exists $cfg{$k}; }
$self->get_access($q, \%cfg);

Return: $hr - access hash array ref: ${$hr}{uid|gid}{$name} = $uid|$giu

This method retrieves portal access user and group files and access_users and access_groups in the configuration file to build an access list.

check_user ($cgi,$ar)

Input variables:

$cgi - CGI object
$ar  - Array ref containing all the parameters

Variables used or routines called:

disp_param  - display parameters
get_cookies - get cookies
get_access  - get access information

How to use:

my $q = new CGI;
my %cfg = (usr=>'jsmith', pwd=>'jojo');
my @names = $q->param;
foreach my $k (@names) { $cfg{$k} = $q->param($k) if ! exists $cfg{$k}; }
$self->check_user($q, \%cfg);

Return: $n - status code

0 - no user name from input nor from cookie
1 - user name does not exists
2 - user does not belong to any group which has granted access
>9 - user has access to the application

A successful user authentication includes: 1) the user has to be a valid web portal user; 2) user's password matches 3) user has to be a authorized user or in an authorized group to use this application. The autorization parameters are access_users and access_groups in the configuration file.