--- loncom/interface/loncreateuser.pm 2001/02/19 22:58:53 1.2 +++ loncom/interface/loncreateuser.pm 2001/03/02 20:31:34 1.4 @@ -16,7 +16,7 @@ # # 2/14 Gerd Kortemeyer) # -# 2/14,2/17,2/19 Gerd Kortemeyer +# 2/14,2/17,2/19,2/20,2/21,2/22,2/23,3/2 Gerd Kortemeyer # package Apache::loncreateuser; @@ -53,20 +53,55 @@ sub phase_two { my $r=shift; my $ccuname=$ENV{'form.ccuname'}; my $ccdomain=$ENV{'form.ccdomain'}; + + $ENV{'SERVER_NAME'}=~/(\w+\.\w+)$/; + my $krbdefdom=$1; + $krbdefdom=~tr/a-z/A-Z/; + + my $defdom=$ENV{'user.domain'}; + $ccuname=~s/\W//g; $ccdomain=~s/\W//g; $r->print(< The LearningOnline Network with CAPA +

Create User, Change User Privileges

-
+ + + + + ENDENHEAD my $uhome=&Apache::lonnet::homeserver($ccuname,$ccdomain); my %incdomains; @@ -78,7 +113,128 @@ ENDENHEAD } } %ENV; if ($uhome eq 'no_host') { - $r->print('

New user '.$ccuname.' at '.$ccdomain.'

'); + $r->print(<New user $ccuname at $ccdomain + + +

Personal Data

+First Name:
+Middle Name:
+Last Name:
+Generation:

+ +ID/Student Number:

+ +Group/Section:

+ +

Login Data

+Username:

+Domain:

+Note: login settings below will not take effect if the user already exists

+ + +Kerberos authenticated with domain +

+ +Internally authenticated (with initial password +) +ENDNUSER } else { $r->print('

Existing user '.$ccuname.' at '.$ccdomain.'

'); my $rolesdump=&Apache::lonnet::reply( @@ -95,7 +251,7 @@ ENDENHEAD my $thisrole=$area; $area=~s/\_\w\w$//; my ($trole,$tend,$tstart)=split(/_/,$role); - + my $bgcol='ffffff'; my $allows=0; if ($area=~/^\/(\w+)\/(\d\w+)\/(\w+)/) { my %coursedata=&Apache::lonnet::coursedescription($1.'_'.$2); @@ -105,6 +261,9 @@ ENDENHEAD if (&Apache::lonnet::allowed('c'.$trole,$1.'_'.$2)) { $allows=1; } + $bgcol=$1.'_'.$2; + $bgcol=~s/[^8-9b-e]//g; + $bgcol=substr($bgcol.$bgcol.$bgcol.'ffffff',0,6); } else { if ($1) { $incdomains{$1}=1; @@ -117,7 +276,7 @@ ENDENHEAD my $active=1; if (($tend) && ($now>$tend)) { $active=0; } - $r->print(''); + $r->print(''); if ($active) { if ($allows) { $r->print( @@ -147,18 +306,104 @@ ENDENHEAD } } ('dc','cc','li','dg','au'); } sort keys %incdomains; - $r->print('
Course Level
'); + $r->print('
Course Level
'. + ''. + ''); map { my $thiscourse=$_; + my %coursedata=&Apache::lonnet::coursedescription($thiscourse); + my $area=$coursedata{'description'}; + my $bgcol=$thiscourse; + $bgcol=~s/[^8-9b-e]//g; + $bgcol=substr($bgcol.$bgcol.$bgcol.'ffffff',0,6); map { if (&Apache::lonnet::allowed('c'.$_,$thiscourse)) { - $r->print($_.' - '.$thiscourse.'
'); + my $plrole=&Apache::lonnet::plaintext($_); + $r->print(< + + + + + + + +ENDROW + } } ('st','ta','ep','ad','in'); } sort keys %inccourses; + $r->print('
ActivateRoleExtentGroup/SectionStartEnd
$plrole$area +Set Start Date +Set End Date
'); + $r->print(''); $r->print(''); } +# ================================================================= Phase Three + +sub phase_three { + my $r=shift; + $r->print(< + +The LearningOnline Network with CAPA + + + +

Create User, Change User Privileges

+ENDTHREEHEAD + if ($ENV{'form.makeuser'}) { + $r->print('

Creating User

'); + if (($ENV{'form.cuname'})&&($ENV{'form.cuname'}!~/\W/)&& + ($ENV{'form.cdomain'})&&($ENV{'form.cdomain'}!~/\W/)) { + my $amode=''; + my $genpwd=''; + if ($ENV{'form.login'} eq 'krb') { + $amode='krb4'; + $genpwd=$ENV{'form.krbdom'}; + } elsif ($ENV{'form.login'} eq 'int') { + $amode='internal'; + $genpwd=$ENV{'form.intpwd'}; + } + if (($amode) && ($genpwd)) { + &dropstudent($ENV{'form.cdomain'},$ENV{'form.cuname'}, + $ENV{'request.course.id'},$ENV{'form.csec'}); + $r->print(&Apache::lonnet::modifystudent( + $ENV{'form.cdomain'},$ENV{'form.cuname'}, + $ENV{'form.cstid'},$amode,$genpwd, + $ENV{'form.cfirst'},$ENV{'form.cmiddle'}, + $ENV{'form.clast'},$ENV{'form.cgen'}, + $ENV{'form.csec'},$ENV{'form.enddate'}, + $ENV{'form.startdate'})); + } else { + $r->print('Invalid login mode or password'); + } + } else { + $r->print('Invalid username or domain'); + } + } + $r->print('

'.$ENV{'form.cuname'}.' at '.$ENV{'form.cdomain'}.'

'); + my $now=time; +# sub assignrole { +# my ($udom,$uname,$url,$role,$end,$start)=@_; + map { + if (($_=~/^form\.rev\:([^\_]+)\_([^\_]+)$/) && ($ENV{$_})) { + $r->print('Revoking '.$2.' in '.$1.': '. + &Apache::lonnet::assignrole($ENV{'form.cdomain'},$ENV{'form.cuname'}, + $1,$2,$now).'
'); + } + } keys %ENV; + $r->print(''); + map { + if (($_=~/^form\.act\_([^\_]+)\_([^\_]+)\_([^\_]+)$/) && ($ENV{$_})) { + $r->print('a:'.$_.': '.$1.' '.$2.' '.$3.'
'); + } + } keys %ENV; +} + # ================================================================ Main Handler sub handler { my $r = shift; @@ -181,6 +426,8 @@ sub handler { } if ($ENV{'form.phase'} eq 'two') { &phase_two($r); + } elsif ($ENV{'form.phase'} eq 'three') { + &phase_three($r); } } else { $ENV{'user.error.msg'}=