version 1.79, 2000/12/12 23:43:05
|
version 1.80, 2000/12/13 22:45:22
|
Line 81
|
Line 81
|
# 10/06,10/09,10/10,10/11,10/14,10/20,10/23,10/25,10/26,10/27,10/28,10/29, |
# 10/06,10/09,10/10,10/11,10/14,10/20,10/23,10/25,10/26,10/27,10/28,10/29, |
# 10/30,10/31, |
# 10/30,10/31, |
# 11/2,11/14,11/15,11/16,11/20,11/21,11/22,11/25,11/27, |
# 11/2,11/14,11/15,11/16,11/20,11/21,11/22,11/25,11/27, |
# 12/02,12/12 Gerd Kortemeyer |
# 12/02,12/12,12/13 Gerd Kortemeyer |
|
|
package Apache::lonnet; |
package Apache::lonnet; |
|
|
Line 1187 sub assignrole {
|
Line 1187 sub assignrole {
|
return &reply($command,&homeserver($uname,$udom)); |
return &reply($command,&homeserver($uname,$udom)); |
} |
} |
|
|
|
# ----------------------------------------------------------------- Make a user |
|
|
|
|
|
sub makeuser { |
|
my ($udom,$uname,$uid,$umode,$upass,$first,$middle,$last,$gene)=@_; |
|
&logthis('Call to make user '.$udom.', '.$uname.', '.$uid.', '. |
|
$umode.', '.$first.', '.$middle.', '. |
|
$last.', '.$gene.' by '. |
|
$ENV{'user.name'}.' at '.$ENV{'user.domain'}); |
|
my $uhome=&homeserver($uname,$udom); |
|
# ----------------------------------------------------------------- Create User |
|
if ($uhome eq 'no_host') { |
|
my $unhome=''; |
|
if ($ENV{'course.'.$ENV{'request.course.id'}.'.domain'} eq $udom) { |
|
$unhome=$ENV{'course.'.$ENV{'request.course.id'}.'.home'}; |
|
} elsif ($ENV{'user.domain'} eq $udom) { |
|
$unhome=$ENV{'user.home'}; |
|
} else { |
|
my $tryserver; |
|
my $loadm=999999; |
|
foreach $tryserver (keys %libserv) { |
|
if ($hostdom{$tryserver} eq $udom) { |
|
my $answer=reply('load',$tryserver); |
|
if (($answer=~/\d+/) && ($answer<$loadm)) { |
|
$loadm=$answer; |
|
$unhome=$tryserver; |
|
} |
|
} |
|
} |
|
} |
|
if (($unhome eq '') || ($unhome eq 'no_host')) { |
|
return 'error: find home'; |
|
} |
|
my $reply=&reply('encrypt:makeuser:'.$udom.':'.$uname.':'.$umode.':'. |
|
&escape($upass),$unhome); |
|
unless ($reply eq 'ok') { |
|
return 'error: '.$reply; |
|
} |
|
$uhome=&homeserver($uname,$udom); |
|
if (($uhome eq '') || ($uhome eq 'no_host') || ($uhome ne $unhome)) { |
|
return 'error: verify home'; |
|
} |
|
} |
|
# ---------------------------------------------------------------------- Add ID |
|
if ($uid) { |
|
$uid=~tr/A-Z/a-z/; |
|
my %uidhash=&idrget($udom,$uname); |
|
if (($uidhash{$uname}) && ($uidhash{$uname}!~/error\:/)) { |
|
unless ($uid eq $uidhash{$uname}) { |
|
return 'error: mismatch '.$uidhash{$uname}.' versus '.$uid; |
|
} |
|
} else { |
|
&idput($udom,($uname => $uid)); |
|
} |
|
} |
|
# -------------------------------------------------------------- Add names, etc |
|
my $names=&reply('get:'.$udom.':'.$uname. |
|
':environment:firstname&middlename&lastname&generation', |
|
$uhome); |
|
my ($efirst,$emiddle,$elast,$egene)=split(/\&/,$names); |
|
unless ($efirst) { $efirst = &escape($first); } |
|
unless ($emiddle) { $emiddle = &escape($middle); } |
|
unless ($elast) { $elast = &escape($last); } |
|
unless ($egene) { $egene = &escape($gene); } |
|
my $reply=&reply('put:'.$udom.':'.$uname. |
|
':environment:firstname='.$efirst. |
|
'&middlename='.$emiddle. |
|
'&lastname='.$elast. |
|
'&generation='.$egene,$uhome); |
|
if ($reply ne 'ok') { |
|
return 'error: '.$reply; |
|
} |
|
&logthis('Success making user '.$udom.', '.$uname.', '.$uid.', '. |
|
$umode.', '.$first.', '.$middle.', '. |
|
$last.', '.$gene.' by '. |
|
$ENV{'user.name'}.' at '.$ENV{'user.domain'}); |
|
return 'ok'; |
|
} |
|
|
|
# -------------------------------------------------------------- Make a student |
|
|
|
sub makestudent { |
|
my ($udom,$uname,$uid,$umode,$upass,$first,$middle,$last,$gene,$usec)=@_; |
|
unless ($ENV{'request.course.id'}) { |
|
return 'not_in_class'; |
|
} |
|
# --------------------------------------------------------------- Make the user |
|
my $reply=&makeuser |
|
($udom,$uname,$uid,$umode,$upass,$first,$middle,$last,$gene); |
|
unless ($reply eq 'ok') { return $reply; } |
|
# -------------------------------------------------- Add student to course list |
|
|
|
# ---------------------------------------------------- Add student role to user |
|
|
|
} |
|
|
# ---------------------------------------------------------- Assign Custom Role |
# ---------------------------------------------------------- Assign Custom Role |
|
|
sub assigncustomrole { |
sub assigncustomrole { |