--- loncom/interface/loncreateuser.pm 2004/11/23 18:03:04 1.88
+++ loncom/interface/loncreateuser.pm 2005/06/17 21:04:40 1.104
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Create a user
#
-# $Id: loncreateuser.pm,v 1.88 2004/11/23 18:03:04 raeburn Exp $
+# $Id: loncreateuser.pm,v 1.104 2005/06/17 21:04:40 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -73,10 +73,9 @@ my $authformint;
my $authformfsys;
my $authformloc;
-BEGIN {
- $ENV{'SERVER_NAME'}=~/(\w+\.\w+)$/;
- my $krbdefdom=$1;
- $krbdefdom=~tr/a-z/A-Z/;
+sub initialize_authen_forms {
+ my ($krbdefdom)=( $ENV{'SERVER_NAME'}=~/(\w+\.\w+)$/);
+ $krbdefdom= uc($krbdefdom);
my %param = ( formname => 'document.cu',
kerb_def_dom => $krbdefdom
);
@@ -109,10 +108,7 @@ sub my_custom_roles {
sub authorpriv {
my ($auname,$audom)=@_;
- if (($auname ne $ENV{'user.name'}) ||
- (($audom ne $ENV{'user.domain'}) &&
- ($audom ne $ENV{'request.role.domain'}))) { return ''; }
- unless (&Apache::lonnet::allowed('cca',$audom)) { return ''; }
+ unless (&Apache::lonnet::allowed('cca',$audom.'/'.$auname)) { return ''; }
return 1;
}
@@ -120,9 +116,10 @@ sub authorpriv {
sub print_username_entry_form {
my $r=shift;
- my $defdom=$ENV{'request.role.domain'};
+ my $defdom=$env{'request.role.domain'};
my @domains = &Apache::loncommon::get_domains();
my $domform = &Apache::loncommon::select_dom_form($defdom,'ccdomain');
+ my $html=&Apache::lonxml::xmlbegin();
my $bodytag =&Apache::loncommon::bodytag('Create Users, Change User Privileges').&Apache::loncommon::help_open_menu('',undef,undef,'',282,'Instructor Interface');
my $selscript=&Apache::loncommon::studentbrowser_javascript();
my $sellink=&Apache::loncommon::selectstudent_link
@@ -142,7 +139,7 @@ sub print_username_entry_form {
my $helpsiur=&Apache::loncommon::help_open_topic('Course_Change_Privileges');
my $helpecpr=&Apache::loncommon::help_open_topic('Course_Editing_Custom_Roles');
$r->print(<<"ENDDOCUMENT");
-
+$html
The LearningOnline Network with CAPA
$selscript
@@ -171,18 +168,18 @@ ENDDOCUMENT
# =================================================================== Phase two
sub print_user_modification_page {
my $r=shift;
- my $ccuname=$ENV{'form.ccuname'};
- my $ccdomain=$ENV{'form.ccdomain'};
+ my $ccuname=$env{'form.ccuname'};
+ my $ccdomain=$env{'form.ccdomain'};
- $ccuname=~s/[\W|_]//gs;
- $ccdomain=~s/[\W|_]//gs;
+ $ccuname=~s/\W//g;
+ $ccdomain=~s/\W//g;
unless (($ccuname) && ($ccdomain)) {
&print_username_entry_form($r);
return;
}
- my $defdom=$ENV{'request.role.domain'};
+ my $defdom=$env{'request.role.domain'};
my ($krbdef,$krbdefdom) =
&Apache::loncommon::get_kerberos_defaults($defdom);
@@ -199,7 +196,7 @@ sub print_user_modification_page {
my $pjump_def = &Apache::lonhtmlcommon::pjump_javascript_definition();
my $dc_setcourse_code = '';
my $loaditem;
- if ($ENV{'request.role'} =~ m-^dc\./(\w+)/$-) {
+ if ($env{'request.role'} =~ m-^dc\./(\w+)/$-) {
my $dcdom = $1;
$loaditem = qq|OnLoad="document.cu.coursedesc.value=''"|;
$dc_setcourse_code = <<"ENDSCRIPT";
@@ -211,38 +208,40 @@ sub print_user_modification_page {
return;
}
var userrole = document.cu.role.options[document.cu.role.selectedIndex].value
- var section;
+ var section="";
var numsections = 0;
- if (document.cu.role.value != "cc") {
- for (var i=0; i 1)) {
+ alert("In each course, each user may only have one student role at a time. You had selected "+numsections+" sections.\\nPlease modify your selections so they include no more than one section.")
+ return;
+ }
+ if ((userrole == 'cc') && (numsections > 0)) {
+ alert("Section designations do not apply to Course Coordinator roles.\\nA course coordinator role will be added with access to all sections.");
+ section = "";
+ }
var numcourse = getIndex(document.cu.dccourse);
if (numcourse == "-1") {
alert("There was a problem with your course selection");
@@ -270,8 +269,9 @@ sub print_user_modification_page {
}
ENDSCRIPT
}
+ my $html=&Apache::lonxml::xmlbegin();
my $dochead =<<"ENDDOCHEAD";
-
+$html
The LearningOnline Network with CAPA
ENDDOCHEAD
@@ -311,7 +371,7 @@ ENDFORMINFO
foreach (values(%Apache::lonnet::hostdom)) {
$incdomains{$_}=1;
}
- foreach (keys(%ENV)) {
+ foreach (keys(%env)) {
if ($_=~/^user\.priv\.cm\.\/(\w+)\/(\w+)/) {
$inccourses{$1.'_'.$2}=1;
}
@@ -335,6 +395,7 @@ ENDFORMINFO
'lg' => "Login Data"
);
my $genhelp=&Apache::loncommon::help_open_topic('Generation');
+ &initialize_authen_forms();
$r->print(<$lt{'cnu'}
@@ -422,13 +483,7 @@ END
'sta' => "Start",
'end' => "End"
);
- $r->print(<
-
$lt{'rer'}
-
-
$lt{'rev'}
$lt{'ren'}
$lt{'del'}
$lt{'rol'}
$lt{'ext'}
$lt{'sta'}
$lt{'end'}
-END
- my (%roletext,%sortrole,%roleclass);
+ my (%roletext,%sortrole,%roleclass,%rolepriv);
foreach my $area (sort { my $a1=join('_',(split('_',$a))[1,0]);
my $b1=join('_',(split('_',$b))[1,0]);
return $a1 cmp $b1;
@@ -486,7 +541,7 @@ END
$bgcol=~s/[^7-9a-e]//g;
$bgcol=substr($bgcol.$bgcol.$bgcol.'ffffff',2,6);
if ($area=~/^\/(\w+)\/(\d\w+)\/(\w+)/) {
- $carea.=' Section/Group: '.$3;
+ $carea.=' Section/Group: '.$3;
$sortkey.="\0$3";
}
$area=$carea;
@@ -567,22 +622,40 @@ END
$sortrole{$sortkey}=$envkey;
$roletext{$envkey}=$row;
$roleclass{$envkey}=$class;
+ $rolepriv{$envkey}=$allowed;
#$r->print($row);
} # end of foreach (table building loop)
+ my $rolesdisplay = 0;
+ my %output = ();
foreach my $type ('Construction Space','Course','Domain','System','Unknown') {
- my $output;
+ $output{$type} = '';
foreach my $which (sort {uc($a) cmp uc($b)} (keys(%sortrole))) {
- if ($roleclass{$sortrole{$which}} =~ /^\Q$type\E/) {
- $output.=$roletext{$sortrole{$which}};
+ if ( ($roleclass{$sortrole{$which}} =~ /^\Q$type\E/ ) && ($rolepriv{$sortrole{$which}}) ) {
+ $output{$type}.=$roletext{$sortrole{$which}};
}
}
- if (defined($output)) {
- $r->print("
+END
+ foreach my $type ('Construction Space','Course','Domain','System','Unknown') {
+ if ($output{$type}) {
+ $r->print($output{$type}."\n");
+ }
+ }
+ $r->print('
');
+ }
} # End of unless
my $currentauth=&Apache::lonnet::queryauthenticate($ccuname,$ccdomain);
if ($currentauth=~/^krb(4|5):/) {
@@ -599,7 +672,8 @@ END
$currentauth=~/^internal:/ or
$currentauth=~/^localauth:/
) { # bad authentication scheme
- if (&Apache::lonnet::allowed('mau',$ENV{'request.role.domain'})) {
+ if (&Apache::lonnet::allowed('mau',$env{'request.role.domain'})) {
+ &initialize_authen_forms();
my %lt=&Apache::lonlocal::texthash(
'err' => "ERROR",
'uuas' => "This user has an unrecognized authentication scheme",
@@ -641,6 +715,7 @@ ENDBADAUTH
} else { # Authentication type is valid
my $authformcurrent='';
my $authform_other='';
+ &initialize_authen_forms();
if ($currentauth=~/^krb(4|5):/) {
$authformcurrent=$authformkrb;
$authform_other="
$authformint
\n".
@@ -662,7 +737,7 @@ ENDBADAUTH
"
$authformint
$authformfsys
";
}
$authformcurrent.=' (will override current values) ';
- if (&Apache::lonnet::allowed('mau',$ENV{'request.role.domain'})) {
+ if (&Apache::lonnet::allowed('mau',$env{'request.role.domain'})) {
# Current user has login modification privileges
my %lt=&Apache::lonlocal::texthash(
'ccld' => "Change Current Login Data",
@@ -687,11 +762,11 @@ ENDOTHERAUTHS
#
# Co-Author
#
- if (&authorpriv($ENV{'user.name'},$ENV{'request.role.domain'}) &&
- ($ENV{'user.name'} ne $ccuname || $ENV{'user.domain'} ne $ccdomain)) {
+ if (&authorpriv($env{'user.name'},$env{'request.role.domain'}) &&
+ ($env{'user.name'} ne $ccuname || $env{'user.domain'} ne $ccdomain)) {
# No sense in assigning co-author role to yourself
- my $cuname=$ENV{'user.name'};
- my $cudom=$ENV{'request.role.domain'};
+ my $cuname=$env{'user.name'};
+ my $cudom=$env{'request.role.domain'};
my %lt=&Apache::lonlocal::texthash(
'cs' => "Construction Space",
'act' => "Activate",
@@ -724,9 +799,11 @@ ENDCOAUTH
#
# Domain level
#
- $r->print('
'.&mt('Domain Level').'
'.
+ my $num_domain_level = 0;
+ my $domaintext =
+ '