#!/usr/bin/perl -wT # main.cgi use strict; use CGI qw(:standard); use CGI::Carp qw(fatalsToBrowser); use DBI; require "./shared.pl" or die "Can't find file. $!\n"; my $user = Check_Cookie(); my $dbh = DB_Connect(); my $group = Get_Group($user); my $action = param('action'); my $file = param('file'); my $out_to = param('out_to'); my %files; my @groups = qw(PEON USER PHB BOFH); foreach (@groups){ $files{$_} = Get_Files($_); last if($group eq "$_"); } Display_Page(); sub Get_Files{ my $group = shift; my @temp; my $sth = $dbh->prepare( qq{ SELECT * FROM dms_files WHERE group_id = ? } ); $sth->execute($group); while(my $ptr = $sth->fetchrow_hashref){ push @temp, $ptr; } return \@temp; } sub Check_Status{ my ($who_to, $date_out, $file_id) = @_; my $data; return unless($who_to); my $sth = $dbh->prepare( qq{ SELECT phone, e_mail FROM dms_users WHERE username = ? } ); $sth->execute($who_to); my $ptr = $sth->fetch; if($who_to eq $user){ $data = "Checked Out: "; $data .= "Check in
"; } else{ $data = "Checked Out To: "; $data .= "$who_to "; $data .= "- Phone: $ptr->[0]
"; } return($data); } sub Display_Page{ print header; print< Document Management System

Simple Document Management System

Welcome $user!
HTML foreach my $grp (keys %files){ next unless(@{$files{$grp}}); print qq(

$grp Area
\n ); foreach my $ptr (@{$files{$grp}}){ my $fname; my $checked_out = Check_Status($ptr->{who_to}, $ptr->{out_date}, $ptr->{file_id}); print qq(
); print qq( Filename: ); $fname = qq(); $fname .= qq($ptr->{filename}); unless($checked_out){ $fname .= qq( [); $fname .= qq(Check Out]); } print qq( $fname
); print qq( Description: $ptr->{description}
); print qq( $checked_out ); print qq(
); } } print<

Add New Document
Logout
HTML }