--- loncom/publisher/lonrights.pm 2003/03/27 20:56:30 1.8
+++ 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.8 2003/03/27 20:56:30 www Exp $
+# $Id: lonrights.pm,v 1.22 2007/05/02 01:34:23 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -32,22 +32,32 @@ 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;
+use Apache::lonlocal;
sub handler {
my $r=shift;
- $r->content_type('text/html');
+ 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;
+ my $file = &Apache::lonnet::filelocation("",$r->uri);
+ my $content=&Apache::lonnet::getfile($file);
+ my $result=&Apache::lonxml::xmlparse(undef,'meta',$content);
+ $r->print($result);
+ return OK;
+ }
+ &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;
@@ -57,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'}='';
@@ -79,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) {
@@ -100,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];
}
@@ -161,12 +171,17 @@ sub handler {
my $parser=HTML::LCParser->new(\$contents);
my $token;
my $rulecounter=0;
- my $colzero=($constructmode?'Edit action':'Rule');
+ my $colzero=&mt($constructmode?'Edit action':'Rule');
+ my %lt=&Apache::lonlocal::texthash('ef' => 'Effect',
+ 'do' => 'Domain',
+ 'co' => 'Course',
+ 'se' => 'Section',
+ 'ro' => 'Role');
# ---------------------------------------------------------- Start table output
$r->print(<
- $colzero | Effect | Domain | Course |
-Section | Role |
+ $colzero | $lt{'ef'} | $lt{'do'} | $lt{'co'} |
+$lt{'se'} | $lt{'ro'} |
ENDSTARTTABLE
# --------------------------------------------------------------------- Default
# Fast forward to first rule
@@ -193,7 +208,8 @@ ENDSTARTTABLE
}
$r->print('Default');
if (($token->[2]->{'realm'}) || ($token->[2]->{'role'})) {
- $r->print(' - Error! No default set.');
+ $r->print(' - '.&mt('Error! No default set.').
+ '');
}
$r->print(' | ');
# Additional roles
@@ -227,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 {
@@ -246,7 +263,7 @@ ENDSTARTTABLE
$r->print($rcourse);
}
- $r->print(' | ');
+ $r->print(' | ');
# realm section
if ($constructmode) {
$r->print('');
+ $r->print(' | ');
if ($rcourse) {
my %descript=
- &Apache::lonnet::coursedescription($rdom.'_'.$rcourse);
+ &Apache::lonnet::coursedescription($rdom.'_'.$rcourse,
+ {'one_time' => 1});
$r->print($descript{'description'}.' ');
}
- $r->print(&Apache::loncommon::selectcourse_link('rules',
- 'course_'.$rulecounter,'domain_'.$rulecounter));
+ if ($constructmode) {
+ $r->print(&Apache::loncommon::selectcourse_link('rules',
+ 'course_'.$rulecounter,'domain_'.$rulecounter));
+ }
# close row
$r->print(' |
');
}
@@ -285,9 +305,9 @@ ENDSTARTTABLE
$r->print('');
# ------------------------------------------------------------ End table output
if ($constructmode) {
- $r->print('');
+ $r->print('');
}
- $r->print('