X-Git-Url: https://ruin.nu/git/?a=blobdiff_plain;ds=sidebyside;f=Access.pm;h=5395ccdc226ee75d2ead11ea7653ffc1c8f28a7f;hb=490d9c4cc048f00111f8979b20a34c5adaf22006;hp=91b800253d8cd999eca95f756db4a93ef37946d8;hpb=9e84f393649d1ecbc24a94476352a28f49afa458;p=NDIRC.git diff --git a/Access.pm b/Access.pm index 91b8002..5395ccd 100644 --- a/Access.pm +++ b/Access.pm @@ -16,15 +16,18 @@ # Free Software Foundation, Inc., * # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * #**************************************************************************/ -package ND::IRC::Access; +package NDIRC::Access; use strict; use warnings; require Exporter; our @ISA = qw/Exporter/; -our @EXPORT = qw/officer dc bc hc scanner intel masterop masterinvite/; +our @EXPORT = qw/member officer dc bc hc scanner intel masterop masterinvite/; +sub member { + return groupmember("HM"); +}; sub officer { return groupmember("HO"); }; @@ -54,12 +57,10 @@ sub masterinvite { sub groupmember { my ($groups) = @_; $groups = join ",", map {"'$_'"} split //, $groups; - my $f = $ND::DBH->prepare("SELECT username FROM users NATURAL JOIN groupmembers NATURAL JOIN groups WHERE flag IN ('T',$groups) AND hostmask ILIKE ?"); - $f->execute($ND::address); - if ($f->fetchrow()){ - return 1; - } - return 0; + my $f = $ND::DBH->prepare("SELECT uid,username FROM users NATURAL JOIN groupmembers NATURAL JOIN groups WHERE flag IN ('T',$groups) AND lower(hostmask) = ?") or print $ND::DBH->errstr; + $f->execute(lc($ND::address)); + my $user = $f->fetchrow_hashref; + return $user; }; 1;