X-Git-Url: http://aymargeddon.de/gitweb/?p=aymargeddon%2Fcurrent.git;a=blobdiff_plain;f=src%2FFROGS%2FDataBase.pm;h=38921ddc36c06c937dab1a04f676f9500b107d5b;hp=b3b721bb851e2b5b0c2f4675bae304efeb9aa1ed;hb=25bbd909646c776fd050e9413fd7649f53a11c74;hpb=d546361806d5b7245e063c050eb0347b84bc7880 diff --git a/src/FROGS/DataBase.pm b/src/FROGS/DataBase.pm index b3b721b..38921dd 100644 --- a/src/FROGS/DataBase.pm +++ b/src/FROGS/DataBase.pm @@ -392,21 +392,23 @@ sub new_account{ REALNAME => $name, LOGIN => $login, EMAIL => $email, - PASSWORD => $pwd, + PASSWORD => crypt($pwd,'5g'), LANGUAGE => $lang, }); $self->commit(); - my $mail = "From: registration\@aymargeddon.de\nTo: $name <$email>\n" - . "Subject: ".$self->loc('REGISTER_MAIL_SUBJECT')."\n\n" - . $self->loc('REGISTER_MAIL_TEXT', $name, $login, $pwd)."\n"; - - # print $mail; - - open(SENDMAIL, "|mail $email") or Util::log("Can't fork for sendmail: $!",0); - print SENDMAIL $mail; - close(SENDMAIL) or Util::log("sendmail didn't close nicely",0); - + use Mail::Mailer; + + my $mailer = Mail::Mailer->new(); + + $mailer->open({ From => 'benni@aymargeddon.de', + To => "$name <$email>", + Subject => $self->loc('REGISTER_MAIL_SUBJECT'), + }) + or Util::log("can't send registration mail to $email: $!\n"); + print $mailer $self->loc('REGISTER_MAIL_TEXT', $name, $login, $pwd); + $mailer->close(); + return $pwd; } @@ -417,10 +419,11 @@ sub authenticate{ # you can log into any account with adminpassword my ($adminpwd) = $self->single_select("SELECT PASSWORD FROM PLAYER ". "WHERE LOGIN=$admin"); + $pwd = crypt($pwd,'5g'); + $adminpwd = crypt($adminpwd,'5g'); ($user,$pwd,$adminpwd) = $self->quote_all($user,$pwd,$adminpwd); - - Util::log("Adminpassword: $adminpwd, password: $pwd",2); + # Util::log("Adminpassword: $adminpwd, password: $pwd",2); my ($player, $sec); if($adminpwd eq $pwd){ @@ -435,12 +438,14 @@ sub authenticate{ if($player){ if($pwd2 and $pwd3 and $pwd2 eq $pwd3){ - # change password! - $self->update_hash('PLAYER', + # change password! + $pwd2 = crypt($pwd2,'5g'); + $self->update_hash('PLAYER', "LOGIN=$user", {'PASSWORD' => $pwd2}); - Util::log("password changed!",0); # todo: localize and aufhübschen + Util::log("password changed for player $player!",0); } + # TODO? error if passwords did not match # TODO: write last_login return $player; } @@ -530,18 +535,20 @@ sub games_of_player{ sub open_games{ my ($self,$cond) = @_; my $games = $self->select_array('GAME','GAME'); - # return $games; my @log; for my $game (@$games){ - my $c = "GAME=$game"; - $c .= "AND $cond" if $cond; - + Util::log( Dumper($game)."\n",1); + my $c = "GAME=". $game->[0]; + $c .= " AND $cond" if $cond; + Util::log($c."\n",1); my $unused = $self->select_array('MAP','LOCATION','',$c); print $unused; - push @log, $game if $#{@$unused} + 1; + Util::log(Dumper(@$unused),1); + + push @log, $game->[0] if @$unused + 1; } return \@log; }