--- loncom/interface/loncreateuser.pm 2002/02/08 19:40:42 1.24 +++ loncom/interface/loncreateuser.pm 2002/02/11 15:37:58 1.25 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Create a user # -# $Id: loncreateuser.pm,v 1.24 2002/02/08 19:40:42 matthew Exp $ +# $Id: loncreateuser.pm,v 1.25 2002/02/11 15:37:58 matthew Exp $ # # Copyright Michigan State University Board of Trustees # @@ -45,8 +45,9 @@ # April Guy Albertelli # 05/10,10/16 Gerd Kortemeyer # 11/12,11/13,11/15 Scott Harrison +# 02/11/02 Matthew Hall # -# $Id: loncreateuser.pm,v 1.24 2002/02/08 19:40:42 matthew Exp $ +# $Id: loncreateuser.pm,v 1.25 2002/02/11 15:37:58 matthew Exp $ ### package Apache::loncreateuser; @@ -220,7 +221,7 @@ sub phase_two { $ccuname=~s/\W//g; $ccdomain=~s/\W//g; - $r->print(< The LearningOnline Network with CAPA @@ -250,19 +251,19 @@ sub phase_two { - -

Create User, Change User Privileges

-
- - - - - - - - - -ENDENHEAD + +ENDDOCHEAD + my $forminfo =<<"ENDFORMINFO"; + + + + + + + + + +ENDFORMINFO my $uhome=&Apache::lonnet::homeserver($ccuname,$ccdomain); my %incdomains; my %inccourses; @@ -276,18 +277,29 @@ ENDENHEAD } if ($uhome eq 'no_host') { $r->print(<New user $ccuname at $ccdomain +$dochead +

Create New User

+$forminfo +

New user "$ccuname" in domain $ccdomain

ENDNUSER $r->print(<

Personal Data

-First Name:
-Middle Name:
-Last Name:
-Generation:

+

+ + + + + + + + + +
First Name
Middle Name
Last Name
Generation
+ID/Student Number

-ID/Student Number:

+

Login Data

$generalrule @@ -296,11 +308,16 @@ $authformint $authformfsys $authformloc ENDNUSER - } else { - $r->print('

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

'); - + } else { # user already exists + $r->print(<Change User Privileges +$forminfo +

User "$ccuname" in domain $ccdomain

+ENDCHUSER my $rolesdump=&Apache::lonnet::reply( "dump:$ccdomain:$ccuname:roles",$uhome); + # Build up table of user roles to allow revocation of a role. unless ($rolesdump eq 'con_lost') { my $now=time; $r->print('

Revoke Existing Roles

'. @@ -308,20 +325,23 @@ ENDNUSER 'StartEnd'); foreach (split(/&/,$rolesdump)) { if ($_!~/^rolesdef\&/) { - my ($area,$role)=split(/=/,$_); my $thisrole=$area; $area=~s/\_\w\w$//; - my ($trole,$tend,$tstart)=split(/_/,$role); + my ($role_code,$role_end_time,$role_start_time)=split(/_/,$role); my $bgcol='ffffff'; my $allows=0; if ($area=~/^\/(\w+)\/(\d\w+)/) { my %coursedata=&Apache::lonnet::coursedescription($1.'_'.$2); my $carea='Course: '.$coursedata{'description'}; $inccourses{$1.'_'.$2}=1; - if (&Apache::lonnet::allowed('c'.$trole,$1.'/'.$2)) { + if (&Apache::lonnet::allowed('c'.$role_code,$1.'/'.$2)) { $allows=1; } + # What follows is an odd computation. It seems the value + # of the $area variable above is used to compute the + # background color. This makes sense, but I can't make + # heads or tail of the computation at this point.. $bgcol=$1.'_'.$2; $bgcol=~s/[^8-9b-e]//g; $bgcol=substr($bgcol.$bgcol.$bgcol.'ffffff',0,6); @@ -331,34 +351,32 @@ ENDNUSER $area=$carea; } else { if ($area=~/^\/(\w+)\//) { - if (&Apache::lonnet::allowed('c'.$trole,$1)) { + if (&Apache::lonnet::allowed('c'.$role_code,$1)) { $allows=1; } } else { - if (&Apache::lonnet::allowed('c'.$trole,'/')) { + if (&Apache::lonnet::allowed('c'.$role_code,'/')) { $allows=1; } } } my $active=1; - if (($tend) && ($now>$tend)) { $active=0; } - - $r->print(''); - if ($active) { - if ($allows) { - $r->print( - ''); - } else { - $r->print(' '); - } + if (($role_end_time) && ($now>$role_end_time)) { $active=0; } + $r->print(''); + if (!($active) && ($allows)) { + $r->print(''); } else { $r->print(' '); } - $r->print(''.&Apache::lonnet::plaintext($trole). + $r->print(''.&Apache::lonnet::plaintext($role_code). ''.$area.''. - ($tstart?localtime($tstart):' ').''. - ($tend?localtime($tend):' ')."\n"); + ($role_start_time ? localtime($role_start_time) + : ' ' ) + .''. + ($role_end_time ? localtime($role_end_time) + : ' ' ) + ."\n"); } } $r->print(''); @@ -369,12 +387,10 @@ ENDNUSER my $krbdefdom2=$1; $loginscript=~s/vf\.krbdom\.value='.*?';/vf.krbdom.value='$krbdefdom2';/; } - # minor script hack here -# $loginscript=~s/login\[3\]/login\[4\]/; # loc -# $loginscript=~s/login\[2\]/login\[3\]/; # fsys -# $loginscript=~s/login\[1\]/login\[2\]/; # int -# $loginscript=~s/login\[0\]/login\[1\]/; # krb4 - + # Here is where we'll have to check against the permissions of the + # user attempting to modify this users data. Only users with + # MAU (Modify Authentication User) permissions should be able to + # make these changes. I think a subroutine would be in order here. unless ($currentauth=~/^krb4:/ or $currentauth=~/^unix:/ or $currentauth=~/^internal:/ or @@ -454,8 +470,8 @@ $authformcurrent

Enter New Login Data

$authformother END - } - } + } + } ## End of new user/old user logic $r->print('

Add Roles

'); # # Co-Author