]> ruin.nu Git - NDIRC.git/blobdiff - Access.pm
r26 feudalism, late commit
[NDIRC.git] / Access.pm
index 91b800253d8cd999eca95f756db4a93ef37946d8..c4ef05afd99331276a6db58665399d8718aa1975 100644 (file)
--- a/Access.pm
+++ b/Access.pm
 #   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;