#!/usr/bin/perl use CGI qw(:standard); use POSIX; use Calendar; @months = ("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"); $path = "/m3/webdocs/sigmachi/cal"; $query = new CGI(); $month = $query->param('month'); $year = $query->param('year'); $mode = $query->param('mode'); $type = $query->param('type'); if(!$type) { $type = 'g'; } if(!$mode) { $mode = 'view'; } if($mode eq 'logout') { $cookie = $query->cookie(-name=>'auth', -value=>'false'); print $query->header(-cookie=>$cookie); print ""; $mode = 'view'; } elsif($mode eq 'login') { $login = $query->param('login'); $rpwd = $query->param('pwd'); $pwd = crypt($rpwd,1); open(PWD, $path."/.pwd"); while() { ($user,$passwd) = split(':', $_); chomp($passwd); # print "$login,$user,$pwd,$passwd"; if($user eq $login) { # print "user eq login"; if($passwd eq $pwd) { # print "passwd eq pwd"; $good = 1; $cookie = $query->cookie(-name=>'auth', -value=>'true'); print $query->header(-cookie=>$cookie); break; } } } if(!$good) { # print header; # print start_html; # print "$user,$login,$rpwd,$passwd,$pwd"; # print end_html; print $query->redirect("http://www.csuchico.edu/sigmachi/cal/calendar.pl?year=$year&month=$month&mode=edit"); exit; } $mode = 'edit'; } elsif($mode eq 'edit') { $auth = $query->cookie('auth'); if(!$auth || $auth eq 'false') { print header; print start_html(-bgcolor=>'#000080', -text=>'#FFCC00'); print < function cancel() { document.myform.mode.value = 'view'; } EOF print start_form(-name=>'myform'); print table({-border=>0, -align=>CENTER}, caption(strong('Password required to modify calendar')), Tr({-align=>CENTER,-valign=>TOP}, [ th('Login').td([textfield(-name=>'login', -focus=>'on')]), th('Password').td([password_field(-name=>'pwd')]), td([submit(-name=>'Login')]).td([submit(-name=>'Cancel', -onclick=>'cancel();')]) ] ) ); print "\n"; print "\n"; print "\n"; #print submit(-name=>'Login', -align=>CENTER); print end_html; exit; } print header; print ""; } elsif($mode eq 'view' || $mode eq 'print') { print header; print ""; } # # MAIN CODE # ($sec,$min,$hour,$mday,$curMonth,$curYear,$firstDay,$yday) = gmtime(); if(!$month) { $month = $curMonth; $realMonth = $month + 1; } else { $realMonth = $month; } if(!$year) { $year = $curYear; $realYear = $year + 1900; } else { $realYear = $year; } # draw the calendar $cal = new Calendar($realYear, $realMonth, $mode, $type, "#EDF5B4", "#000080"); $cal->printHTML();