--- loncom/interface/loncreateuser.pm 2001/02/19 22:58:53 1.2
+++ loncom/interface/loncreateuser.pm 2002/08/07 18:49:36 1.38
@@ -1,6 +1,30 @@
-# The LearningOnline Network
+# The LearningOnline Network with CAPA
# Create a user
#
+# $Id: loncreateuser.pm,v 1.38 2002/08/07 18:49:36 matthew Exp $
+#
+# 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
# (My Desk
#
@@ -10,26 +34,60 @@
# 5/21/99,5/22,5/25,5/26,5/31,6/2,6/10,7/12,7/14,
# 1/14/00,5/29,5/30,6/1,6/29,7/1,11/9 Gerd Kortemeyer)
#
+# YEAR=2001
# 3/1/1 Gerd Kortemeyer)
#
# 3/1 Gerd Kortemeyer)
#
# 2/14 Gerd Kortemeyer)
#
-# 2/14,2/17,2/19 Gerd Kortemeyer
+# 2/14,2/17,2/19,2/20,2/21,2/22,2/23,3/2,3/17,3/24,04/12 Gerd Kortemeyer
+# 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.38 2002/08/07 18:49:36 matthew Exp $
+###
+
package Apache::loncreateuser;
use strict;
use Apache::Constants qw(:common :http);
use Apache::lonnet;
+my $loginscript; # piece of javascript used in two separate instances
+my $generalrule;
+my $authformnop;
+my $authformkrb;
+my $authformint;
+my $authformfsys;
+my $authformloc;
+
+BEGIN {
+ $ENV{'SERVER_NAME'}=~/(\w+\.\w+)$/;
+ my $krbdefdom=$1;
+ $krbdefdom=~tr/a-z/A-Z/;
+ my %param = ( formname => 'document.cu',
+ kerb_def_dom => $krbdefdom
+ );
+ $loginscript = &Apache::loncommon::authform_header(%param);
+ $generalrule = &Apache::loncommon::authform_authorwarning(%param);
+ $authformnop = &Apache::loncommon::authform_nochange(%param);
+ $authformkrb = &Apache::loncommon::authform_kerberos(%param);
+ $authformint = &Apache::loncommon::authform_internal(%param);
+ $authformfsys = &Apache::loncommon::authform_filesystem(%param);
+ $authformloc = &Apache::loncommon::authform_local(%param);
+}
+
# =================================================================== Phase one
sub phase_one {
my $r=shift;
my $defdom=$ENV{'user.domain'};
- $r->print(<Create User, Change User Privileges
@@ -48,115 +108,660 @@ ENDDOCUMENT
}
# =================================================================== Phase two
-
sub phase_two {
my $r=shift;
my $ccuname=$ENV{'form.ccuname'};
my $ccdomain=$ENV{'form.ccdomain'};
+
+ $ENV{'SERVER_NAME'}=~/(\w+\.\w+)$/;
+ my $krbdefdom=$1;
+ $krbdefdom=~tr/a-z/A-Z/;
+ my %param = ( formname => 'document.cu',
+ kerb_def_dom => $krbdefdom
+ );
+ $loginscript = &Apache::loncommon::authform_header(%param);
+
+ my $defdom=$ENV{'user.domain'};
+
$ccuname=~s/\W//g;
$ccdomain=~s/\W//g;
- $r->print(<Create User, Change User Privileges
-
$generalrule
+$authformkrb
+$authformint
+$authformfsys
+$authformloc
+ENDNEWUSER + } else { # user already exists + $r->print(<first name | middle name | last name | generation | +
---|---|---|---|
+END + } else { + $r->print(' | '.$userenv{$_}.' | '); + } + } + $r->print(<
Revoke | Role | Extent | '. - 'Start | End | '); - map { - if ($_!~/^rolesdef\&/) { - - my ($area,$role)=split(/=/,$_); - my $thisrole=$area; - $area=~s/\_\w\w$//; - my ($trole,$tend,$tstart)=split(/_/,$role); - - my $allows=0; - if ($area=~/^\/(\w+)\/(\d\w+)\/(\w+)/) { - my %coursedata=&Apache::lonnet::coursedescription($1.'_'.$2); - $area='Course: '. - $coursedata{'description'}.'
---|---|---|---|---|
'); - if ($active) { - if ($allows) { - $r->print( - ''); - } else { - $r->print(' '); - } - } else { - $r->print(' '); - } - $r->print(' | '.&Apache::lonnet::plaintext($trole). - ' | '.$area.' | '. - ($tstart?localtime($tstart):' ').' | '. - ($tend?localtime($tend):' ')." |
Revoke | Role | Extent | Start | End | +END + foreach my $area (keys(%rolesdump)) { + next if ($area =~ /^rolesdef/); + my $role = $rolesdump{$area}; + my $thisrole=$area; + $area =~ s/\_\w\w$//; + my ($role_code,$role_end_time,$role_start_time) = + split(/_/,$role); + my $bgcol='ffffff'; + my $allowed=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'.$role_code,$1.'/'.$2)) { + $allowed=1; + } + # Compute the background color based on $area + $bgcol=$1.'_'.$2; + $bgcol=~s/[^8-9b-e]//g; + $bgcol=substr($bgcol.$bgcol.$bgcol.'ffffff',0,6); + if ($area=~/^\/(\w+)\/(\d\w+)\/(\w+)/) { + $carea.='
---|---|---|---|---|
'; + my $active=1; + $active=0 if (($role_end_time) && ($now>$role_end_time)); + if (($active) && ($allowed)) { + $row.= ''; + } else { + $row.=' '; + } + $row.= ' | '.&Apache::lonnet::plaintext($role_code). + ' | '.$area. + ' | '.($role_start_time?localtime($role_start_time) + : ' ' ). + ' | '.($role_end_time ?localtime($role_end_time) + : ' ' ) + ." |
$generalrule
+$authformkrb
+$authformint
+$authformfsys
+$authformloc
+ENDBADAUTH + } else { + # This user is not allowed to modify the users + # authentication scheme, so just notify them of the problem + $r->print(<$authformint
\n". + "$authformfsys
$authformloc
"; + } + elsif ($currentauth=~/^internal:/) { + $authformcurrent=$authformint; + $authform_other="$authformkrb
". + "$authformfsys
$authformloc
"; + } + elsif ($currentauth=~/^unix:/) { + $authformcurrent=$authformfsys; + $authform_other="$authformkrb
". + "$authformint
$authformloc;
"; + } + elsif ($currentauth=~/^localauth:/) { + $authformcurrent=$authformloc; + $authform_other="$authformkrb
". + "$authformint
$authformfsys
"; + } + $authformcurrent=<$generalrule
+$authformnop
+$authformcurrent
+Activate | Role | Extent | +Start | End |
---|---|---|---|---|
+ | Co-Author | +$cudom\_$cuname | ++Set Start Date | ++Set End Date | +
Activate | Role | Extent | '. + 'Start | End | + | $plrole | +$thisdomain | ++Set Start Date | ++Set End Date | + +ENDDROW } - } ('dc','cc','li','dg','au'); - } sort keys %incdomains; - $r->print('
---|