[Bio] / WebApplication / WebApplicationDBHandle.pm Repository:
ViewVC logotype

View of /WebApplication/WebApplicationDBHandle.pm

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.5 - (download) (as text) (annotate)
Fri Feb 5 17:00:31 2010 UTC (9 years, 9 months ago) by paczian
Branch: MAIN
CVS Tags: mgrast_dev_08112011, mgrast_dev_08022011, rast_rel_2014_0912, mgrast_dev_03052011, mobedac_release_05302012, mgrast_dev_05262011, mgrast_dev_04082011, rast_rel_2010_0928, mgrast_version_3_2, mgrast_dev_12152011, mgrast_dev_06072011, rast_rel_2010_0526, rast_rel_2014_0729, mgrast_dev_02212011, rast_rel_2010_1206, mgrast_release_3_0, mgrast_dev_03252011, rast_rel_2011_0119, 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, mgrast_dev_04012011, rast_rel_2010_0827, myrast_33, rast_rel_2011_0928, mgrast_dev_04052011, mgrast_dev_02222011, mgrast_dev_10262011, HEAD
Changes since 1.4: +1 -1 lines
fixed a possible exploit with 0 length key

package WebApplicationDBHandle;

# WebApplicationDBHandle - connector to the WebAppBackend database

use strict;
use warnings;

use FIG_Config;
use DBMaster;

=pod

=head1 NAME

WebApplicationDBHandle - connector to the WebAppBackend database

=head1 DESCRIPTION

This module returns an array of the DBMaster object connected to the WebAppBackend database
and a possible error message. In case of an error, the dbmaster will be undef. Otherwise
the error will be undef.

=head1 METHODS

=over 4

=item * B<new> ()

Creates a new instance of the WebApplicationDBHandle object.

=cut

sub new {

    # get the connection data from FIG_Config.pm
    my $dbmaster;
    eval {
      $dbmaster = DBMaster->new(-database => $FIG_Config::webapplication_db || "WebAppBackend",
				-host     => $FIG_Config::webapplication_host || "localhost",
				-user     => $FIG_Config::webapplication_user || "root",
				-password => $FIG_Config::webapplication_password || "",
				-socket   => $FIG_Config::webapplication_socket || "");
    };

    if ($@) {
      return (undef, $@);
    }

    return ($dbmaster, undef);
}

sub authenticate_user {
  my ($master, $key) = @_;

  unless (defined($master) && ref($master) eq "DBMaster") {
    die "Undefined or invalid dbmaster passed to authenticate_user in WebApplicationDBHandle";
  }

  unless (defined($key) && length($key)) {
    die "No key passed to authenticate_user in WebApplicationDBHandle";
  }
  
  my $pref = $master->Preferences->get_objects( { value => $key } );
  if (scalar(@$pref)) {
    return $pref->[0]->user;
  } else {
    return undef;
  }

}

1;

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3