--- loncom/interface/loncreateuser.pm 2007/09/12 23:26:25 1.184
+++ loncom/interface/loncreateuser.pm 2007/09/12 23:42:37 1.185
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Create a user
#
-# $Id: loncreateuser.pm,v 1.184 2007/09/12 23:26:25 raeburn Exp $
+# $Id: loncreateuser.pm,v 1.185 2007/09/12 23:42:37 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -420,10 +420,29 @@ sub print_user_query_page {
sub print_user_modification_page {
my ($r,$ccuname,$ccdomain,$srch,$response) = @_;
- unless (($ccuname) && ($ccdomain)) {
- &print_username_entry_form($r);
+ if (($ccuname eq '') || ($ccdomain eq '')) {
+ my $usermsg = &mt('No username and/or domain provided.');
+ &print_username_entry_form($r,$usermsg);
return;
}
+ my ($instsrch,$rulematch,$rules,%inst_results);
+ my $uhome=&Apache::lonnet::homeserver($ccuname,$ccdomain);
+ if ($uhome eq 'no_host') {
+ $instsrch =
+ {
+ srchin => 'instd',
+ srchby => 'uname',
+ srchtype => 'exact',
+ srchterm => $ccuname,
+ srchdomain => $ccdomain,
+ };
+ (my $usercheckmsg,$rulematch,$rules,%inst_results) =
+ &Apache::loncommon::username_rule_check($instsrch,'new');
+ if ($usercheckmsg) {
+ &print_username_entry_form($r,$usercheckmsg);
+ return;
+ }
+ }
if ($response) {
$response = '
-
'.$response
}
@@ -675,7 +694,6 @@ ENDSECCODE
ENDFORMINFO
- my $uhome=&Apache::lonnet::homeserver($ccuname,$ccdomain);
my %inccourses;
foreach my $key (keys(%env)) {
if ($key=~/^user\.priv\.cm\.\/($match_domain)\/($match_username)/) {
@@ -683,51 +701,41 @@ ENDFORMINFO
}
}
if ($uhome eq 'no_host') {
- my $newuser;
- my $instsrch = {
- srchin => 'instd',
- srchby => 'uname',
- srchtype => 'exact',
- };
- if ($env{'form.phase'} eq 'userpicked') {
- $instsrch->{'srchterm'} = $env{'form.seluname'};
- $instsrch->{'srchdomain'} = $env{'form.seludom'};
- } else {
- $instsrch->{'srchterm'} = $ccuname;
- $instsrch->{'srchdomain'} = $ccdomain,
- }
- if (($instsrch->{'srchterm'} ne '') && ($instsrch->{'srchdomain'} ne '')) {
- $newuser = $instsrch->{'srchterm'}.':'.$instsrch->{'srchdomain'};
- }
- my (%dirsrch_results,%inst_results,$dirsrchres);
- if ($newuser) {
- if (&directorysrch_check($instsrch) eq 'ok') {
- ($dirsrchres,%dirsrch_results) = &Apache::lonnet::inst_directory_query($instsrch);
- if ($dirsrchres eq 'ok') {
- if (ref($dirsrch_results{$newuser}) eq 'HASH') {
- %inst_results = %{$dirsrch_results{$newuser}};
- }
- }
- }
- }
my $home_server_list=
''."\n".
&Apache::loncommon::home_server_option_list($ccdomain);
my %lt=&Apache::lonlocal::texthash(
- 'cnu' => "Create New User",
- 'nu' => "New User",
- 'id' => "in domain",
- 'pd' => "Personal Data",
- 'fn' => "First Name",
- 'mn' => "Middle Name",
- 'ln' => "Last Name",
- 'gen' => "Generation",
- 'mail' => "Permanent e-mail address",
- 'idsn' => "ID/Student Number",
- 'hs' => "Home Server",
- 'lg' => "Login Data"
+ 'cnu' => "Create New User",
+ 'nu' => "New User",
+ 'ind' => "in domain",
+ 'pd' => "Personal Data",
+ 'firstname' => "First Name",
+ 'middlename' => "Middle Name",
+ 'lastname' => "Last Name",
+ 'generation' => "Generation",
+ 'permanentemail' => "Permanent e-mail address",
+ 'id' => "ID/Student Number",
+ 'hs' => "Home Server",
+ 'lg' => "Login Data"
);
+ my @userinfo = ('firstname','middlename','lastname','generation','permanentemail','id');
+ my %textboxsize = (
+ firstname => '15',
+ middlename => '15',
+ lastname => '15',
+ generation => '5',
+ permanentemail => '25',
+ id => '15',
+ );
+ my %element = (
+ firstname => 'cfirst',
+ middlename => 'cmiddle',
+ lastname => 'clast',
+ generation => 'cgen',
+ permanentemail => 'cemail',
+ id => 'cstid',
+ );
my $portfolioform;
if (&Apache::lonnet::allowed('mpq',$env{'request.role.domain'})) {
# Current user has quota modification privileges
@@ -735,43 +743,91 @@ ENDFORMINFO
}
my $genhelp=&Apache::loncommon::help_open_topic('Generation');
&initialize_authen_forms();
- $r->print(<$lt{'nu'} "$ccuname" $lt{'id'} $ccdomain
+$lt{'nu'} "$ccuname" $lt{'ind'} $ccdomain
$lt{'pd'}
-
-$lt{'idsn'}
-$lt{'fn'}
-
-$lt{'mn'}
-
-$lt{'ln'}
-
-$lt{'gen'}$genhelp
-
-$lt{'mail'}
-
$generalrule
-$authformkrb
-$authformint
-$authformfsys
-$authformloc
+ENDNEWUSER + my ($fixedauth,$varauth,$authmsg); + if ($rulematch) { + if (ref($rules) eq 'HASH') { + if (ref($rules->{$rulematch}) eq 'HASH') { + my $authtype = $rules->{$rulematch}{'authtype'}; + if ($authtype !~ /^(krb4|krb5|int|fsys|loc)$/) { + $r->print(&set_login()); + } else { + my $authparm = $rules->{$rulematch}{'authparm'}; + if ($authtype =~ /^krb(4|5)$/) { + my $ver = $1; + if ($authparm ne '') { + $fixedauth = <<"KERB"; + + + +KERB + $authmsg = $rules->{$rulematch}{'authmsg'}; + } + } else { + $fixedauth = +''."\n"; + if ($rules->{$rulematch}{'authparmfixed'}) { + $fixedauth .= +''."\n"; + } else { + $varauth = +''."\n"; + } + } + } + } else { + $r->print(&set_login()); + } + } + if ($authmsg) { + $r->print(<$authformkrb
+$authformint
+$authformfsys
+$authformloc
+ENDAUTH + return $response; +} + # ================================================================= Phase Three sub update_user_data { my ($r) = @_; @@ -2494,7 +2561,6 @@ sub directorysrch_check { } } - sub get_courseusers { my %advhash; my $classlist = &Apache::loncoursedata::get_classlist();