--- loncom/interface/lonuserutils.pm 2024/01/05 04:09:47 1.184.4.10.2.7
+++ loncom/interface/lonuserutils.pm 2017/08/11 18:58:16 1.189
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Utility functions for managing LON-CAPA user accounts
#
-# $Id: lonuserutils.pm,v 1.184.4.10.2.7 2024/01/05 04:09:47 raeburn Exp $
+# $Id: lonuserutils.pm,v 1.189 2017/08/11 18:58:16 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -103,7 +103,7 @@ sub modifystudent {
sub modifyuserrole {
my ($context,$setting,$changeauth,$cid,$udom,$uname,$uid,$umode,$upass,
$first,$middle,$last,$gene,$sec,$forceid,$desiredhome,$email,$role,
- $end,$start,$checkid,$inststatus,$emptyok) = @_;
+ $end,$start,$checkid,$inststatus) = @_;
my ($scope,$userresult,$authresult,$roleresult,$idresult);
if ($setting eq 'course' || $context eq 'course') {
$scope = '/'.$cid;
@@ -134,25 +134,6 @@ sub modifyuserrole {
generation => $gene,
id => $uid,
);
-
- # When "Update ID in user's course(s)" and "Force change of existing ID"
- # checkboxes both checked, prevent replacement of name information
- # in classlist.db file(s) for the user's course(s) with blank(s),
- # in the case where the uploaded csv file was without column(s) for
- # the particular field. Fields are: First Name, Middle Names/Initials,
- # Last Name (or the composite: Last Name, First Names), and Generation.
-
- my %emptyallowed;
- if ((ref($emptyok) eq 'HASH') && (keys(%{$emptyok}) > 0)) {
- %emptyallowed = %{$emptyok};
- }
- foreach my $field (keys(%userupdate)) {
- if ($userupdate{$field} eq '') {
- unless ($emptyallowed{$field}) {
- delete($userupdate{$field});
- }
- }
- }
$idresult = &propagate_id_change($uname,$udom,\%userupdate);
}
}
@@ -457,7 +438,7 @@ sub javascript_validations {
} elsif ($context eq 'domain') {
$setsection_call = 'setCourse()';
$setsections_js = &dc_setcourse_js($param{'formname'},$mode,
- $context,$showcredits,$domain);
+ $context,$showcredits);
}
$finish = " var checkSec = $setsection_call\n".
" if (checkSec == 'ok') {\n".
@@ -529,7 +510,7 @@ END
";
} elsif ($mode eq 'modifycourse') {
$auth_checks .= "
- if ((current.argfield !== null) && (current.argfield !== undefined) && (current.argfield !== '') && (vf.elements[current.argfield].value == null || vf.elements[current.argfield].value == '')) {
+ if (vf.elements[current.argfield].value == null || vf.elements[current.argfield].value == '') {
";
}
if ( ($mode eq 'createcourse') || ($mode eq 'modifycourse') ) {
@@ -550,25 +531,19 @@ END
/* regexp here to check for non \d \. in credits */
END
} else {
- my ($numrules,$intargjs) =
- &Apache::loncommon::passwd_validation_js('vf.elements[current.argfield].value',$domain);
$auth_checks .= (< '.&mt('Error').': '.
- &mt('Invalid datatoken').' '
- .''
.'
'.
@@ -2081,7 +2033,7 @@ sub get_cols_array {
}
sub column_checkboxes {
- my ($context,$mode,$formname,$showcredits,$showstart,$showend) = @_;
+ my ($context,$mode,$formname,$showcredits) = @_;
my @cols = &get_cols_array($context,$mode,$showcredits);
my @showncols = &Apache::loncommon::get_env_multiple('form.showcol');
my (%disabledchk,%unchecked);
@@ -2094,21 +2046,11 @@ sub column_checkboxes {
if ($showcredits) {
$unchecked{'credits'} = 1;
}
- my %curr_groups = &Apache::longroup::coursegroups();
- unless (keys(%curr_groups)) {
- $unchecked{'groups'} = 1;
- }
- } elsif ($context eq 'domain') {
+ } elsif ($context eq 'domain') {
$unchecked{'extent'} = 1;
}
- if ($showstart) {
- $unchecked{'lastlogin'} = 1;
- } else {
- $unchecked{'start'} = 1;
- }
- unless ($showend) {
- $unchecked{'end'} = 1;
- }
+ $unchecked{'start'} = 1;
+ $unchecked{'end'} = 1;
} else {
if ($env{'form.Status'} ne 'Any') {
$disabledchk{'status'} = 1;
@@ -2345,6 +2287,7 @@ sub build_user_record {
sub courses_selector {
my ($cdom,$formname) = @_;
+ my %coursecodes = ();
my %codes = ();
my @codetitles = ();
my %cat_titles = ();
@@ -2357,15 +2300,14 @@ sub courses_selector {
my $jscript = '';
my $totcodes = 0;
- my $instcats = &Apache::lonnet::get_dom_instcats($cdom);
- if (ref($instcats) eq 'HASH') {
- if ((ref($instcats->{'codetitles'}) eq 'ARRAY') && (ref($instcats->{'codes'}) eq 'HASH') &&
- (ref($instcats->{'cat_titles'}) eq 'HASH') && (ref($instcats->{'cat_order'}) eq 'HASH')) {
- %codes = %{$instcats->{'codes'}};
- @codetitles = @{$instcats->{'codetitles'}};
- %cat_titles = %{$instcats->{'cat_titles'}};
- %cat_order = %{$instcats->{'cat_order'}};
- $totcodes = scalar(keys(%codes));
+ $totcodes =
+ &Apache::courseclassifier::retrieve_instcodes(\%coursecodes,
+ $cdom,$totcodes);
+ if ($totcodes > 0) {
+ $format_reply =
+ &Apache::lonnet::auto_instcode_format($caller,$cdom,\%coursecodes,
+ \%codes,\@codetitles,\%cat_titles,\%cat_order);
+ if ($format_reply eq 'ok') {
my $numtypes = @codetitles;
&Apache::courseclassifier::build_code_selections(\%codes,\@codetitles,\%cat_titles,\%cat_order,\%idlist,\%idnums,\%idlist_titles);
my ($scripttext,$longtitles) = &Apache::courseclassifier::javascript_definitions(\@codetitles,\%idlist,\%idlist_titles,\%idnums,\%cat_titles);
@@ -3579,8 +3521,6 @@ END
setSections(formname,'$crstype');
if (seccheck == 'ok') {
opener.document.$callingform.newsecs.value = formname.sections.value;
- } else {
- return;
}
END
} else {
@@ -4165,7 +4105,7 @@ sub print_first_users_upload_form {
.&Apache::lonhtmlcommon::end_pick_box();
$str .= '
\n". - &mt('Roles added for [quant,_1,user].',$counts{'role'}).' '. - &mt('If a user is currently logged-in to LON-CAPA, any new roles which are active will be available when the user next logs in.'). - "
\n"); + &mt('Roles added for [quant,_1,user].',$counts{'role'}).' '.&mt('If a user is currently logged-in to LON-CAPA, any new roles which are active will be available when the user next logs in.')."\n"); } else { $r->print(''.&mt('No roles added').'
'); } @@ -4986,7 +4907,6 @@ sub upfile_drop_add { $counts{'auth'})."\n"); } $r->print(&print_namespacing_alerts($domain,\%alerts,\%curr_rules)); - $r->print(&passwdrule_alerts($domain,\%showpasswdrules)); ##################################### # Display list of students to drop # ##################################### @@ -4995,9 +4915,10 @@ sub upfile_drop_add { # Get current classlist my $classlist = &Apache::loncoursedata::get_classlist(); if (! defined($classlist)) { - $r->print(''. - &mt('There are no students with current/future access to the course.'). - '
'."\n"); + $r->print(''."\n"); } elsif (ref($classlist) eq 'HASH') { # Remove the students we just added from the list of students. foreach my $line (@userdata) { @@ -5013,7 +4934,9 @@ sub upfile_drop_add { } } } # end of unless - return 'ok'; + if ($env{'form.fullup'} ne 'yes') { + $r->print(''); + } } sub print_namespacing_alerts { @@ -5056,42 +4979,6 @@ sub print_namespacing_alerts { } } -sub passwdrule_alerts { - my ($domain,$passwdrules) = @_; - my $warning; - if (ref($passwdrules) eq 'HASH') { - my %showrules = %{$passwdrules}; - if (keys(%showrules)) { - my %passwdconf = &Apache::lonnet::get_passwdconf($domain); - $warning = ''.&mt('Password requirement(s) unmet for one or more users:').'