');
+ $r->print('');
+ return '';
+#
+# Junk below
+#
+ my ($mode,$linkto,$action,$statusmode,$classlist,$keylist);
#
# Just junk so that this compiles
#
@@ -122,14 +150,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 +198,59 @@ 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('');
-#
-# do stuff here.
-#
- if (exists($ENV{'form.state'}) && ($ENV{'form.state'} eq 'csv')) {
- $r->print("\n");
- } else {
+ $r->print(
+ '');
+# --- Actions
+ if ($ENV{'form.toggle'}) {
+ $r->print(&togglekeyaccess(%cenv).' ');
+ %cenv=&Apache::lonnet::coursedescription($ENV{'form.cid'});
+ }
+ my $batchnumber='';
+ if ($ENV{'form.genkeys'}) {
+ (my $msg,$batchnumber)=
+ &genkeys($ENV{'form.num'},$ENV{'form.comments'},%cenv);
+ $r->print($msg.' ');
+ }
+ if ($ENV{'form.listkeys'}) {
+ &show_key_list($r,$ENV{'form.listcom'},
+ $ENV{'form.newonly'},$ENV{'form.checkonly'},%cenv);
+ }
+# --- Menu
+ $r->print('
Key Access
');
+ 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(<
Generate New Keys
+Number of keys to be generated:
+Comments/Remarks/Notes:
+
+
List Keys
+Comments/Remarks/Notes/User/Batch Number:
+
+ Unused keys only
+ Used keys only
+
+ENDKEYMENU
$r->print('