--- loncom/html/adm/helper/newslot.helper 2017/06/23 20:14:36 1.30.2.1 +++ loncom/html/adm/helper/newslot.helper 2018/06/27 14:35:09 1.30.4.1 @@ -26,32 +26,8 @@ my $name=$helper->{VARS}{'origname'}; my %slot=&Apache::lonnet::get('slots', [$name], $cdom, $cnum); if (!ref($slot{$name})) { return $default; } - if (($which eq 'ipdeny') || ($which eq 'ipallow')) { - if (!exists($slot{$name}{'ip'})) { return $default; } - } else { - if (!exists($slot{$name}{$which})) { return $default; } - } - if (($which eq 'ipdeny') || ($which eq 'ipallow')) { - my @allows; - my @denies; - foreach my $item (split(',',$slot{$name}{'ip'})) { - $item =~ s/^\s*//; - $item =~ s/\s*$//; - if ($item =~ /^\!(.+)$/) { - push(@denies,$1); - } else { - push(@allows,$item); - } - } - if ($which eq 'ipdeny') { - return join(',',@denies); - } - if ($which eq 'ipallow') { - return join(',',@allows); - } - } else { - return $slot{$name}{$which}; - } + if (!exists($slot{$name}{$which})) { return $default; } + return $slot{$name}{$which}; } @@ -208,11 +184,34 @@ delete($helper->{'VARS'}{'startreserve'}); delete($helper->{'VARS'}{'endreserve'}); delete($helper->{'VARS'}{'maxspace'}); - delete($helper->{'VARS'}{'startunique'}); - delete($helper->{'VARS'}{'endunique'}); + +

Period of time when this slot can only be uniquely assigned:
   Start: + + + + my $default=&{$helper->{DATA}{origslot}}('uniqueperiod','anytime'); + if ($default eq 'anytime') { return 'anytime' }; + if (ref($default)) { return $default->[0]; } + return 'anytime'; + + +
   End:
+ + + my $default=&{$helper->{DATA}{origslot}}('uniqueperiod','anytime'); + if ($default eq 'anytime') { return 'anytime' }; + if (ref($default)) { return $default->[1]; } + return 'anytime'; + + + if (defined($val) && $val < $helper->{'VARS'}{'startunique'}) { + return 'End time must be later than the start time.'; + } + return undef; + + -

Proctored access: @@ -253,28 +252,14 @@ -

IP restrictions -- allow from all except:
    - - - - - return undef; - - - return &{$helper->{DATA}{origslot}}('ipdeny'); - - - - -

IP restrictions -- deny from all except:
    +

IP restrictions:
    - - + return undef; - return &{$helper->{DATA}{origslot}}('ipallow'); + return &{$helper->{DATA}{origslot}}('ip');

@@ -364,32 +349,12 @@ $slot{$which} = $helper->{'VARS'}{$which}; } - foreach my $which ('description','maxspace','secret','symb') { + foreach my $which ('ip','description','maxspace','secret','symb') { if ( $helper->{'VARS'}{$which} =~/\S/ ) { $slot{$which} = $helper->{'VARS'}{$which}; } } - if ($helper->{'VARS'}{'ipdeny'} =~/\S/ ) { - foreach my $item (split(',',$helper->{'VARS'}{'ipdeny'})) { - $item =~ s/^\s*//; - $item =~ s/\s*$//; - $slot{'ip'} .= '!'.$item.','; - } - } - - if ($helper->{'VARS'}{'ipallow'} =~/\S/ ) { - foreach my $item (split(',',$helper->{'VARS'}{'ipallow'})) { - $item =~ s/^\s*//; - $item =~ s/\s*$//; - $slot{'ip'} .= $item.','; - } - } - - if ($slot{'ip'} ne '') { - $slot{'ip'} =~s /,$//; - } - if ($helper->{'VARS'}{'type'} eq 'schedulable_student') { if (($helper->{'VARS'}{'reservationmsg'} eq 'only_student') || ($helper->{'VARS'}{'reservationmsg'} eq 'student_and_user_notes_screen')) {