[Bio] / FortyEight / WebPage / ExportGenome.pm Repository:
ViewVC logotype

View of /FortyEight/WebPage/ExportGenome.pm

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.11 - (download) (as text) (annotate)
Mon Oct 15 18:10:59 2007 UTC (12 years, 7 months ago) by olson
Branch: MAIN
CVS Tags: mgrast_dev_08112011, rast_rel_2009_05_18, mgrast_dev_08022011, rast_rel_2014_0912, rast_rel_2008_06_18, rast_rel_2008_06_16, mgrast_dev_05262011, rast_rel_2008_12_18, mgrast_dev_04082011, rast_rel_2008_07_21, rast_rel_2010_0928, rast_2008_0924, mgrast_version_3_2, mgrast_dev_12152011, rast_rel_2008_04_23, mgrast_dev_06072011, rast_rel_2008_09_30, rast_rel_2009_0925, rast_rel_2010_0526, rast_rel_2014_0729, mgrast_dev_02212011, rast_rel_2010_1206, mgrast_release_3_0, mgrast_dev_03252011, rast_rel_2010_0118, mgrast_rel_2008_0924, mgrast_rel_2008_1110_v2, rast_rel_2009_02_05, rast_rel_2011_0119, mgrast_rel_2008_0625, mgrast_release_3_0_4, mgrast_release_3_0_2, mgrast_release_3_0_3, mgrast_release_3_0_1, mgrast_dev_03312011, mgrast_release_3_1_2, mgrast_release_3_1_1, mgrast_release_3_1_0, mgrast_dev_04132011, rast_rel_2008_10_09, mgrast_dev_04012011, rast_release_2008_09_29, mgrast_rel_2008_0806, mgrast_rel_2008_0923, mgrast_rel_2008_0919, rast_rel_2009_07_09, rast_rel_2010_0827, mgrast_rel_2008_1110, myrast_33, rast_rel_2011_0928, rast_rel_2008_09_29, mgrast_rel_2008_0917, rast_rel_2008_10_29, mgrast_dev_04052011, mgrast_dev_02222011, rast_rel_2009_03_26, mgrast_dev_10262011, rast_rel_2008_11_24, rast_rel_2008_08_07, HEAD
Changes since 1.10: +1 -1 lines
fix active-job conditional.

package WebPage::ExportGenome;

use warnings;
use strict;

use Carp qw( confess );

use File::Basename;

use WebApp::WebPage;
our @ISA = qw ( WebApp::WebPage );

use SeedExport;
use FIG_Config;
use Job48;


1;

=pod

=head1 NAME

Genomes - an instance of WebPage which export the annotated raw organism directory to different formats

=head1 DESCRIPTION

TODO

=head1 METHODS

=over 4

=item * B<output> ()

Returns the html output of the page.

=cut

sub output {
  my ($self) = @_;

  $self->title('Annotation Server - Export Genome');

  my $cgi = $self->application->cgi;
  my $session = $self->application->session;
  my $content = '';

  # get the format
  my $format = 'genbank';
  if (defined($cgi->param('format'))) {
    $format = $cgi->param('format');
  }

  my $strip_ec = ($cgi->param('strip_ec')) ? 1 : 0;
  
  # sanity check on job
  my $job = Job48->new( $cgi->param('job'),
			$self->application->session->user );
  unless ($job and not $job->to_be_deleted()) {
    my $id = $cgi->param('job') || '';
    $self->application->error("Invalid job id given (id='$id').");
    return $content;
  }

  # check authorization
  if ($self->application->authorized(1)) {

    my $user = $job->getUserObject();
    die "Could not get user for job ".$job->id.".\n" unless ($user);

    my $job_organization = $user->organisation->name;
   
    # is admin or owns job
    unless ($self->application->authorized(2) or
	    $self->application->session->user->organisation->name eq $job_organization) {
      $self->application->error('User '.$self->application->session->user->login.
				' not authorized to export job "'.$job->id.'".');
      return $content;
    }

    # export
    my ($output, $msg) = SeedExport::export( { 'virtual_genome_directory' => $job->orgdir,
					       'genome' => $job->genome_id, 
					       'directory' => $FIG_Config::temp . "/", #"/tmp/export/",
					       'export_format' => $format,
					       'strip_ec' => $strip_ec 
					     } );

    if (-f $output) {
      open(FILE, $output) or confess "Cannot open file $output.";
      my @export = <FILE>;
      close(FILE);
      print "Content-Type:application/x-download\n";  
      print "Content-Disposition:attachment;filename=".basename($output)."\n\n";
      print @export; 
      exit;
    }
  }
  else {
    $self->application->error('You are not logged in.');
    return $content;
  }
  
  # catch errors
  if ($self->application->error) {
    $content = "<p>An error has occured: ".$self->application->error()."</p>";
  }
  
  return $content;
}


MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3