X-Git-Url: https://ruin.nu/git/?p=NDIRC.git;a=blobdiff_plain;f=Context.pm;h=8c16a95a65cdacc507cb06299e434f0727cb417d;hp=8a0a911a3b2abbaca49a0e8995dc853540c8b19d;hb=a7e034b3599d41cdf5a158b14bd1715451f89a0c;hpb=87ddd7d37d6f5880757a71bfedd3459f4a511d2b diff --git a/Context.pm b/Context.pm index 8a0a911..8c16a95 100644 --- a/Context.pm +++ b/Context.pm @@ -50,6 +50,12 @@ has roles => ( lazy_build => 1 ); +has uid => ( + is => 'ro', + isa => 'Int', + lazy_build => 1 +); + has disp => ( is => 'ro', isa => 'Object', @@ -143,21 +149,18 @@ sub intel_log { my ($c,$planet, $message) = @_; my $log = $c->model->prepare_cached(q{ INSERT INTO forum_posts (ftid,uid,message) VALUES( - (SELECT ftid FROM planets WHERE pid = $3) - ,(SELECT uid FROM users WHERE hostmask ILIKE $1) - ,$2) + (SELECT ftid FROM planets WHERE pid = $3),$1,$2) }); - $log->execute($c->host,$message,$planet); + $log->execute($c->uid,$message,$planet); } sub def_log { my ($c,$call, $message) = @_; my $log = $c->model->prepare(q{ INSERT INTO forum_posts (ftid,uid,message) VALUES( - (SELECT ftid FROM calls WHERE call = $3) - ,(SELECT uid FROM users WHERE hostmask ILIKE $1),$2) + (SELECT ftid FROM calls WHERE call = $3),$1,$2) }); - $log->execute($c->host,$message,$call); + $log->execute($c->uid,$message,$call); } sub _build_roles { @@ -166,7 +169,7 @@ sub _build_roles { my $query = $self->model->prepare(q{ SELECT role FROM group_roles WHERE gid IN (SELECT gid FROM groupmembers JOIN users USING (uid) - WHERE hostmask ILIKE $1) + WHERE hostmask = $1) }); $query->execute($self->host); @@ -177,5 +180,20 @@ WHERE gid IN (SELECT gid FROM groupmembers JOIN users USING (uid) return Set::Object->new(@roles); } +sub _build_uid { + my ($self) = @_; + + my $query = $self->model->prepare(q{ +SELECT uid FROM users +WHERE hostmask = $1 + }); + $query->execute($self->host); + + if (my ($uid) = $query->fetchrow_array){ + $query->finish; + return $uid; + } + return -4; +} 1;