[LON-CAPA-cvs] cvs: loncom /interface loncommon.pm loncreateuser.pm londropadd.pm /lonnet/perl lonnet.pm
albertel
lon-capa-cvs@mail.lon-capa.org
Thu, 13 Feb 2003 21:35:50 -0000
This is a MIME encoded message
--albertel1045172150
Content-Type: text/plain
albertel Thu Feb 13 16:35:50 2003 EDT
Modified files:
/loncom/interface loncommon.pm londropadd.pm loncreateuser.pm
/loncom/lonnet/perl lonnet.pm
Log:
- Mark Lucas' code to add a domain.tab file it controls
- domain description,
- default authentication type
- default argument for that auth type
- I think this will break the install hopefully I'll get this jury rigged up to work today
--albertel1045172150
Content-Type: text/plain
Content-Disposition: attachment; filename="albertel-20030213163550.txt"
Index: loncom/interface/loncommon.pm
diff -u loncom/interface/loncommon.pm:1.79 loncom/interface/loncommon.pm:1.80
--- loncom/interface/loncommon.pm:1.79 Thu Feb 13 13:11:26 2003
+++ loncom/interface/loncommon.pm Thu Feb 13 16:35:50 2003
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# a pile of common routines
#
-# $Id: loncommon.pm,v 1.79 2003/02/13 18:11:26 www Exp $
+# $Id: loncommon.pm,v 1.80 2003/02/13 21:35:50 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -714,11 +714,27 @@
sub authform_header{
my %in = (
formname => 'cu',
- kerb_def_dom => 'MSU.EDU',
+ kerb_def_dom => '',
@_,
);
$in{'formname'} = 'document.' . $in{'formname'};
my $result='';
+
+#---------------------------------------------- Code for upper case translation
+ my $Javascript_toUpperCase;
+ unless ($in{kerb_def_dom}) {
+ $Javascript_toUpperCase =<<"END";
+ switch (choice) {
+ case 'krb': currentform.elements[choicearg].value =
+ currentform.elements[choicearg].value.toUpperCase();
+ break;
+ default:
+ }
+END
+ } else {
+ $Javascript_toUpperCase = "";
+ }
+
$result.=<<"END";
var current = new Object();
current.radiovalue = 'nochange';
@@ -752,12 +768,7 @@
function changed_text(choice,currentform) {
var choicearg = choice + 'arg';
if (currentform.elements[choicearg].value !='') {
- switch (choice) {
- case 'krb': currentform.elements[choicearg].value =
- currentform.elements[choicearg].value.toUpperCase();
- break;
- default:
- }
+ $Javascript_toUpperCase
// clear old field
if ((current.argfield != choicearg) && (current.argfield != null)) {
currentform.elements[current.argfield].value = '';
@@ -813,18 +824,26 @@
my %in = (
formname => 'document.cu',
kerb_def_dom => 'MSU.EDU',
+ kerb_def_auth => 'krb4',
@_,
);
my $result='';
+ my $check4;
+ my $check5;
+ if ($in{'kerb_def_auth'} eq 'krb5') {
+ $check5 = " checked=\"on\"";
+ } else {
+ $check4 = " checked=\"on\"";
+ }
$result.=<<"END";
<input type="radio" name="login" value="krb"
onclick="javascript:changed_radio('krb',$in{'formname'});"
onchange="javascript:changed_radio('krb',$in{'formname'});" />
Kerberos authenticated with domain
-<input type="text" size="10" name="krbarg" value=""
+<input type="text" size="10" name="krbarg" value="$in{'kerb_def_dom'}"
onchange="javascript:changed_text('krb',$in{'formname'});" />
-<input type="radio" name="krbver" value="4" checked="on" />Version 4
-<input type="radio" name="krbver" value="5" />Version 5
+<input type="radio" name="krbver" value="4" $check4 />Version 4
+<input type="radio" name="krbver" value="5" $check5 />Version 5
END
return $result;
}
@@ -885,6 +904,89 @@
###############################################################
## End Authentication changing form generation functions ##
+###############################################################
+
+###############################################################
+## Get Authentication Defaults for Domain ##
+###############################################################
+##
+## Returns default authentication type and an associated argument
+## as listed in file domain.tab
+##
+#-------------------------------------------
+
+=pod
+
+=item get_auth_defaults
+
+get_auth_defaults($target_domain) returns the default authentication
+type and an associated argument (initial password or a kerberos domain).
+These values are stored in lonTabs/domain.tab
+
+($def_auth, $def_arg) = &get_auth_defaults($target_domain);
+
+If target_domain is not found in domain.tab, returns nothing ('').
+
+=over 4
+
+=item get_auth_defaults
+
+=back
+
+=cut
+
+#-------------------------------------------
+sub get_auth_defaults {
+ my $domain=shift;
+ return ($Apache::lonnet::domain_auth_def{$domain},$Apache::lonnet::domain_auth_arg_def{$domain});
+}
+###############################################################
+## End Get Authentication Defaults for Domain ##
+###############################################################
+
+###############################################################
+## Get Kerberos Defaults for Domain ##
+###############################################################
+##
+## Returns default kerberos version and an associated argument
+## as listed in file domain.tab. If not listed, provides
+## appropriate default domain and kerberos version.
+##
+#-------------------------------------------
+
+=pod
+
+=item get_kerberos_defaults
+
+get_kerberos_defaults($target_domain) returns the default kerberos
+version and domain. If not found in domain.tabs, it defaults to
+version 4 and the domain of the server.
+
+($def_version, $def_krb_domain) = &get_kerberos_defaults($target_domain);
+
+=over 4
+
+=item get_kerberos_defaults
+
+=back
+
+=cut
+
+#-------------------------------------------
+sub get_kerberos_defaults {
+ my $domain=shift;
+ my ($krbdef,$krbdefdom) =
+ &Apache::loncommon::get_auth_defaults($domain);
+ unless ($krbdef =~/^krb/ && $krbdefdom) {
+ $ENV{'SERVER_NAME'}=~/(\w+\.\w+)$/;
+ my $krbdefdom=$1;
+ $krbdefdom=~tr/a-z/A-Z/;
+ $krbdef = "krb4";
+ }
+ return ($krbdef,$krbdefdom);
+}
+###############################################################
+## End Get Kerberos Defaults for Domain ##
###############################################################
###############################################################
Index: loncom/interface/londropadd.pm
diff -u loncom/interface/londropadd.pm:1.63 loncom/interface/londropadd.pm:1.64
--- loncom/interface/londropadd.pm:1.63 Mon Dec 9 19:54:37 2002
+++ loncom/interface/londropadd.pm Thu Feb 13 16:35:50 2003
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Handler to drop and add students in courses
#
-# $Id: londropadd.pm,v 1.63 2002/12/10 00:54:37 matthew Exp $
+# $Id: londropadd.pm,v 1.64 2003/02/13 21:35:50 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -461,7 +461,13 @@
###############################################################
sub print_upload_manager_footer {
my ($r,$i,$keyfields,$defdom,$today,$halfyear)=@_;
- my %param = ( formname => 'document.studentform');
+
+ my ($krbdef,$krbdefdom) =
+ &Apache::loncommon::get_kerberos_defaults($defdom);
+ my %param = ( formname => 'document.studentform',
+ kerb_def_dom => $krbdefdom,
+ kerb_def_auth => $krbdef
+ );
my $krbform = &Apache::loncommon::authform_kerberos(%param);
my $intform = &Apache::loncommon::authform_internal(%param);
my $locform = &Apache::loncommon::authform_local(%param);
@@ -522,12 +528,11 @@
my @records=&Apache::loncommon::upfile_record_sep();
my $total=$#records;
my $distotal=$total+1;
- $ENV{'SERVER_NAME'}=~/(\w+\.\w+)$/;
- my $krbdefdom=$1;
- $krbdefdom=~tr/a-z/A-Z/;
my $today=time;
my $halfyear=$today+15552000;
my $defdom=$r->dir_config('lonDefDomain');
+ my ($krbdef,$krbdefdom) =
+ &Apache::loncommon::get_kerberos_defaults($defdom);
&print_upload_manager_header($r,$datatoken,$distotal,$krbdefdom);
my $i;
my $keyfields;
@@ -629,14 +634,17 @@
sub print_enroll_single_student_form {
my $r=shift;
$r->print("<h3>Enroll One Student</h3>");
- my ($krbdefdom) = $ENV{'SERVER_NAME'}=~/(\w+\.\w+)$/;
- $krbdefdom=~tr/a-z/A-Z/;
my $today = time;
my $halfyear = $today+15552000;
my $defdom=$r->dir_config('lonDefDomain');
- my $javascript_validations=&javascript_validations($krbdefdom);
# Set up authentication forms
- my %param = ( formname => 'document.studentform');
+ my ($krbdef,$krbdefdom) =
+ &Apache::loncommon::get_kerberos_defaults($defdom);
+ my $javascript_validations=&javascript_validations($krbdefdom);
+ my %param = ( formname => 'document.studentform',
+ kerb_def_dom => $krbdefdom,
+ kerb_def_auth => $krbdef
+ );
my $krbform = &Apache::loncommon::authform_kerberos(%param);
my $intform = &Apache::loncommon::authform_internal(%param);
my $locform = &Apache::loncommon::authform_local(%param);
Index: loncom/interface/loncreateuser.pm
diff -u loncom/interface/loncreateuser.pm:1.47 loncom/interface/loncreateuser.pm:1.48
--- loncom/interface/loncreateuser.pm:1.47 Mon Feb 3 13:03:52 2003
+++ loncom/interface/loncreateuser.pm Thu Feb 13 16:35:50 2003
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Create a user
#
-# $Id: loncreateuser.pm,v 1.47 2003/02/03 18:03:52 harris41 Exp $
+# $Id: loncreateuser.pm,v 1.48 2003/02/13 21:35:50 albertel 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.47 2003/02/03 18:03:52 harris41 Exp $
+# $Id: loncreateuser.pm,v 1.48 2003/02/13 21:35:50 albertel Exp $
###
package Apache::loncreateuser;
@@ -70,10 +70,12 @@
my %param = ( formname => 'document.cu',
kerb_def_dom => $krbdefdom
);
- $loginscript = &Apache::loncommon::authform_header(%param);
+# no longer static due to configurable kerberos defaults
+# $loginscript = &Apache::loncommon::authform_header(%param);
$generalrule = &Apache::loncommon::authform_authorwarning(%param);
$authformnop = &Apache::loncommon::authform_nochange(%param);
- $authformkrb = &Apache::loncommon::authform_kerberos(%param);
+# no longer static due to configurable kerberos defaults
+# $authformkrb = &Apache::loncommon::authform_kerberos(%param);
$authformint = &Apache::loncommon::authform_internal(%param);
$authformfsys = &Apache::loncommon::authform_filesystem(%param);
$authformloc = &Apache::loncommon::authform_local(%param);
@@ -133,15 +135,17 @@
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 $defdom=$ENV{'request.role.domain'};
+
+ my ($krbdef,$krbdefdom) =
+ &Apache::loncommon::get_kerberos_defaults($defdom);
+
my %param = ( formname => 'document.cu',
- kerb_def_dom => $krbdefdom
+ kerb_def_dom => $krbdefdom,
+ kerb_def_auth => $krbdef
);
$loginscript = &Apache::loncommon::authform_header(%param);
-
- my $defdom=$ENV{'request.role.domain'};
+ $authformkrb = &Apache::loncommon::authform_kerberos(%param);
$ccuname=~s/\W//g;
$ccdomain=~s/\W//g;
Index: loncom/lonnet/perl/lonnet.pm
diff -u loncom/lonnet/perl/lonnet.pm:1.326 loncom/lonnet/perl/lonnet.pm:1.327
--- loncom/lonnet/perl/lonnet.pm:1.326 Thu Feb 13 14:07:46 2003
+++ loncom/lonnet/perl/lonnet.pm Thu Feb 13 16:35:50 2003
@@ -1,7 +1,7 @@
# The LearningOnline Network
# TCP networking package
#
-# $Id: lonnet.pm,v 1.326 2003/02/13 19:07:46 matthew Exp $
+# $Id: lonnet.pm,v 1.327 2003/02/13 21:35:50 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -76,7 +76,7 @@
%libserv %pr %prp %metacache %packagetab %titlecache
%courselogs %accesshash $processmarker $dumpcount
%coursedombuf %coursehombuf %courseresdatacache
- %domaindescription);
+ %domaindescription %domain_auth_def %domain_auth_arg_def);
use IO::Socket;
use GDBM_File;
use Apache::Constants qw(:common :http);
@@ -3573,6 +3573,29 @@
}
}
+# ------------------------------------------------------------ Read domain file
+{
+ my $fh=Apache::File->new($Apache::lonnet::perlvar{'lonTabDir'}.
+ '/domain.tab');
+ %domaindescription = ();
+ %domain_auth_def = ();
+ %domain_auth_arg_def = ();
+ if ($fh) {
+ while (<$fh>) {
+ next if /^\#/;
+ chomp;
+ my ($domain, $domain_description, $def_auth, $def_auth_arg)
+ = split(/:/,$_,4);
+ $domain_auth_def{$domain}=$def_auth;
+ $domain_auth_arg_def{$domain}=$def_auth_arg;
+ $domaindescription{$domain}=$domain_description;
+# &logthis("Domain.tab: $domain, $domain_auth_def{$domain}, $domain_auth_arg_def{$domain},$domaindescription{$domain}");
+# &logthis("Domain.tab: $domain ".$domaindescription{$domain} );
+ }
+ }
+}
+
+
# ------------------------------------------------------------- Read hosts file
{
my $config=Apache::File->new("$perlvar{'lonTabDir'}/hosts.tab");
@@ -3586,7 +3609,6 @@
$hostdom{$id}=$domain;
$hostip{$id}=$ip;
$iphost{$ip}=$id;
- if ($domdescr) { $domaindescription{$domain}=$domdescr; }
if ($role eq 'library') { $libserv{$id}=$name; }
} else {
if ($configline) {
--albertel1045172150--