[LON-CAPA-cvs] cvs: loncom /interface loncreateuser.pm
matthew
lon-capa-cvs@mail.lon-capa.org
Mon, 11 Feb 2002 15:37:58 -0000
This is a MIME encoded message
--matthew1013441878
Content-Type: text/plain
matthew Mon Feb 11 10:37:58 2002 EDT
Modified files:
/loncom/interface loncreateuser.pm
Log:
First set of revisions made for reworking of user password code. A few
cosmetic changes and a few logic simplifying changes made as well.
--matthew1013441878
Content-Type: text/plain
Content-Disposition: attachment; filename="matthew-20020211103758.txt"
Index: loncom/interface/loncreateuser.pm
diff -u loncom/interface/loncreateuser.pm:1.24 loncom/interface/loncreateuser.pm:1.25
--- loncom/interface/loncreateuser.pm:1.24 Fri Feb 8 14:40:42 2002
+++ loncom/interface/loncreateuser.pm Mon Feb 11 10:37:58 2002
@@ -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 @@
$ccuname=~s/\W//g;
$ccdomain=~s/\W//g;
- $r->print(<<ENDENHEAD);
+ my $dochead =<<"ENDDOCHEAD";
<html>
<head>
<title>The LearningOnline Network with CAPA</title>
@@ -250,19 +251,19 @@
</script>
</head>
<body bgcolor="#FFFFFF">
-<img align=right src=/adm/lonIcons/lonlogos.gif>
-<h1>Create User, Change User Privileges</h1>
-<form action=/adm/createuser method=post name=cu>
-<input type=hidden name=phase value=three>
-<input type=hidden name=ccuname value=$ccuname>
-<input type=hidden name=ccdomain value=$ccdomain>
-<input type="hidden" value='' name="pres_value">
-<input type="hidden" value='' name="pres_type">
-<input type="hidden" value='' name="pres_marker">
-<input type=hidden name=cuname value="$ccuname">
-<input type=hidden name=cdomain value="$ccdomain">
-
-ENDENHEAD
+<img align="right" src="/adm/lonIcons/lonlogos.gif">
+ENDDOCHEAD
+ my $forminfo =<<"ENDFORMINFO";
+<form action="/adm/createuser" method="post" name="cu">
+<input type="hidden" name="phase" value="three">
+<input type="hidden" name="ccuname" value="$ccuname">
+<input type="hidden" name="ccdomain" value="$ccdomain">
+<input type="hidden" name="pres_value" value="" >
+<input type="hidden" name="pres_type" value="" >
+<input type="hidden" name="pres_marker" value="" >
+<input type="hidden" name="cuname" value="$ccuname">
+<input type="hidden" name="cdomain" value="$ccdomain">
+ENDFORMINFO
my $uhome=&Apache::lonnet::homeserver($ccuname,$ccdomain);
my %incdomains;
my %inccourses;
@@ -276,18 +277,29 @@
}
if ($uhome eq 'no_host') {
$r->print(<<ENDNUSER);
-<h2>New user $ccuname at $ccdomain</h2>
+$dochead
+<h1>Create New User</h1>
+$forminfo
+<h2>New user "$ccuname" in domain $ccdomain</h2>
ENDNUSER
$r->print(<<ENDNUSER);
$loginscript
<input type='hidden' name='makeuser' value='1' />
<h3>Personal Data</h3>
-First Name: <input type='text' name='cfirst' size='15' /><br />
-Middle Name: <input type='text' name='cmiddle' size='15' /><br />
-Last Name: <input type='text' name='clast' size='15' /><br />
-Generation: <input type='text' name='cgen' size='5' /><p>
+<p>
+<table>
+<tr><td>First Name </td>
+ <td><input type='text' name='cfirst' size='15' /></td></tr>
+<tr><td>Middle Name </td>
+ <td><input type='text' name='cmiddle' size='15' /></td></tr>
+<tr><td>Last Name </td>
+ <td><input type='text' name='clast' size='15' /></td></tr>
+<tr><td>Generation </td>
+ <td><input type='text' name='cgen' size='5' /></td></tr>
+</table>
+ID/Student Number <input type='text' name='cstid' size='15' /></p>
-ID/Student Number: <input type='text' name='cstid' size='10' /></p>
+<hr />
<h3>Login Data</h3>
$generalrule
@@ -296,11 +308,16 @@
$authformfsys
$authformloc
ENDNUSER
- } else {
- $r->print('<h2>Existing user '.$ccuname.' at '.$ccdomain.'</h2>');
-
+ } else { # user already exists
+ $r->print(<<ENDCHUSER);
+$dochead
+<h1>Change User Privileges</h1>
+$forminfo
+<h2>User "$ccuname" in domain $ccdomain </h2>
+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('<h4>Revoke Existing Roles</h4>'.
@@ -308,20 +325,23 @@
'<th>Start</th><th>End</th>');
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 @@
$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('<tr bgcolor=#'.$bgcol.'><td>');
- if ($active) {
- if ($allows) {
- $r->print(
- '<input type=checkbox name="rev:'.$thisrole.'">');
- } else {
- $r->print(' ');
- }
+ if (($role_end_time) && ($now>$role_end_time)) { $active=0; }
+ $r->print('<tr bgcolor=#"'.$bgcol.'"><td>');
+ if (!($active) && ($allows)) {
+ $r->print('<input type=checkbox name="rev:'.$thisrole.'">');
} else {
$r->print(' ');
}
- $r->print('</td><td>'.&Apache::lonnet::plaintext($trole).
+ $r->print('</td><td>'.&Apache::lonnet::plaintext($role_code).
'</td><td>'.$area.'</td><td>'.
- ($tstart?localtime($tstart):' ').'</td><td>'.
- ($tend?localtime($tend):' ')."</td></tr>\n");
+ ($role_start_time ? localtime($role_start_time)
+ : ' ' )
+ .'</td><td>'.
+ ($role_end_time ? localtime($role_end_time)
+ : ' ' )
+ ."</td></tr>\n");
}
}
$r->print('</table>');
@@ -369,12 +387,10 @@
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 @@
<h3>Enter New Login Data</h3>
$authformother
END
- }
- }
+ }
+ } ## End of new user/old user logic
$r->print('<hr /><h3>Add Roles</h3>');
#
# Co-Author
--matthew1013441878--