');
my ($fixedauth,$varauth,$authmsg);
@@ -2022,7 +2158,13 @@ sub update_user_data {
}
}
foreach my $item (@requestcourses) {
- $newcustom{$item} = $env{'form.requestcourses_'.$item};
+ $newcustom{$item} = $env{'form.crsreq_'.$item};
+ if ($env{'form.crsreq_'.$item} eq 'autolimit') {
+ $newcustom{$item} .= '=';
+ unless ($env{'form.crsreq_'.$item.'_limit'} =~ /\D/) {
+ $newcustom{$item} .= $env{'form.crsreq_'.$item.'_limit'};
+ }
+ }
$changed{$item} = &tool_admin($item,$newcustom{$item},
\%changeHash,'requestcourses');
}
@@ -2668,6 +2810,9 @@ sub tool_changes {
return;
}
if ($context eq 'reqcrsotherdom') {
+ my @options = ('approve','validate','autolimit');
+ my $optregex = join('|',@options);
+ my %reqdisplay = &courserequest_display();
my $cdom = $env{'request.role.domain'};
foreach my $tool (@{$usertools}) {
$oldaccesstext->{$tool} = &mt('no');
@@ -2686,19 +2831,31 @@ sub tool_changes {
my @curr = split(',',$userenv->{$context.'.'.$tool});
my @new;
my $changedoms;
- if (grep(/^\Q$cdom\E$/,@curr)) {
+ my $newop = $env{'form.'.$context.'_'.$tool};
+ if ($newop eq 'autolimit') {
+ $newop .= '=';
+ unless ($env{'form.'.$context.'_'.$tool.'_limit'} =~ /\D/) {
+ $newop .= $env{'form.'.$context.'_'.$tool.'_limit'};
+ }
+ }
+ if (grep(/^\Q$cdom:($optregex\=?\d*)\E$/,@curr)) {
$oldaccesstext->{$tool} = &mt('yes');
- unless ($env{'form.'.$context.'_'.$tool}) {
+ my $oldop = $1;
+ if ($oldop ne $newop) {
$changedoms = 1;
foreach my $dom (@curr) {
unless ($dom eq $cdom) {
push(@new,$dom);
}
}
+ if ($newop) {
+ push(@new,$cdom.':'.$newop);
+ }
+ @new = sort(@new);
}
} elsif ($env{'form.'.$context.'_'.$tool}) {
$changedoms = 1;
- @new = sort(@curr,$cdom);
+ @new = sort(@curr,$cdom.':'.$newop);
}
$newaccesstext->{$tool} = $oldaccesstext->{$tool};
if ($changedoms) {
@@ -2710,9 +2867,17 @@ sub tool_changes {
$context);
if ($changed->{$tool}) {
if ($env{'form.'.$context.'_'.$tool}) {
- $newaccesstext->{$tool} = &mt('yes');
+ if ($env{'form.'.$context.'_'.$tool} eq 'autolimit') {
+ if ($env{'form.'.$context.'_'.$tool.'_limit'} =~ /\D/) {
+ $newaccesstext->{$tool} = &mt('Yes, processed automatically');
+ } else {
+ $newaccesstext->{$tool} = &mt('Yes, up to limit of [quant,_1,request] per user).',$env{'form.'.$context.'_'.$tool.'_limit'});
+ }
+ } else {
+ $newaccesstext->{$tool} = $reqdisplay{$env{'form.'.$context.'_'.$tool}};
+ }
} else {
- $newaccesstext->{$tool} = &mt('no');
+ $newaccesstext->{$tool} = &mt('No');
}
}
}
@@ -2721,6 +2886,15 @@ sub tool_changes {
return;
}
foreach my $tool (@{$usertools}) {
+ my $newval;
+ if ($context eq 'requestcourses') {
+ $newval = $env{'form.crsreq_'.$tool};
+ if ($newval eq 'autolimit') {
+ $newval .= '='.$env{'form.crsreq_'.$tool.'_limit'};
+ }
+ } else {
+ $newval = $env{'form.'.$context.'_'.$tool};
+ }
if ($userenv->{$context.'.'.$tool} ne '') {
$oldaccess->{$tool} = &mt('custom');
if ($userenv->{$context.'.'.$tool}) {
@@ -2730,12 +2904,12 @@ sub tool_changes {
}
$changeHash->{$context.'.'.$tool} = $userenv->{$context.'.'.$tool};
if ($env{'form.custom'.$tool} == 1) {
- if ($env{'form.'.$context.'_'.$tool} ne $userenv->{$context.'.'.$tool}) {
- $changed->{$tool} = &tool_admin($tool,$env{'form.'.$context.'_'.$tool},
- $changeHash,$context);
+ if ($newval ne $userenv->{$context.'.'.$tool}) {
+ $changed->{$tool} = &tool_admin($tool,$newval,$changeHash,
+ $context);
if ($changed->{$tool}) {
$newaccess->{$tool} = &mt('custom');
- if ($env{'form.'.$context.'_'.$tool}) {
+ if ($newval) {
$newaccesstext->{$tool} = &mt("availability set to 'on'");
} else {
$newaccesstext->{$tool} = &mt("availability set to 'off'");
@@ -2768,11 +2942,11 @@ sub tool_changes {
} else {
$oldaccess->{$tool} = &mt('default');
if ($env{'form.custom'.$tool} == 1) {
- $changed->{$tool} = &tool_admin($tool,$env{'form.'.$context.'_'.$tool},
- $changeHash,$context);
+ $changed->{$tool} = &tool_admin($tool,$newval,$changeHash,
+ $context);
if ($changed->{$tool}) {
$newaccess->{$tool} = &mt('custom');
- if ($env{'form.'.$context.'_'.$tool}) {
+ if ($newval) {
$newaccesstext->{$tool} = &mt("availability set to 'on'");
} else {
$newaccesstext->{$tool} = &mt("availability set to 'off'");
@@ -5622,17 +5796,27 @@ sub build_search_response {
$response .= ' '.&mt('You may want to broaden your search to the selected LON-CAPA domain.');
}
}
- if (!($srch->{'srchby'} eq 'uname' && $srch->{'srchin'} eq 'dom' && $srch->{'srchtype'} eq 'exact' && $srch->{'srchdomain'} eq $env{'request.role.domain'})) {
+ my $createdom = $env{'request.role.domain'};
+ if ($context eq 'requestcrs') {
+ if ($env{'form.coursedom'} ne '') {
+ $createdom = $env{'form.coursedom'};
+ }
+ }
+ if (!($srch->{'srchby'} eq 'uname' && $srch->{'srchin'} eq 'dom' && $srch->{'srchtype'} eq 'exact' && $srch->{'srchdomain'} eq $createdom)) {
my $cancreate =
- &Apache::lonuserutils::can_create_user($env{'request.role.domain'},$context);
+ &Apache::lonuserutils::can_create_user($createdom,$context);
+ my $targetdom = ''.$createdom.'';
if ($cancreate) {
- my $showdom = &display_domain_info($env{'request.role.domain'});
+ my $showdom = &display_domain_info($createdom);
$response .= '
'
.''.&mt('To add a new user:').''
- .' '
- .&mt("(You can only create new users in your current role's domain - [_1])"
- ,''.$env{'request.role.domain'}.'')
- .'
'
+ .' ';
+ if ($context eq 'requestcrs') {
+ $response .= &mt("(You can only define new users in the new course's domain - [_1])",$targetdom);
+ } else {
+ $response .= &mt("(You can only create new users in your current role's domain - [_1])",$targetdom);
+ }
+ $response .='
'
.&mt("Set 'Domain/institution to search' to: [_1]",''.$showdom.'')
.'
'
.&mt("Set 'Search criteria' to: [_1]username is ..... in selected LON-CAPA domain[_2]",'','')
@@ -5643,14 +5827,17 @@ sub build_search_response {
.'
'
- .&mt("You are not authorized to create new users in your current role's domain - [_1]."
- ,''.$env{'request.role.domain'}.'')
- .' '
- .&mt('Please contact the [_1]helpdesk[_2] if you need to create a new user.'
+ $response .= '
';
+ if ($context eq 'requestcrs') {
+ $response .= &mt("You are not authorized to defined new users in the new course's domain - [_1].",$targetdom);
+ } else {
+ $response .= &mt("You are not authorized to create new users in your current role's domain - [_1].",$targetdom);
+ }
+ $response .= ' '
+ .&mt('Please contact the [_1]helpdesk[_2] if you need to create a new user.'
,' '
,'')
- .'