--- loncom/interface/lonmanagekeys.pm 2003/04/22 21:00:42 1.2
+++ loncom/interface/lonmanagekeys.pm 2003/05/01 02:12:43 1.6
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Handler to manage course access keys
#
-# $Id: lonmanagekeys.pm,v 1.2 2003/04/22 21:00:42 www Exp $
+# $Id: lonmanagekeys.pm,v 1.6 2003/05/01 02:12:43 www Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -54,7 +54,18 @@ ENDHEAD
# =================================================== Show student list to drop
sub show_key_list {
- my ($r,$mode,$linkto,$action,$statusmode,$classlist,$keylist)=@_;
+ my ($r,$comment,%cenv)=@_;
+
+ my %accesskeys=&Apache::lonnet::dump
+ ('accesskeys',$cenv{'domain'},$cenv{'num'});
+ foreach (keys %accesskeys) {
+ $r->print($_.' '.$accesskeys{$_}.'
');
+ }
+ return '';
+#
+# Junk below
+#
+ my ($mode,$linkto,$action,$statusmode,$classlist,$keylist);
#
# Just junk so that this compiles
#
@@ -122,14 +133,33 @@ sub togglekeyaccess {
my %cenv=@_;
unless ($cenv{'domain'}) { return; }
if ($cenv{'keyaccess'} eq 'yes') {
+ return 'Removing key access: '.
&Apache::lonnet::del('environment',['keyaccess'],
$cenv{'domain'},$cenv{'num'});
} else {
+ return 'Establishing key access: '.
&Apache::lonnet::put('environment',{'keyaccess' => 'yes'},
$cenv{'domain'},$cenv{'num'});
}
}
+# --------------------------------------------------------------- Generate Keys
+
+sub genkeys {
+ my ($num,$comments,%cenv)=@_;
+ unless ($comments) { $comments=''; }
+ $comments=~s/\#/ /g;
+ $comments=~s/\;/ /g;
+ unless ($num) { return 'No number of keys given.'; }
+ unless (($num=~/^\d+$/) && ($num>0)) {
+ return 'Invalid number of keys given.';
+ }
+ my $batchnumber='BATCH_'.time().'_'.$$;
+ return 'Generated '.&Apache::lonnet::generate_access_keys
+ ($num,$cenv{'domain'},$cenv{'num'},$batchnumber.'; '.$comments).' of '.
+ $num.' access keys (Batch Number: '.$batchnumber.')',$batchnumber;
+}
+
###################################################################
###################################################################
sub handler {
@@ -151,37 +181,56 @@ sub handler {
return HTTP_NOT_ACCEPTABLE;
}
if ($ENV{'form.cid'}) {
- #
- # Only output the header information if they did not request csv format
- #
+ my %cenv=&Apache::lonnet::coursedescription($ENV{'form.cid'});
if (exists($ENV{'form.state'}) && ($ENV{'form.state'} eq 'csv')) {
+#
+# CSV Output
+#
$r->content_type('text/csv');
+#
+# Do CSV
+#
} else {
- # Start page
+#
+# Normal web stuff
+#
$r->content_type('text/html');
$r->send_http_header;
$r->print(&header());
- }
- $r->print('');
- my %cenv=&Apache::lonnet::coursedescription($ENV{'form.cid'});
- if ($ENV{'form.toggle'}) {
- &togglekeyaccess(%cenv);
- %cenv=&Apache::lonnet::coursedescription($ENV{'form.cid'});
- }
- if ($cenv{'keyaccess'} eq 'yes') {
- $r->print('Access to this course is key controlled. ')
- } else {
- $r->print('Access to this course is open, no access keys. ');
- }
- $r->print('