[LON-CAPA-cvs] cvs: loncom / loncapa_apache.conf lonenc.pm lonencurl.pm

albertel lon-capa-cvs@mail.lon-capa.org
Fri, 07 Apr 2006 22:15:34 -0000


albertel		Fri Apr  7 18:15:34 2006 EDT

  Added files:                 
    /loncom	lonencurl.pm 

  Modified files:              
    /loncom	lonenc.pm loncapa_apache.conf 
  Log:
  - moving handler out of lonenc so it can be used in CGI
  
  
Index: loncom/lonenc.pm
diff -u loncom/lonenc.pm:1.13 loncom/lonenc.pm:1.14
--- loncom/lonenc.pm:1.13	Wed Mar 22 14:55:39 2006
+++ loncom/lonenc.pm	Fri Apr  7 18:15:34 2006
@@ -1,7 +1,7 @@
 # The LearningOnline Network
 # URL translation for encrypted filenames
 #
-# $Id: lonenc.pm,v 1.13 2006/03/22 19:55:39 albertel Exp $
+# $Id: lonenc.pm,v 1.14 2006/04/07 22:15:34 albertel Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -29,36 +29,10 @@
 package Apache::lonenc;
 
 use strict;
-use Apache::Constants qw(:common :remotehost);
 use Apache::lonnet;
-use Apache::File();
-use Apache::loncommon;
 use Crypt::IDEA;
 use Time::HiRes qw(gettimeofday);
 
-sub handler {
-    my $r = shift;
-    my %cookies=CGI::Cookie->parse($r->header_in('Cookie'));
-    my $lonid=$cookies{'lonID'};
-    my $cookie;
-    if ($lonid) {
-	my $handle=$lonid->value;
-        $handle=~s/\W//g;
-        my $lonidsdir=$r->dir_config('lonIDsDir');
-	$env{'request.enc'}=1;
-        if ((-e "$lonidsdir/$handle.id") && ($handle ne '')) {
-# Initialize Environment
-            &Apache::lonnet::transfer_profile_to_env($lonidsdir,$handle);
-# Decrypt URL and redirect
-	    my $redirect=&unencrypted($r->uri);
-	    if ($r->args) { $redirect.='?'.$r->args; }
-	    $r->internal_redirect($redirect);
-	    return OK;
-	} 
-    }
-    return FORBIDDEN;
-}
-
 sub encryptseed {
     my $seed=$env{'course.'.$env{'request.course.id'}.'.internal.encseed'};
     $seed=~s/[^0-9a-f]/0/g;
Index: loncom/loncapa_apache.conf
diff -u loncom/loncapa_apache.conf:1.126 loncom/loncapa_apache.conf:1.127
--- loncom/loncapa_apache.conf:1.126	Fri Apr  7 18:09:10 2006
+++ loncom/loncapa_apache.conf	Fri Apr  7 18:15:34 2006
@@ -1,7 +1,7 @@
 ##
 ## loncapa_apache.conf -- Apache HTTP LON-CAPA configuration file
 ##
-## $Id: loncapa_apache.conf,v 1.126 2006/04/07 22:09:10 albertel Exp $
+## $Id: loncapa_apache.conf,v 1.127 2006/04/07 22:15:34 albertel Exp $
 ##
 
 #
@@ -71,7 +71,7 @@
 
 <LocationMatch "^/+enc.*">
 SetHandler perl-script
-PerlHandler       Apache::lonenc
+PerlHandler       Apache::lonencurl
 ErrorDocument     403 /adm/login
 ErrorDocument     404 /adm/notfound.html
 ErrorDocument     406 /adm/roles

Index: loncom/lonencurl.pm
+++ loncom/lonencurl.pm
# The LearningOnline Network
# URL translation for encrypted filenames
#
# $Id: lonencurl.pm,v 1.1 2006/04/07 22:15:34 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
# This file is part of the LearningOnline Network with CAPA (LON-CAPA).
#
# LON-CAPA is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# LON-CAPA is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with LON-CAPA; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
#
# /home/httpd/html/adm/gpl.txt
#
# http://www.lon-capa.org/
#

package Apache::lonencurl;

use strict;
use Apache::Constants qw(:common :remotehost);
use CGI::Cookie();
use Apache::lonnet;
use Apache::lonenc;

sub handler {
    my $r = shift;
    my %cookies=CGI::Cookie->parse($r->header_in('Cookie'));
    my $lonid=$cookies{'lonID'};
    my $cookie;
    if ($lonid) {
	my $handle=$lonid->value;
        $handle=~s/\W//g;
        my $lonidsdir=$r->dir_config('lonIDsDir');
	$env{'request.enc'}=1;
        if ((-e "$lonidsdir/$handle.id") && ($handle ne '')) {
# Initialize Environment
            &Apache::lonnet::transfer_profile_to_env($lonidsdir,$handle);
# Decrypt URL and redirect
	    my $redirect=&Apache::lonenc::unencrypted($r->uri);
	    if ($r->args) { $redirect.='?'.$r->args; }
	    $r->internal_redirect($redirect);
	    return OK;
	} 
    }
    return FORBIDDEN;
}