Diff for /loncom/publisher/lonrights.pm between versions 1.23 and 1.31

version 1.23, 2007/06/22 00:11:22 version 1.31, 2011/11/02 18:40:17
Line 55  sub handler { Line 55  sub handler {
   &Apache::loncommon::content_type($r,'text/html');    &Apache::loncommon::content_type($r,'text/html');
   $r->send_http_header;    $r->send_http_header;
   
     # Breadcrumbs
     &Apache::lonhtmlcommon::clear_breadcrumbs();
     &Apache::lonhtmlcommon::add_breadcrumb({
         'text'  => 'Construction Space',
         'href'  => &Apache::loncommon::authorspace(),
         });
     &Apache::lonhtmlcommon::add_breadcrumb({
         'text'  => 'Custom Rights Editor',
         'title' => 'Custom Distribution Rights Editor',
         'href'  => '',});
   
   my $js = &Apache::loncommon::coursebrowser_javascript().    my $js = &Apache::loncommon::coursebrowser_javascript().
       &Apache::loncommon::studentbrowser_javascript();        &Apache::loncommon::studentbrowser_javascript();
   $r->print(&Apache::loncommon::start_page('Custom Distribution Rights',$js));    # Breadcrumbs are included by &start_page
     $r->print(&Apache::loncommon::start_page('Custom Distribution Rights',$js)
              .&Apache::loncommon::head_subbox(
                   &Apache::loncommon::CSTR_pageheader())
     );
   $r->rflush();    $r->rflush();
   
   my $uri=$r->uri;    my $uri=$r->uri;
   my $fn=&Apache::lonnet::filelocation('',$uri);    my $fn=&Apache::lonnet::filelocation('',$uri);
   my $contents='';    my $contents='';
   my $constructmode=($uri=~/^\/\~/);    my $constructmode=($uri=~ m/^/priv/});
   
 # ============================================================ Modify and store  # ============================================================ Modify and store
   if ($constructmode && $env{'form.store'}) {    if ($constructmode && $env{'form.store'}) {
Line 110  sub handler { Line 125  sub handler {
       $rulehash{'domain'}=$env{'user.domain'};         $rulehash{'domain'}=$env{'user.domain'}; 
   }    }
   my $realm='';    my $realm='';
     my $separator = ($rulehash{'type'} eq 'course') ? '_' : '/';
   if ($number) {    if ($number) {
       $realm=$rulehash{'domain'};        $realm=$rulehash{'domain'};
       if ($rulehash{'course'}) {        if ($rulehash{'course'}) {
   $realm.='_'.$rulehash{'course'};    $realm.=$separator.$rulehash{'course'};
       }        }
       if ($rulehash{'section'}) {        if ($rulehash{'section'}) {
   $realm.='_'.$rulehash{'section'};    $realm.=$separator.$rulehash{'section'};
       }        }
   }    }
   $newrules[$number]=$rulehash{'effect'}.':'.    $newrules[$number]=$rulehash{'effect'}.':'.
Line 126  sub handler { Line 142  sub handler {
       foreach my $key (keys(%env)) {        foreach my $key (keys(%env)) {
   next if ($key!~/^form\.action\_(\d+)$/);    next if ($key!~/^form\.action\_(\d+)$/);
   my $number=$1;    my $number=$1;
   if ($env{$key} eq 'delete') { $newrules[$number]=''; }    if ($env{$key} eq 'delete') { splice(@newrules,$number,1); }
   if (($env{$key} eq 'moveup') && ($number>1)) {    if (($env{$key} eq 'moveup') && ($number>1)) {
       my $buffer=$newrules[$number];        @newrules[$number-1,$number] = @newrules[$number,$number-1];
       $newrules[$number]=$newrules[$number-1];  
       $newrules[$number-1]=$buffer;  
   }    }
   if (($env{$key} eq 'movedown') && ($number<$#newrules)) {    if (($env{$key} eq 'movedown') && ($number<$#newrules)) {
       my $buffer=$newrules[$number];        @newrules[$number+1,$number] = @newrules[$number,$number+1];
       $newrules[$number]=$newrules[$number+1];  
       $newrules[$number+1]=$buffer;  
   }    }
   if ($env{$key} eq 'insertabove') {    if ($env{$key} eq 'insertabove') {
       for (my $i=$#newrules;$i>=$number;$i--) {        splice(@newrules,$number,0,'deny');
   $newrules[$i+1]=$newrules[$i];  
       }  
       $newrules[$number]='deny';  
   }    }
   if ($env{$key} eq 'insertbelow') {    if ($env{$key} eq 'insertbelow') {
       for (my $i=$#newrules;$i>$number;$i--) {        splice(@newrules,$number+1,0,'deny');
   $newrules[$i+1]=$newrules[$i];  
       }  
       $newrules[$number+1]='deny';  
   }    }
       }        }
               
Line 183  sub handler { Line 189  sub handler {
   my $token;    my $token;
   my $rulecounter=0;    my $rulecounter=0;
   my $colzero=&mt($constructmode?'Edit action':'Rule');    my $colzero=&mt($constructmode?'Edit action':'Rule');
   my %lt=&Apache::lonlocal::texthash('ef' => 'Effect',    my %lt=&Apache::lonlocal::texthash(
        'ef' => 'Effect',
        'ty' => 'Type',
      'do' => 'Domain',       'do' => 'Domain',
      'co' => 'Course',       'co' => 'Course / User',
      'se' => 'Section',       'se' => 'Section',
      'ro' => 'Role');       'ro' => 'Role');
 # ---------------------------------------------------------- Start table output  # ---------------------------------------------------------- Start table output
   $r->print(&Apache::loncommon::start_data_table().    $r->print(&Apache::loncommon::start_data_table().
     &Apache::loncommon::start_data_table_header_row().      &Apache::loncommon::start_data_table_header_row().
     "<th>$colzero</th><th>$lt{'ef'}</th><th>Type</th><th>$lt{'do'}</th>".      "<th>$colzero</th><th>$lt{'ef'}</th><th>$lt{'ty'}</th><th>$lt{'do'}</th>".
     "<th>$lt{'co'}</th><th>$lt{'se'}</th><th>$lt{'ro'}</th>".      "<th>$lt{'co'}</th><th>$lt{'se'}</th><th>$lt{'ro'}</th>".
     &Apache::loncommon::end_data_table_header_row());      &Apache::loncommon::end_data_table_header_row());
 # --------------------------------------------------------------------- Default  # --------------------------------------------------------------------- Default
Line 202  sub handler { Line 210  sub handler {
   $r->print(&Apache::loncommon::start_data_table_row().'<td align="right">');    $r->print(&Apache::loncommon::start_data_table_row().'<td align="right">');
   if ($constructmode) {    if ($constructmode) {
      $r->print(&Apache::loncommon::select_form('','action_0',       $r->print(&Apache::loncommon::select_form('','action_0',
                                   ('' => '',                                    {'' => '',
    'insertbelow' => 'Insert rule below    ')));                                     'insertbelow' => &mt('Insert rule below')}));
                                                                                                   
   } else {    } else {
       $r->print('&nbsp;');        $r->print('&nbsp;');
   }    }
   $r->print('</td><td>');    $r->print('</td><td>');
   if ($constructmode) {    if ($constructmode) {
       $r->print(&Apache::loncommon::select_form        my %lt = &Apache::lonlocal::texthash
                                  ($token->[2]->{'effect'},'effect_0',  
                                    ('allow' => 'allow',                                     ('allow' => 'allow',
                                     'deny'  => 'deny')));                                      'deny'  => 'deny');
         $r->print(&Apache::loncommon::select_form
                                    ($token->[2]->{'effect'},'effect_0',\%lt));
   } else {    } else {
       $r->print($token->[2]->{'effect'});        $r->print($token->[2]->{'effect'});
   }    }
Line 232  sub handler { Line 241  sub handler {
 # insert, delete, etc  # insert, delete, etc
   $r->print('<span class="LC_nobreak">'.$rulecounter.'. ');    $r->print('<span class="LC_nobreak">'.$rulecounter.'. ');
           if ($constructmode) {            if ($constructmode) {
                my %lt = &Apache::lonlocal::texthash
                             ('' => '',
                              'delete' => 'Delete this rule',
                              'insertabove' => 'Insert rule above',
                              'insertbelow' => 'Insert rule below',
                              'moveup'      => 'Move rule up',
                              'movedown'    => 'Move rule down'
                              );
   
              $r->print(&Apache::loncommon::select_form(               $r->print(&Apache::loncommon::select_form(
                     '','action_'.$rulecounter,                      '','action_'.$rulecounter,\%lt));
                     ('' => '',   
                      'delete' => 'Delete this rule',  
                      'insertabove' => 'Insert rule above',  
                      'insertbelow' => 'Insert rule below    ',  
                      'moveup'      => 'Move rule up',  
                      'movedown'    => 'Move rule down')));  
   }    }
           $r->print('</span></td>'.            $r->print('</span></td>'.
     '<td rowspan="2">');      '<td rowspan="2">');
 # effect  # effect
           if ($constructmode) {            if ($constructmode) {
                my %lt = &Apache::lonlocal::texthash
                                ('allow' => 'allow',
                                 'deny'  => 'deny');
              $r->print(&Apache::loncommon::select_form               $r->print(&Apache::loncommon::select_form
                                  ($token->[2]->{'effect'},                                   ($token->[2]->{'effect'},
                                   'effect_'.$rulecounter,                                    'effect_'.$rulecounter,\%lt));
                                    ('allow' => 'allow',  
                                     'deny'  => 'deny')));  
           } else {            } else {
              $r->print($token->[2]->{'effect'});               $r->print($token->[2]->{'effect'});
           }            }
Line 258  sub handler { Line 271  sub handler {
   $r->print('</td><td rowspan="2">');    $r->print('</td><td rowspan="2">');
   my $type = ($token->[2]{'type'} || 'course');    my $type = ($token->[2]{'type'} || 'course');
           if ($constructmode) {            if ($constructmode) {
                 my %lt = &Apache::lonlocal::texthash
                              ('course' => 'Course',
                               'user'   => 'User');
               $r->print(&Apache::loncommon::select_form($type,                $r->print(&Apache::loncommon::select_form($type,
  'type_'.$rulecounter,   'type_'.$rulecounter,\%lt));
  ('course' => 'Course',  
  'user'   => 'User')));  
           } else {            } else {
               $r->print($type);                $r->print($type);
           }            }
   
 # ---- realm  # ---- realm
           my $realm=$token->[2]->{'realm'};            my $realm=$token->[2]->{'realm'};
           my ($rdom,$rcourse,$rsec)=split(/[\/\_]/,$realm);            my ($rdom,$rcourse,$rsec);
   $rdom = &LONCAPA::clean_domain($rdom);  
   if ($type eq 'course') {    if ($type eq 'course') {
         ($rdom,$rcourse,$rsec) = split(m{[/_]},$realm,3);
       $rcourse = &LONCAPA::clean_courseid($rcourse);        $rcourse = &LONCAPA::clean_courseid($rcourse);
   } else {    } else {
         ($rdom,$rcourse,$rsec) = split(m{/},$realm,3);
       $rcourse = &LONCAPA::clean_username($rcourse);        $rcourse = &LONCAPA::clean_username($rcourse);
   }    }
   
   
           $r->print('</td><td>');            $r->print('</td><td>');
 # realm domain  # realm domain
           if ($constructmode) {            if ($constructmode) {
Line 317  sub handler { Line 330  sub handler {
   my $role=$token->[2]->{'role'};    my $role=$token->[2]->{'role'};
   unless ($role) { $role=''; }    unless ($role) { $role=''; }
   $r->print(&Apache::loncommon::select_form(    $r->print(&Apache::loncommon::select_form(
     $role,'role_'.$rulecounter,%hash));      $role,'role_'.$rulecounter,\%hash));
       } else {        } else {
   $r->print(&Apache::lonnet::plaintext($token->[2]->{'role'}));    $r->print(&Apache::lonnet::plaintext($token->[2]->{'role'}));
       }        }

Removed from v.1.23  
changed lines
  Added in v.1.31


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>