--- loncom/publisher/lonrights.pm 2004/05/18 13:44:56 1.14
+++ loncom/publisher/lonrights.pm 2007/05/02 01:34:23 1.22
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Handler to show and edit custom distribution rights
#
-# $Id: lonrights.pm,v 1.14 2004/05/18 13:44:56 taceyjo1 Exp $
+# $Id: lonrights.pm,v 1.22 2007/05/02 01:34:23 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -32,7 +32,7 @@ package Apache::lonrights;
use strict;
use Apache::Constants qw(:common :http);
-use Apache::lonnet();
+use Apache::lonnet;
use Apache::loncommon();
use HTML::LCParser;
use Apache::File;
@@ -41,11 +41,11 @@ use Apache::lonlocal;
sub handler {
my $r=shift;
- my $target = $ENV{'form.grade_target'};
+ my $target = $env{'form.grade_target'};
if ($target eq 'meta') {
&Apache::loncommon::content_type($r,'text/html');
$r->send_http_header;
- $ENV{'request.uri'}=$r->uri;
+ $env{'request.uri'}=$r->uri;
my $file = &Apache::lonnet::filelocation("",$r->uri);
my $content=&Apache::lonnet::getfile($file);
my $result=&Apache::lonxml::xmlparse(undef,'meta',$content);
@@ -55,11 +55,9 @@ sub handler {
&Apache::loncommon::content_type($r,'text/html');
$r->send_http_header;
- $r->print(
- '
LON-CAPA Custom Distribution Rights'.
- &Apache::loncommon::coursebrowser_javascript().'');
+ my $js = &Apache::loncommon::coursebrowser_javascript();
- $r->print(&Apache::loncommon::bodytag('Custom Distribution Rights'));
+ $r->print(&Apache::loncommon::start_page('Custom Distribution Rights',$js));
$r->rflush();
my $uri=$r->uri;
@@ -69,16 +67,16 @@ sub handler {
# ============================================================ Modify and store
if ($constructmode) {
- if ($ENV{'form.store'}) {
+ if ($env{'form.store'}) {
my @newrules=();
undef @newrules;
# read rules from form
- foreach (keys %ENV) {
+ foreach (keys %env) {
if ($_=~/^form\.effect\_(\d+)$/) {
my $number=$1;
my %rulehash=();
foreach ('effect','domain','course','section','role') {
- $rulehash{$_}=$ENV{'form.'.$_.'_'.$number};
+ $rulehash{$_}=$env{'form.'.$_.'_'.$number};
}
if ($rulehash{'role'} eq 'au') {
$rulehash{'course'}='';
@@ -91,11 +89,11 @@ sub handler {
($rulehash{'effect'} eq 'allow')) {
$rulehash{'effect'}='deny';
}
- $rulehash{'domain'}=~s/\W//g;
- $rulehash{'course'}=~s/\W//g;
+ $rulehash{'domain'} = &LONCAPA::clean_domain($rulehash{'domain'});
+ $rulehash{'course'} = &LONCAPA::clean_courseid($rulehash{'course'});
$rulehash{'section'}=~s/\W//g;
unless ($rulehash{'domain'}) {
- $rulehash{'domain'}=$ENV{'user.domain'};
+ $rulehash{'domain'}=$env{'user.domain'};
}
my $realm='';
if ($number) {
@@ -112,27 +110,27 @@ sub handler {
}
}
# edit actions?
- foreach (keys %ENV) {
+ foreach (keys %env) {
if ($_=~/^form\.action\_(\d+)$/) {
my $number=$1;
- if ($ENV{$_} eq 'delete') { $newrules[$number]=''; }
- if (($ENV{$_} eq 'moveup') && ($number>2)) {
+ if ($env{$_} eq 'delete') { $newrules[$number]=''; }
+ if (($env{$_} eq 'moveup') && ($number>1)) {
my $buffer=$newrules[$number];
$newrules[$number]=$newrules[$number-1];
$newrules[$number-1]=$buffer;
}
- if (($ENV{$_} eq 'movedown') && ($number<$#newrules)) {
+ if (($env{$_} eq 'movedown') && ($number<$#newrules)) {
my $buffer=$newrules[$number];
$newrules[$number]=$newrules[$number+1];
$newrules[$number+1]=$buffer;
}
- if ($ENV{$_} eq 'insertabove') {
+ if ($env{$_} eq 'insertabove') {
for (my $i=$#newrules;$i>=$number;$i--) {
$newrules[$i+1]=$newrules[$i];
}
$newrules[$number]='deny';
}
- if ($ENV{$_} eq 'insertbelow') {
+ if ($env{$_} eq 'insertbelow') {
for (my $i=$#newrules;$i>$number;$i--) {
$newrules[$i+1]=$newrules[$i];
}
@@ -177,15 +175,13 @@ sub handler {
my %lt=&Apache::lonlocal::texthash('ef' => 'Effect',
'do' => 'Domain',
'co' => 'Course',
- 'se' => 'Section/Group',
- 'ro' => 'Role',
- 'ua' => 'Use Access',
- 'sa' => 'Source Access');
+ 'se' => 'Section',
+ 'ro' => 'Role');
# ---------------------------------------------------------- Start table output
$r->print(<
$colzero | $lt{'ef'} | $lt{'do'} | $lt{'co'} |
-$lt{'se'} | $lt{'ro'} | $lt{'ua'} | $lt{'sa'} |
+$lt{'se'} | $lt{'ro'} |
ENDSTARTTABLE
# --------------------------------------------------------------------- Default
# Fast forward to first rule
@@ -210,7 +206,7 @@ ENDSTARTTABLE
} else {
$r->print($token->[2]->{'effect'});
}
- $r->print('Default');
+ $r->print(' | Default');
if (($token->[2]->{'realm'}) || ($token->[2]->{'role'})) {
$r->print(' - '.&mt('Error! No default set.').
'');
@@ -247,11 +243,12 @@ ENDSTARTTABLE
$r->print(' | ');
# ---- realm
my $realm=$token->[2]->{'realm'};
- $realm=~s/^\W//;
my ($rdom,$rcourse,$rsec)=split(/[\/\_]/,$realm);
+ $rdom = &LONCAPA::clean_domain($rdom);
+ $rcourse = &LONCAPA::clean_courseid($rcourse);
# realm domain
if ($constructmode) {
- unless ($rdom) { $rdom=$ENV{'user.domain'}; }
+ unless ($rdom) { $rdom=$env{'user.domain'}; }
$r->print(&Apache::loncommon::select_dom_form($rdom,
'domain_'.$rulecounter));
} else {
@@ -289,17 +286,12 @@ ENDSTARTTABLE
} else {
$r->print(&Apache::lonnet::plaintext($token->[2]->{'role'}));
}
-# use access
- # if ($constructmode) {
- #
- # } else {
- # $r->print(&Apache::lonnet::plaintext($token->[2]->{'role'}));
- # }
# course selection link
$r->print(' | ');
if ($rcourse) {
my %descript=
- &Apache::lonnet::coursedescription($rdom.'_'.$rcourse);
+ &Apache::lonnet::coursedescription($rdom.'_'.$rcourse,
+ {'one_time' => 1});
$r->print($descript{'description'}.' ');
}
if ($constructmode) {
@@ -313,9 +305,9 @@ ENDSTARTTABLE
$r->print('');
# ------------------------------------------------------------ End table output
if ($constructmode) {
- $r->print('');
+ $r->print('');
}
- $r->print(' |