X-Git-Url: https://ruin.nu/git/?a=blobdiff_plain;f=Access.pm;h=c4ef05afd99331276a6db58665399d8718aa1975;hb=86a286d12a410321c2784bc2742ce9c755c262ed;hp=91b800253d8cd999eca95f756db4a93ef37946d8;hpb=9e84f393649d1ecbc24a94476352a28f49afa458;p=NDIRC.git diff --git a/Access.pm b/Access.pm index 91b8002..c4ef05a 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 ia hc scanner intel masterop masterinvite/; +sub member { + return groupmember("HM"); +}; sub officer { return groupmember("HO"); }; @@ -34,6 +37,9 @@ sub dc { sub bc { return groupmember("HB"); }; +sub ia { + return groupmember("HR"); +}; sub hc { return groupmember("H"); }; @@ -54,12 +60,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;