[LON-CAPA-cvs] cvs: loncom /interface loncreateuser.pm

www lon-capa-cvs@mail.lon-capa.org
Sat, 10 May 2003 23:06:53 -0000


www		Sat May 10 19:06:53 2003 EDT

  Modified files:              
    /loncom/interface	loncreateuser.pm 
  Log:
  Calls to rolesdel to completely delete a role.
  
  
Index: loncom/interface/loncreateuser.pm
diff -u loncom/interface/loncreateuser.pm:1.52 loncom/interface/loncreateuser.pm:1.53
--- loncom/interface/loncreateuser.pm:1.52	Wed Apr 30 11:49:45 2003
+++ loncom/interface/loncreateuser.pm	Sat May 10 19:06:52 2003
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # Create a user
 #
-# $Id: loncreateuser.pm,v 1.52 2003/04/30 15:49:45 matthew Exp $
+# $Id: loncreateuser.pm,v 1.53 2003/05/10 23:06:52 www 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.52 2003/04/30 15:49:45 matthew Exp $
+# $Id: loncreateuser.pm,v 1.53 2003/05/10 23:06:52 www Exp $
 ###
 
 package Apache::loncreateuser;
@@ -254,7 +254,7 @@
         foreach ('firstname','middlename','lastname','generation') {
            if (&Apache::lonnet::allowed('mau',$ccdomain)) {
               $r->print(<<"END");            
-<td><input type="text" name="c$_" value="$userenv{$_}" size="15"/></td>
+<td><input type="text" name="c$_" value="$userenv{$_}" size="15" /></td>
 END
            } else {
                $r->print('<td>'.$userenv{$_}.'</td>');
@@ -272,7 +272,7 @@
 <hr />
 <h3>Revoke Existing Roles</h3>
 <table border=2>
-<tr><th>Revoke</th><th>Role</th><th>Extent</th><th>Start</th><th>End</th>
+<tr><th>Revoke</th><th>Delete</th><th>Role</th><th>Extent</th><th>Start</th><th>End</th>
 END
 	   foreach my $area (keys(%rolesdump)) {
                next if ($area =~ /^rolesdef/);
@@ -283,19 +283,26 @@
                    split(/_/,$role);
                my $bgcol='ffffff';
                my $allowed=0;
+               my $delallowed=0;
                if ($area =~ /^\/(\w+)\/(\d\w+)/ ) {
                    my %coursedata=
                        &Apache::lonnet::coursedescription($1.'_'.$2);
 		   my $carea;
 		   if (defined($coursedata{'description'})) {
-		       $carea='Course: '.$coursedata{'description'};
+		       $carea='Course: '.$coursedata{'description'}.
+                              '<br />Domain: '.$1;
 		   } 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;
@@ -307,9 +314,15 @@
                } 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;
@@ -333,6 +346,12 @@
                } else {
                    $row.='&nbsp;';
                }
+	       $row.='</td><td>';
+               if ($delallowed) {
+                   $row.= '<input type="checkbox" name="del:'.$thisrole.'">';
+               } else {
+                   $row.='&nbsp;';
+               }
                $row.= '</td><td>'.&Apache::lonnet::plaintext($role_code).
                       '</td><td>'.$area.
                       '</td><td>'.($role_start_time?localtime($role_start_time)
@@ -412,16 +431,7 @@
 		$authform_other="<p>$authformkrb</p>".
                     "<p>$authformint</p><p>$authformfsys</p>";
 	    }
-	    $authformcurrent=<<ENDCURRENTAUTH;
-<table border='1'>
-<tr>
-<td><font color='#ff0000'>* * * WARNING * * *</font></td>
-<td><font color='#ff0000'>* * * WARNING * * *</font></td>
-</tr>
-<tr><td bgcolor='#cbbcbb'>$authformcurrent</td>
-<td bgcolor='#cbbcbb'>Changing this value will overwrite existing authentication for the user; you should notify the user of this change.</td></tr>
-</table>
-ENDCURRENTAUTH
+            $authformcurrent.=' <i>(will override current values)</i><br />';
             if (&Apache::lonnet::allowed('mau',$ENV{'request.role.domain'})) {
 		# Current user has login modification privileges
 		$r->print(<<ENDOTHERAUTHS);
@@ -716,6 +726,24 @@
 	        $r->print('Revoking '.$2.' in '.$1.': '.
                      &Apache::lonnet::assignrole($ENV{'form.ccdomain'},
                      $ENV{'form.ccuname'},$1,$2,$now).'<br>');
+		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'}).'<br>');
+		}
+	    } 
+	} 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).'<br>');
 		if ($2 eq 'st') {
 		    $1=~/^\/(\w+)\/(\w+)/;
 		    my $cid=$1.'_'.$2;