--- loncom/auth/lonroles.pm 2004/02/19 21:45:22 1.86
+++ loncom/auth/lonroles.pm 2004/05/09 00:45:00 1.91
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# User Roles Screen
#
-# $Id: lonroles.pm,v 1.86 2004/02/19 21:45:22 albertel Exp $
+# $Id: lonroles.pm,v 1.91 2004/05/09 00:45:00 www Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -109,12 +109,61 @@ sub handler {
# check for keyed access
if (($role eq 'st') &&
($ENV{'course.'.$cdom.'_'.$cnum.'.keyaccess'} eq 'yes')) {
- unless (&Apache::lonnet::validate_access_key(
+# who is key authority?
+ my $authdom=$cdom;
+ my $authnum=$cnum;
+ if ($ENV{'course.'.$cdom.'_'.$cnum.'.keyauth'}) {
+ ($authnum,$authdom)=
+ split(/\W/,$ENV{'course.'.$cdom.'_'.$cnum.'.keyauth'});
+ }
+# check with key authority
+ unless (&Apache::lonnet::validate_access_key(
$ENV{'environment.key.'.$cdom.'_'.$cnum},
- $cdom,$cnum)) {
+ $authdom,$authnum)) {
# there is no valid key
if ($ENV{'form.newkey'}) {
# student attempts to register a new key
+ &Apache::loncommon::content_type($r,'text/html');
+ &Apache::loncommon::no_cache($r);
+ $r->send_http_header;
+ my $swinfo=&Apache::lonmenu::rawconfig();
+ my $bodytag=&Apache::loncommon::bodytag
+ ('Verifying Access Key to Unlock this Course');
+ my $buttontext=&mt('Enter Course');
+ my $message=&mt('Successfully registered key');
+ my $assignresult=
+ &Apache::lonnet::assign_access_key(
+ $ENV{'form.newkey'},
+ $authdom,$authnum,
+ $cdom,$cnum,
+ $ENV{'user.domain'},
+ $ENV{'user.name'},
+ 'Assigned from '.$ENV{'REMOTE_ADDR'}.' at '.localtime().' for '.
+ $trolecode);
+ unless ($assignresult eq 'ok') {
+ $assignresult=~s/^error\:\s*//;
+ $message=&mt($assignresult).
+ '
'.
+ &mt('Logout').'';
+ $buttontext=&mt('Re-Enter Key');
+ }
+ $r->print(<Verifying Course Access Key
+
+
+$bodytag
+
+
+