[LON-CAPA-cvs] cvs: loncom(GCI_3) /interface lonuserutils.pm
raeburn
raeburn@source.lon-capa.org
Mon, 15 Nov 2010 17:37:47 -0000
raeburn Mon Nov 15 17:37:47 2010 EDT
Modified files: (Branch: GCI_3)
/loncom/interface lonuserutils.pm
Log:
- Customization for GCI_3
- Backport 1.128, 1.129, 1.132.
- Modification for changed position (GCI_3) of password item in fields list.
Index: loncom/interface/lonuserutils.pm
diff -u loncom/interface/lonuserutils.pm:1.109.2.8 loncom/interface/lonuserutils.pm:1.109.2.9
--- loncom/interface/lonuserutils.pm:1.109.2.8 Tue Nov 9 14:14:55 2010
+++ loncom/interface/lonuserutils.pm Mon Nov 15 17:37:47 2010
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Utility functions for managing LON-CAPA user accounts
#
-# $Id: lonuserutils.pm,v 1.109.2.8 2010/11/09 14:14:55 raeburn Exp $
+# $Id: lonuserutils.pm,v 1.109.2.9 2010/11/15 17:37:47 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -630,28 +630,43 @@
###############################################################
sub upload_manager_javascript_forward_associate {
my ($can_assign) = @_;
- my $auth_update;
+ my ($auth_update,$numbuttons,$argreset);
if (ref($can_assign) eq 'HASH') {
- if (keys(%{$can_assign}) > 1) {
+ if ($can_assign->{'krb4'} || $can_assign->{'krb5'}) {
+ $argreset .= " vf.krbarg.value='';\n";
+ $numbuttons ++ ;
+ }
+ if ($can_assign->{'int'}) {
+ $argreset .= " vf.intarg.value='';\n";
+ $numbuttons ++;
+ }
+ if ($can_assign->{'loc'}) {
+ $argreset .= " vf.locarg.value='';\n";
+ $numbuttons ++;
+ }
+ if (!$can_assign->{'int'}) {
+ my $warning = &mt('You may not specify an initial password for each user, as this is only available when new users use LON-CAPA internal authentication.\n').
+ &mt('Your current role does not have rights to create users with that authentication type.');
+ $auth_update = <<"END";
+ // Currently the initial password field is only supported for internal auth
+ // (see bug 6368).
+ if (nw==2) {
+ eval('vf.f'+tf+'.selectedIndex=0;')
+ alert('$warning');
+ }
+END
+ } elsif ($numbuttons > 1) {
$auth_update = <<"END";
// If we set the password, make the password form below correspond to
// the new value.
- if (nw==9) {
+ if (nw==2) {
changed_radio('int',document.studentform);
set_auth_radio_buttons('int',document.studentform);
+$argreset
+ }
+
END
}
- if ($can_assign->{'krb'}) {
- $auth_update .= " vf.krbarg.value='';\n";
- }
- if ($can_assign->{'int'}) {
- $auth_update .= " vf.intarg.value='';\n";
- }
- if ($can_assign->{'loc'}) {
- $auth_update .= " vf.locarg.value='';\n";
- }
- $auth_update .= "
- }\n";
}
return(<<ENDPICK);
@@ -749,28 +764,44 @@
###############################################################
sub upload_manager_javascript_reverse_associate {
my ($can_assign) = @_;
- my $auth_update;
+ my ($auth_update,$numbuttons,$argreset);
if (ref($can_assign) eq 'HASH') {
- if (keys(%{$can_assign}) > 1) {
- $auth_update = <<"END";
- // initial password specified, pick internal authentication
- if (tf==8 && nw!=0) {
- changed_radio('int',document.studentform);
- set_auth_radio_buttons('int',document.studentform);
-END
- }
- if ($can_assign->{'krb'}) {
- $auth_update .= " vf.krbarg.value='';\n";
+ if ($can_assign->{'krb4'} || $can_assign->{'krb5'}) {
+ $argreset .= " vf.krbarg.value='';\n";
+ $numbuttons ++ ;
}
if ($can_assign->{'int'}) {
- $auth_update .= " vf.intarg.value='';\n";
+ $argreset .= " vf.intarg.value='';\n";
+ $numbuttons ++;
}
if ($can_assign->{'loc'}) {
- $auth_update .= " vf.locarg.value='';\n";
+ $argreset .= " vf.locarg.value='';\n";
+ $numbuttons ++;
+ }
+ if (!$can_assign->{'int'}) {
+ my $warning = &mt('You may not specify an initial password, as this is only available when new users use LON-CAPA internal authentication.\n').
+ &mt('Your current role does not have rights to create users with that authentication type.');
+ $auth_update = <<"END";
+ // Currently the initial password field is only supported for internal auth
+ // (see bug 6368).
+ if (tf==1 && nw!=0) {
+ eval('vf.f'+tf+'.selectedIndex=0;')
+ alert('$warning');
+ }
+END
+ } elsif ($numbuttons > 1) {
+ $auth_update = <<"END";
+ // initial password specified, pick internal authentication
+ if (tf==1 && nw!=0) {
+ changed_radio('int',document.studentform);
+ set_auth_radio_buttons('int',document.studentform);
+$argreset
+ }
+
+END
}
- $auth_update .= "
- }\n";
}
+
return(<<ENDPICK);
function verify(vf,sec_caller) {
var founduname=0;
@@ -4164,6 +4195,7 @@
my @secs;
my %entries=&Apache::loncommon::record_sep($line);
# Determine user name
+ $entries{$fields{'username'}} =~ s/^\s+|\s+$//g;
unless (($entries{$fields{'username'}} eq '') ||
(!defined($entries{$fields{'username'}}))) {
my ($fname, $mname, $lname,$gen) = ('','','','');
@@ -4184,13 +4216,20 @@
$gen=$entries{$fields{'gen'}};
}
}
+
if ($entries{$fields{'username'}}
ne &LONCAPA::clean_username($entries{$fields{'username'}})) {
+ my $nowhitespace;
+ if ($entries{$fields{'username'}} =~ /\s/) {
+ $nowhitespace = ' - '.&mt('usernames may not contain spaces.');
+ }
$r->print('<br />'.
&mt('[_1]: Unacceptable username for user [_2] [_3] [_4] [_5]',
- '<b>'.$entries{$fields{'username'}}.'</b>',$fname,$mname,$lname,$gen));
+ '<b>'.$entries{$fields{'username'}}.'</b>',$fname,$mname,$lname,$gen).
+ $nowhitespace);
next;
} else {
+ $entries{$fields{'domain'}} =~ s/^\s+|\s+$//g;
if ($entries{$fields{'domain'}}
ne &LONCAPA::clean_domain($entries{$fields{'domain'}})) {
$r->print('<br />'. '<b>'.$entries{$fields{'domain'}}.
@@ -4249,6 +4288,7 @@
# determine email address
my $email='';
if (defined($fields{'email'})) {
+ $entries{$fields{'email'}} =~ s/^\s+|\s+$//g;
if (defined($entries{$fields{'email'}})) {
$email=$entries{$fields{'email'}};
unless ($email=~/^[^\@]+\@[^\@]+$/) { $email=''; }
@@ -4295,7 +4335,7 @@
$role = $defaultrole;
}
# Clean up whitespace
- foreach (\$id,\$fname,\$mname,\$lname,\$gen) {
+ foreach (\$id,\$fname,\$mname,\$lname,\$gen,\$inststatus) {
$$_ =~ s/(\s+$|^\s+)//g;
}
# check against rules