[LON-CAPA-cvs] cvs: loncom /publisher lonrights.pm

www lon-capa-cvs@mail.lon-capa.org
Wed, 19 Mar 2003 22:14:23 -0000


www		Wed Mar 19 17:14:23 2003 EDT

  Modified files:              
    /loncom/publisher	lonrights.pm 
  Log:
  Start work on custom rights viewer and editor.
  
  
Index: loncom/publisher/lonrights.pm
diff -u loncom/publisher/lonrights.pm:1.1 loncom/publisher/lonrights.pm:1.2
--- loncom/publisher/lonrights.pm:1.1	Thu Mar 13 21:26:12 2003
+++ loncom/publisher/lonrights.pm	Wed Mar 19 17:14:23 2003
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # Handler to show and edit custom distribution rights
 #
-# $Id: lonrights.pm,v 1.1 2003/03/14 02:26:12 www Exp $
+# $Id: lonrights.pm,v 1.2 2003/03/19 22:14:23 www Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -34,6 +34,8 @@
 use Apache::Constants qw(:common :http);
 use Apache::lonnet();
 use Apache::loncommon();
+use HTML::LCParser;
+use Apache::File;
 
 sub handler {
 
@@ -45,6 +47,32 @@
 
   $r->print(&Apache::loncommon::bodytag('Custom Distribution Rights'));
 
+  my $uri=$r->uri;
+  my $fn=&Apache::lonnet::filelocation('',$uri);
+  my $contents='';
+  my $constructmode=($uri=~/^\/\~/);
+  unless ($constructmode) { 
+# =========================================== This is not in construction space
+      $contents=&Apache::lonnet::getfile($fn);
+      if ($contents==-1) { $contents=''; }
+  } else {
+# =============================================== This is in construction space
+      if (-e $fn) {
+	  my $fh=Apache::File->new($fn);
+          $contents=join('',<$fh>);
+          $fh->close();
+      }
+  }
+  my $parser=HTML::LCParser->new(\$contents);
+  my $token;
+  while ($token=$parser->get_token) {
+      if (($token->[0] eq 'S') && ($token->[1] eq 'accessrule')) {
+         $r->print('<br />'.
+                   $token->[2]->{'effect'}.': '.
+                   $token->[2]->{'realm'}.' '.
+                   $token->[2]->{'role'});
+     }                                       
+  }
   $r->print('</body></html>');
   return OK;  
 }