[LON-CAPA-cvs] cvs: loncom /lonnet/perl lonnet.pm
matthew
lon-capa-cvs@mail.lon-capa.org
Mon, 14 Oct 2002 15:33:26 -0000
matthew Mon Oct 14 11:33:26 2002 EDT
Modified files:
/loncom/lonnet/perl lonnet.pm
Log:
Added function &modify_student_enrollment which handles strictly the
enrollment aspect of adding a student. Fixed bone-headed error of
calling 'dump' instead of 'get' and being puzzled by the results.
Fixed another bone-headed error in using 'genename' instead of 'generation'.
Updated POD to (somewhat) reflect the new function.
Index: loncom/lonnet/perl/lonnet.pm
diff -u loncom/lonnet/perl/lonnet.pm:1.296 loncom/lonnet/perl/lonnet.pm:1.297
--- loncom/lonnet/perl/lonnet.pm:1.296 Thu Oct 10 10:34:05 2002
+++ loncom/lonnet/perl/lonnet.pm Mon Oct 14 11:33:26 2002
@@ -1,7 +1,7 @@
# The LearningOnline Network
# TCP networking package
#
-# $Id: lonnet.pm,v 1.296 2002/10/10 14:34:05 www Exp $
+# $Id: lonnet.pm,v 1.297 2002/10/14 15:33:26 matthew Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -2320,26 +2320,51 @@
($udom,$uname,$uid,$umode,$upass,$first,$middle,$last,$gene,$forceid,
$desiredhome);
unless ($reply eq 'ok') { return $reply; }
+ # This will cause &modify_student_enrollment to get the uid from the
+ # students environment
+ $uid = undef if (!$forceid);
+ $reply = &modify_student_enrollment($udom,$uname,$uid,$first,$middle,
+ $last,$gene,$usec,$end,$start);
+ return $reply;
+}
+
+sub modify_student_enrollment {
+ my ($udom,$uname,$uid,$first,$middle,$last,$gene,$usec,$end,$start) = @_;
+ # Get the course id from the environment
+ my $cid='';
+ unless ($cid=$ENV{'request.course.id'}) {
+ return 'not_in_class';
+ }
+ # Make sure the user exists
my $uhome=&homeserver($uname,$udom);
if (($uhome eq '') || ($uhome eq 'no_host')) {
return 'error: no such user';
}
-# -------------------------------------------------- Add student to course list
- if ($first eq '' || $last eq '' || $uid eq '') {
+ #
+ # Get student data if we were not given enough information
+ if (!defined($first) || $first eq '' ||
+ !defined($last) || $last eq '' ||
+ !defined($uid) || $uid eq '' ||
+ !defined($middle) || $middle eq '' ||
+ !defined($gene) || $gene eq '') {
# They did not supply us with enough data to enroll the student, so
# we need to pick up more information.
- my %tmp = &dump('environment',$udom,$uname,
+ my %tmp = &get('environment',
['firstname','middlename','lastname', 'generation','id']
- );
+ ,$udom,$uname);
+
+ foreach (keys(%tmp)) {
+ &logthis("key $_ = ".$tmp{$_});
+ }
$first = $tmp{'firstname'} if (!defined($first) || $first eq '');
$middle = $tmp{'middlename'} if (!defined($middle) || $middle eq '');
$last = $tmp{'lastname'} if (!defined($last) || $last eq '');
- $gene = $tmp{'genename'} if (!defined($gene) || $gene eq '');
+ $gene = $tmp{'generation'} if (!defined($gene) || $gene eq '');
$uid = $tmp{'id'} if (!defined($uid) || $uid eq '');
}
my $fullname = &Apache::loncoursedata::ProcessFullName($last,$gene,
$first,$middle);
- $reply=critical('put:'.$ENV{'course.'.$cid.'.domain'}.':'.
+ my $reply=critical('put:'.$ENV{'course.'.$cid.'.domain'}.':'.
$ENV{'course.'.$cid.'.num'}.':classlist:'.
&escape($uname.':'.$udom).'='.
&escape(join(':',$end,$start,$uid,$usec,$fullname)),
@@ -2347,7 +2372,7 @@
unless (($reply eq 'ok') || ($reply eq 'delayed')) {
return 'error: '.$reply;
}
-# ---------------------------------------------------- Add student role to user
+ # Add student role to user
my $uurl='/'.$cid;
$uurl=~s/\_/\//g;
if ($usec) {
@@ -3657,7 +3682,8 @@
This means the envoking user must be a course coordinator or otherwise
associated with a course.
-This call is essentially a wrapper for lonnet::modifyuser
+This call is essentially a wrapper for lonnet::modifyuser and
+lonnet::modify_student_enrollment
Inputs:
@@ -3692,6 +3718,40 @@
=item B<$desiredhome> server to use as home server for student
=back
+
+=item *
+
+modify_student_enrollment
+
+Change a students enrollment status in a class. The environment variable
+'role.request.course' must be defined for this function to proceed.
+
+Inputs:
+
+=over 4
+
+=item $udom, students domain
+
+=item $uname, students name
+
+=item $uid, students user id
+
+=item $first, students first name
+
+=item $middle
+
+=item $last
+
+=item $gene
+
+=item $usec
+
+=item $end
+
+=item $start
+
+=back
+
=item *