version 1.20, 2001/11/16 06:23:11
|
version 1.24, 2002/02/08 19:40:42
|
Line 1
|
Line 1
|
# The LearningOnline Network with CAPA |
# The LearningOnline Network with CAPA |
# Create a user |
# Create a user |
# |
# |
|
# $Id$ |
|
# |
|
# Copyright Michigan State University Board of Trustees |
|
# |
|
# This file is part of the LearningOnline Network with CAPA (LON-CAPA). |
|
# |
|
# LON-CAPA is free software; you can redistribute it and/or modify |
|
# it under the terms of the GNU General Public License as published by |
|
# the Free Software Foundation; either version 2 of the License, or |
|
# (at your option) any later version. |
|
# |
|
# LON-CAPA is distributed in the hope that it will be useful, |
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
# GNU General Public License for more details. |
|
# |
|
# You should have received a copy of the GNU General Public License |
|
# along with LON-CAPA; if not, write to the Free Software |
|
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
# |
|
# /home/httpd/html/adm/gpl.txt |
|
# |
|
# http://www.lon-capa.org/ |
|
# |
# (Create a course |
# (Create a course |
# (My Desk |
# (My Desk |
# |
# |
Line 39 my $authformint;
|
Line 63 my $authformint;
|
my $authformfsys; |
my $authformfsys; |
my $authformloc; |
my $authformloc; |
|
|
sub BEGIN { |
BEGIN { |
$ENV{'SERVER_NAME'}=~/(\w+\.\w+)$/; |
$ENV{'SERVER_NAME'}=~/(\w+\.\w+)$/; |
my $krbdefdom=$1; |
my $krbdefdom=$1; |
$krbdefdom=~tr/a-z/A-Z/; |
$krbdefdom=~tr/a-z/A-Z/; |
Line 242 ENDENHEAD
|
Line 266 ENDENHEAD
|
my $uhome=&Apache::lonnet::homeserver($ccuname,$ccdomain); |
my $uhome=&Apache::lonnet::homeserver($ccuname,$ccdomain); |
my %incdomains; |
my %incdomains; |
my %inccourses; |
my %inccourses; |
map { |
foreach (%Apache::lonnet::hostdom) { |
$incdomains{$_}=1; |
$incdomains{$_}=1; |
} values %Apache::lonnet::hostdom; |
} |
map { |
foreach (keys(%ENV)) { |
if ($_=~/^user\.priv\.cm\.\/(\w+)\/(\w+)/) { |
if ($_=~/^user\.priv\.cm\.\/(\w+)\/(\w+)/) { |
$inccourses{$1.'_'.$2}=1; |
$inccourses{$1.'_'.$2}=1; |
} |
} |
} %ENV; |
} |
if ($uhome eq 'no_host') { |
if ($uhome eq 'no_host') { |
$r->print(<<ENDNUSER); |
$r->print(<<ENDNUSER); |
<h2>New user $ccuname at $ccdomain</h2> |
<h2>New user $ccuname at $ccdomain</h2> |
Line 282 ENDNUSER
|
Line 306 ENDNUSER
|
$r->print('<h4>Revoke Existing Roles</h4>'. |
$r->print('<h4>Revoke Existing Roles</h4>'. |
'<table border=2><tr><th>Revoke</th><th>Role</th><th>Extent</th>'. |
'<table border=2><tr><th>Revoke</th><th>Role</th><th>Extent</th>'. |
'<th>Start</th><th>End</th>'); |
'<th>Start</th><th>End</th>'); |
map { |
foreach (split(/&/,$rolesdump)) { |
if ($_!~/^rolesdef\&/) { |
if ($_!~/^rolesdef\&/) { |
|
|
my ($area,$role)=split(/=/,$_); |
my ($area,$role)=split(/=/,$_); |
Line 336 ENDNUSER
|
Line 360 ENDNUSER
|
($tstart?localtime($tstart):' ').'</td><td>'. |
($tstart?localtime($tstart):' ').'</td><td>'. |
($tend?localtime($tend):' ')."</td></tr>\n"); |
($tend?localtime($tend):' ')."</td></tr>\n"); |
} |
} |
} split(/&/,$rolesdump); |
} |
$r->print('</table>'); |
$r->print('</table>'); |
} |
} |
my $currentauth=&Apache::lonnet::queryauthenticate($ccuname,$ccdomain); |
my $currentauth=&Apache::lonnet::queryauthenticate($ccuname,$ccdomain); |
Line 346 ENDNUSER
|
Line 370 ENDNUSER
|
$loginscript=~s/vf\.krbdom\.value='.*?';/vf.krbdom.value='$krbdefdom2';/; |
$loginscript=~s/vf\.krbdom\.value='.*?';/vf.krbdom.value='$krbdefdom2';/; |
} |
} |
# minor script hack here |
# minor script hack here |
$loginscript=~s/login\[3\]/login\[4\]/; |
# $loginscript=~s/login\[3\]/login\[4\]/; # loc |
$loginscript=~s/login\[2\]/login\[3\]/; |
# $loginscript=~s/login\[2\]/login\[3\]/; # fsys |
$loginscript=~s/login\[1\]/login\[2\]/; |
# $loginscript=~s/login\[1\]/login\[2\]/; # int |
$loginscript=~s/login\[0\]/login\[1\]/; |
# $loginscript=~s/login\[0\]/login\[1\]/; # krb4 |
|
|
$r->print(<<END); |
|
<hr /> |
|
$loginscript |
|
END |
|
unless ($currentauth=~/^krb4:/ or |
unless ($currentauth=~/^krb4:/ or |
$currentauth=~/^unix:/ or |
$currentauth=~/^unix:/ or |
$currentauth=~/^internal:/ or |
$currentauth=~/^internal:/ or |
$currentauth=~/^localauth:/ |
$currentauth=~/^localauth:/ |
) { |
) { |
$r->print(<<END); |
$r->print(<<END); |
|
<hr /> |
|
$loginscript |
<font color='#ff0000'>ERROR:</font> |
<font color='#ff0000'>ERROR:</font> |
This user has an unrecognized authentication scheme ($currentauth). |
This user has an unrecognized authentication scheme ($currentauth). |
Please specify login data below. |
Please specify login data below. |
Line 378 END
|
Line 400 END
|
if ($currentauth=~/^krb4:/) { |
if ($currentauth=~/^krb4:/) { |
$authformcurrent=$authformkrb; |
$authformcurrent=$authformkrb; |
$authformother=$authformint.$authformfsys.$authformloc; |
$authformother=$authformint.$authformfsys.$authformloc; |
|
# embarrassing 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 |
} |
} |
elsif ($currentauth=~/^internal:/) { |
elsif ($currentauth=~/^internal:/) { |
$authformcurrent=$authformint; |
$authformcurrent=$authformint; |
$authformother=$authformkrb.$authformfsys.$authformloc; |
$authformother=$authformkrb.$authformfsys.$authformloc; |
|
# embarrassing script hack here |
|
$loginscript=~s/login\[3\]/login\[4\]/; # loc |
|
$loginscript=~s/login\[2\]/login\[3\]/; # fsys |
|
$loginscript=~s/login\[1\]/login\[1\]/; # int |
|
$loginscript=~s/login\[0\]/login\[2\]/; # krb4 |
} |
} |
elsif ($currentauth=~/^unix:/) { |
elsif ($currentauth=~/^unix:/) { |
$authformcurrent=$authformfsys; |
$authformcurrent=$authformfsys; |
$authformother=$authformkrb.$authformint.$authformloc; |
$authformother=$authformkrb.$authformint.$authformloc; |
|
# embarrassing script hack here |
|
$loginscript=~s/login\[3\]/login\[4\]/; # loc |
|
$loginscript=~s/login\[1\]/login\[3\]/; # int |
|
$loginscript=~s/login\[2\]/login\[1\]/; # fsys |
|
$loginscript=~s/login\[0\]/login\[2\]/; # krb4 |
} |
} |
elsif ($currentauth=~/^localauth:/) { |
elsif ($currentauth=~/^localauth:/) { |
$authformcurrent=$authformloc; |
$authformcurrent=$authformloc; |
$authformother=$authformkrb.$authformint.$authformfsys; |
$authformother=$authformkrb.$authformint.$authformfsys; |
|
# embarrassing script hack here |
|
$loginscript=~s/login\[3\]/login\[loc\]/; # loc |
|
$loginscript=~s/login\[2\]/login\[4\]/; # fsys |
|
$loginscript=~s/login\[1\]/login\[3\]/; # int |
|
$loginscript=~s/login\[0\]/login\[2\]/; # krb4 |
|
$loginscript=~s/login\[loc\]/login\[1\]/; # loc |
} |
} |
$authformcurrent=<<END; |
$authformcurrent=<<END; |
<table border='1'> |
<table border='1'> |
Line 402 END
|
Line 445 END
|
</table> |
</table> |
END |
END |
$r->print(<<END); |
$r->print(<<END); |
|
<hr /> |
|
$loginscript |
<h3>Change Current Login Data</h3> |
<h3>Change Current Login Data</h3> |
$generalrule |
$generalrule |
$authformnop |
$authformnop |
Line 443 ENDCOAUTH
|
Line 488 ENDCOAUTH
|
$r->print('<h4>Domain Level</h4>'. |
$r->print('<h4>Domain Level</h4>'. |
'<table border=2><tr><th>Activate</th><th>Role</th><th>Extent</th>'. |
'<table border=2><tr><th>Activate</th><th>Role</th><th>Extent</th>'. |
'<th>Start</th><th>End</th></tr>'); |
'<th>Start</th><th>End</th></tr>'); |
map { |
foreach ( sort( keys(%incdomains))) { |
my $thisdomain=$_; |
my $thisdomain=$_; |
map { |
foreach ('dc','li','dg','au') { |
if (&Apache::lonnet::allowed('c'.$_,$thisdomain)) { |
if (&Apache::lonnet::allowed('c'.$_,$thisdomain)) { |
my $plrole=&Apache::lonnet::plaintext($_); |
my $plrole=&Apache::lonnet::plaintext($_); |
$r->print(<<ENDDROW); |
$r->print(<<ENDDROW); |
Line 462 ENDCOAUTH
|
Line 507 ENDCOAUTH
|
</tr> |
</tr> |
ENDDROW |
ENDDROW |
} |
} |
} ('dc','li','dg','au'); |
} |
} sort keys %incdomains; |
} |
$r->print('</table>'); |
$r->print('</table>'); |
# |
# |
# Course level |
# Course level |
Line 471 ENDDROW
|
Line 516 ENDDROW
|
$r->print('<h4>Course Level</h4>'. |
$r->print('<h4>Course Level</h4>'. |
'<table border=2><tr><th>Activate</th><th>Role</th><th>Extent</th>'. |
'<table border=2><tr><th>Activate</th><th>Role</th><th>Extent</th>'. |
'<th>Group/Section</th><th>Start</th><th>End</th></tr>'); |
'<th>Group/Section</th><th>Start</th><th>End</th></tr>'); |
map { |
foreach (sort( keys(%inccourses))) { |
my $thiscourse=$_; |
my $thiscourse=$_; |
my $protectedcourse=$_; |
my $protectedcourse=$_; |
$thiscourse=~s:_:/:g; |
$thiscourse=~s:_:/:g; |
Line 480 ENDDROW
|
Line 525 ENDDROW
|
my $bgcol=$thiscourse; |
my $bgcol=$thiscourse; |
$bgcol=~s/[^8-9b-e]//g; |
$bgcol=~s/[^8-9b-e]//g; |
$bgcol=substr($bgcol.$bgcol.$bgcol.'ffffff',0,6); |
$bgcol=substr($bgcol.$bgcol.$bgcol.'ffffff',0,6); |
map { |
foreach ('st','ta','ep','ad','in','cc') { |
if (&Apache::lonnet::allowed('c'.$_,$thiscourse)) { |
if (&Apache::lonnet::allowed('c'.$_,$thiscourse)) { |
my $plrole=&Apache::lonnet::plaintext($_); |
my $plrole=&Apache::lonnet::plaintext($_); |
$r->print(" |
$r->print(" |
Line 502 ENDDROW
|
Line 547 ENDDROW
|
</tr> |
</tr> |
ENDROW |
ENDROW |
} |
} |
} ('st','ta','ep','ad','in','cc'); |
} |
} sort keys %inccourses; |
} |
$r->print('</table>'); |
$r->print('</table>'); |
$r->print('<input type=submit value="Modify User">'); |
$r->print('<input type=submit value="Modify User">'); |
$r->print('</form></body></html>'); |
$r->print('</form></body></html>'); |
Line 583 ENDTHREEHEAD
|
Line 628 ENDTHREEHEAD
|
$r->print('Modifying authentication: '. |
$r->print('Modifying authentication: '. |
&Apache::lonnet::modifyuserauth( |
&Apache::lonnet::modifyuserauth( |
$ENV{'form.cdomain'},$ENV{'form.cuname'}, |
$ENV{'form.cdomain'},$ENV{'form.cuname'}, |
$amode,$genpwd); |
$amode,$genpwd)); |
$r->print('<br>Home server: '.&Apache::lonnet::homeserver |
$r->print('<br>Home server: '.&Apache::lonnet::homeserver |
($ENV{'form.cuname'},$ENV{'form.cdomain'})); |
($ENV{'form.cuname'},$ENV{'form.cdomain'})); |
|
|
Line 596 ENDTHREEHEAD
|
Line 641 ENDTHREEHEAD
|
} |
} |
my $now=time; |
my $now=time; |
$r->print('<h3>Modifying Roles</h3>'); |
$r->print('<h3>Modifying Roles</h3>'); |
map { |
foreach (keys (%ENV)) { |
if (($_=~/^form\.rev\:([^\_]+)\_([^\_]+)$/) && ($ENV{$_})) { |
if (($_=~/^form\.rev\:([^\_]+)\_([^\_]+)$/) && ($ENV{$_})) { |
$r->print('Revoking '.$2.' in '.$1.': '. |
$r->print('Revoking '.$2.' in '.$1.': '. |
&Apache::lonnet::assignrole($ENV{'form.cdomain'},$ENV{'form.cuname'}, |
&Apache::lonnet::assignrole($ENV{'form.cdomain'},$ENV{'form.cuname'}, |
Line 613 ENDTHREEHEAD
|
Line 658 ENDTHREEHEAD
|
$ENV{'course.'.$cid.'.home'}).'<br>'); |
$ENV{'course.'.$cid.'.home'}).'<br>'); |
} |
} |
} |
} |
} keys %ENV; |
} |
map { |
foreach (keys(%ENV)) { |
if (($_=~/^form\.act\_([^\_]+)\_([^\_]+)\_([^\_]+)$/) && ($ENV{$_})) { |
if (($_=~/^form\.act\_([^\_]+)\_([^\_]+)\_([^\_]+)$/) && ($ENV{$_})) { |
my $url='/'.$1.'/'.$2; |
my $url='/'.$1.'/'.$2; |
if ($ENV{'form.sec_'.$1.'_'.$2.'_'.$3}) { |
if ($ENV{'form.sec_'.$1.'_'.$2.'_'.$3}) { |
Line 656 ENDTHREEHEAD
|
Line 701 ENDTHREEHEAD
|
&Apache::lonnet::assignrole($ENV{'form.cdomain'},$ENV{'form.cuname'}, |
&Apache::lonnet::assignrole($ENV{'form.cdomain'},$ENV{'form.cuname'}, |
$url,$2,$end,$start).'<br>'); |
$url,$2,$end,$start).'<br>'); |
} |
} |
} keys %ENV; |
} |
$r->print('</body></html>'); |
$r->print('</body></html>'); |
} |
} |
|
|