--- loncom/interface/loncreateuser.pm 2003/03/23 09:06:08 1.51
+++ loncom/interface/loncreateuser.pm 2003/07/17 18:10:53 1.57
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Create a user
#
-# $Id: loncreateuser.pm,v 1.51 2003/03/23 09:06:08 albertel Exp $
+# $Id: loncreateuser.pm,v 1.57 2003/07/17 18:10:53 matthew Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -46,7 +46,7 @@
# 05/10,10/16 Gerd Kortemeyer
# 02/11/02 Matthew Hall
#
-# $Id: loncreateuser.pm,v 1.51 2003/03/23 09:06:08 albertel Exp $
+# $Id: loncreateuser.pm,v 1.57 2003/07/17 18:10:53 matthew Exp $
###
package Apache::loncreateuser;
@@ -54,6 +54,7 @@ package Apache::loncreateuser;
use strict;
use Apache::Constants qw(:common :http);
use Apache::lonnet;
+use Apache::loncommon;
my $loginscript; # piece of javascript used in two separate instances
my $generalrule;
@@ -149,6 +150,7 @@ sub print_user_modification_page {
$ccuname=~s/\W//g;
$ccdomain=~s/\W//g;
+ my $pjump_def = &Apache::lonhtmlcommon::pjump_javascript_definition();
my $dochead =<<"ENDDOCHEAD";
@@ -161,14 +163,7 @@ sub print_user_modification_page {
parmwin.close();
}
- function pjump(type,dis,value,marker,ret,call) {
- parmwin=window.open("/adm/rat/parameter.html?type="+escape(type)
- +"&value="+escape(value)+"&marker="+escape(marker)
- +"&return="+escape(ret)
- +"&call="+escape(call)+"&name="+escape(dis),"LONCAPAparms",
- "height=350,width=350,scrollbars=no,menubar=no");
-
- }
+ $pjump_def
function dateset() {
eval("document.cu."+document.cu.pres_marker.value+
@@ -260,7 +255,7 @@ END
foreach ('firstname','middlename','lastname','generation') {
if (&Apache::lonnet::allowed('mau',$ccdomain)) {
$r->print(<<"END");
- |
+ |
END
} else {
$r->print(''.$userenv{$_}.' | ');
@@ -278,7 +273,7 @@ END
Revoke Existing Roles
-Revoke | Role | Extent | Start | End |
+
---|
Revoke | Delete | Role | Extent | Start | End |
END
foreach my $area (keys(%rolesdump)) {
next if ($area =~ /^rolesdef/);
@@ -289,19 +284,29 @@ END
split(/_/,$role);
my $bgcol='ffffff';
my $allowed=0;
+ my $delallowed=0;
if ($area =~ /^\/(\w+)\/(\d\w+)/ ) {
+ my ($coursedom,$coursedir) = ($1,$2);
+ # $1.'_'.$2 is the course id (eg. 103_12345abcef103l3).
my %coursedata=
&Apache::lonnet::coursedescription($1.'_'.$2);
my $carea;
if (defined($coursedata{'description'})) {
- $carea='Course: '.$coursedata{'description'};
+ $carea='Course: '.$coursedata{'description'}.
+ '
Domain: '.$coursedom.(' 'x8).
+ &Apache::loncommon::syllabuswrapper('Syllabus',$coursedir,$coursedom);
} else {
$carea='Unavailable course: '.$area;
}
$inccourses{$1.'_'.$2}=1;
- if (&Apache::lonnet::allowed('c'.$role_code,$1.'/'.$2)) {
+ if ((&Apache::lonnet::allowed('c'.$role_code,$1.'/'.$2)) ||
+ (&Apache::lonnet::allowed('c'.$role_code,$ccdomain))) {
$allowed=1;
}
+ if ((&Apache::lonnet::allowed('dro',$1)) ||
+ (&Apache::lonnet::allowed('dro',$ccdomain))) {
+ $delallowed=1;
+ }
# Compute the background color based on $area
$bgcol=$1.'_'.$2;
$bgcol=~s/[^8-9b-e]//g;
@@ -313,9 +318,15 @@ END
} else {
# Determine if current user is able to revoke privileges
if ($area=~ /^\/(\w+)\//) {
- if (&Apache::lonnet::allowed('c'.$role_code,$1)) {
+ if ((&Apache::lonnet::allowed('c'.$role_code,$1)) ||
+ (&Apache::lonnet::allowed('c'.$role_code,$ccdomain))) {
$allowed=1;
}
+ if (((&Apache::lonnet::allowed('dro',$1)) ||
+ (&Apache::lonnet::allowed('dro',$ccdomain))) &&
+ ($role_code ne 'dc')) {
+ $delallowed=1;
+ }
} else {
if (&Apache::lonnet::allowed('c'.$role_code,'/')) {
$allowed=1;
@@ -337,6 +348,16 @@ END
if (($active) && ($allowed)) {
$row.= '';
} else {
+ if ($active) {
+ $row.=' ';
+ } else {
+ $row.='expired or revoked';
+ }
+ }
+ $row.='';
+ if ($delallowed) {
+ $row.= '';
+ } else {
$row.=' ';
}
$row.= ' | '.&Apache::lonnet::plaintext($role_code).
@@ -418,16 +439,7 @@ ENDBADAUTH
$authform_other=" $authformkrb ".
"$authformint $authformfsys ";
}
- $authformcurrent=<
-
-* * * WARNING * * * |
-* * * WARNING * * * |
-
-$authformcurrent |
-Changing this value will overwrite existing authentication for the user; you should notify the user of this change. |
- |
---|
-ENDCURRENTAUTH
+ $authformcurrent.=' (will override current values)
';
if (&Apache::lonnet::allowed('mau',$ENV{'request.role.domain'})) {
# Current user has login modification privileges
$r->print(<print('Revoking '.$2.' in '.$1.': '.
+ $r->print('Revoking '.$2.' in '.$1.': '.
&Apache::lonnet::assignrole($ENV{'form.ccdomain'},
- $ENV{'form.ccuname'},$1,$2,$now).'
');
+ $ENV{'form.ccuname'},$1,$2,$now).'
');
if ($2 eq 'st') {
$1=~/^\/(\w+)\/(\w+)/;
my $cid=$1.'_'.$2;
- $r->print('Drop from classlist: '.
+ $r->print('Drop from classlist: '.
&Apache::lonnet::critical('put:'.
$ENV{'course.'.$cid.'.domain'}.':'.
$ENV{'course.'.$cid.'.num'}.':classlist:'.
&Apache::lonnet::escape($ENV{'form.ccuname'}.':'.
$ENV{'form.ccdomain'}).'='.
&Apache::lonnet::escape($now.':'),
- $ENV{'course.'.$cid.'.home'}).'
');
+ $ENV{'course.'.$cid.'.home'}).'
');
+ }
+ }
+ } elsif ($_=~/^form\.del/) {
+ if ($_=~/^form\.del\:([^\_]+)\_([^\_]+)$/) {
+ $r->print('Deleting '.$2.' in '.$1.': '.
+ &Apache::lonnet::assignrole($ENV{'form.ccdomain'},
+ $ENV{'form.ccuname'},$1,$2,$now,0,1).'
');
+ if ($2 eq 'st') {
+ $1=~/^\/(\w+)\/(\w+)/;
+ my $cid=$1.'_'.$2;
+ $r->print('Drop from classlist: '.
+ &Apache::lonnet::critical('put:'.
+ $ENV{'course.'.$cid.'.domain'}.':'.
+ $ENV{'course.'.$cid.'.num'}.':classlist:'.
+ &Apache::lonnet::escape($ENV{'form.ccuname'}.':'.
+ $ENV{'form.ccdomain'}).'='.
+ &Apache::lonnet::escape($now.':'),
+ $ENV{'course.'.$cid.'.home'}).'
');
}
}
} elsif ($_=~/^form\.act/) {
if ($_=~/^form\.act\_([^\_]+)\_([^\_]+)\_([^\_]+)$/) {
# Activate roles for sections with 3 id numbers
# set start, end times, and the url for the class
- my $start = ( $ENV{'form.start_'.$1.'_'.$2} ?
- $ENV{'form.start_'.$1.'_'.$2} :
+
+ my $start = ( $ENV{'form.start_'.$1.'_'.$2.'_'.$3} ?
+ $ENV{'form.start_'.$1.'_'.$2.'_'.$3} :
$now );
- my $end = ( $ENV{'form.end_'.$1.'_'.$2} ?
- $ENV{'form.end_'.$1.'_'.$2} :
+ my $end = ( $ENV{'form.end_'.$1.'_'.$2.'_'.$3} ?
+ $ENV{'form.end_'.$1.'_'.$2.'_'.$3} :
0 );
my $url='/'.$1.'/'.$2;
if ($ENV{'form.sec_'.$1.'_'.$2.'_'.$3}) {
$url.='/'.$ENV{'form.sec_'.$1.'_'.$2.'_'.$3};
}
# Assign the role and report it
- $r->print('Assigning: '.$3.' in '.$url.': '.
+ $r->print('Assigning: '.$3.' in '.$url.
+ ($start?', starting '.localtime($start):'').
+ ($end?', ending '.localtime($end):'').': '.
&Apache::lonnet::assignrole(
$ENV{'form.ccdomain'},$ENV{'form.ccuname'},
$url,$3,$end,$start).
- '
');
+ '
');
# Handle students differently
if ($3 eq 'st') {
$url=~/^\/(\w+)\/(\w+)/;
my $cid=$1.'_'.$2;
- $r->print('Add to classlist: '.
+ $r->print('Add to classlist: '.
&Apache::lonnet::critical(
'put:'.$ENV{'course.'.$cid.'.domain'}.':'.
$ENV{'course.'.$cid.'.num'}.':classlist:'.
@@ -768,7 +801,7 @@ END
$ENV{'form.ccdomain'} ).'='.
&Apache::lonnet::escape($end.':'.$start),
$ENV{'course.'.$cid.'.home'})
- .'
');
+ .'
');
}
} elsif ($_=~/^form\.act\_([^\_]+)\_([^\_]+)$/) {
# Activate roles for sections with two id numbers
@@ -782,10 +815,12 @@ END
my $url='/'.$1.'/';
# Assign the role and report it.
$r->print('Assigning: '.$2.' in '.$url.': '.
+ ($start?', starting '.localtime($start):'').
+ ($end?', ending '.localtime($end):'').': '.
&Apache::lonnet::assignrole(
$ENV{'form.ccdomain'},$ENV{'form.ccuname'},
$url,$2,$end,$start)
- .'
');
+ .'
');
}
}
} # End of foreach (keys(%ENV))