]> ruin.nu Git - NDIRC.git/commitdiff
Converted the .flags command
authorMichael Andreen <harv@ruin.nu>
Sat, 16 May 2009 16:02:22 +0000 (18:02 +0200)
committerMichael Andreen <harv@ruin.nu>
Sat, 16 May 2009 16:02:22 +0000 (18:02 +0200)
Commands/Usermgm.pm
Usermgm.pm
database/roles.sql

index be87acb886493a059a1b2c33284f957e6d917b10..8a87f8e1fae85147459336c9e4bcf654420c6f29 100644 (file)
@@ -162,4 +162,22 @@ GROUP BY username,pnick,hostmask LIMIT 5
        }
 }
 
+sub flag
+       : Help(syntax: .flag flag | Lists all users with the given flag.)
+       : ACL(irc_flag)
+{
+       my ($self,$c,$msg) = @_;
+       my ($flag) = $msg =~ /^(\w)$/ or die 'ARGS';
+
+       my $f = $c->model->prepare(q{
+SELECT TRIM(', ' FROM concat(username||', ')),count(username)
+FROM (SELECT uid, username FROM users ORDER BY username) u
+       JOIN groupmembers gm USING (uid)
+       JOIN groups g USING (gid)
+WHERE flag = $1
+               });
+       my ($users,$count) = $c->model->selectrow_array($f,undef,$flag);
+       $c->reply("<b>$count</b> Users with flag <b>$flag</b>: $users");
+}
+
 1;
index 493c05c445bfb4a82b9ae244d3204c7173bc8764..e751c566f9148363a994ac816f3f9c751209a925 100644 (file)
@@ -25,33 +25,7 @@ require Exporter;
 
 our @ISA = qw/Exporter/;
 
-our @EXPORT = qw/flag laston addPoints setHost setPNick getShips getFleet/;
-
-sub flag {
-       my ($msg, $command) = @_;
-
-       my ($flag);
-       if(defined $msg && $msg =~ /^(\w)$/){
-               $flag = $1;
-       }else{
-               $ND::server->command("notice $ND::nick syntax: .$command flag");
-               return;
-       }
-
-       if (officer() || ia() || ($ND::target eq $ND::scanchan && $flag eq 'S')){
-               my $f = $ND::DBH->prepare(qq{
-SELECT TRIM(', ' FROM concat(username||', ')),count(username) FROM
-       (SELECT uid, username FROM users ORDER BY username) u NATURAL JOIN groupmembers gm 
-       JOIN groups g ON g.gid = gm.gid
-WHERE flag = ?;
-                       });
-               if (my ($users,$count) = $ND::DBH->selectrow_array($f,undef,$flag)){
-                       $ND::server->command("msg $ND::target $ND::B$count$ND::B Users with flag $ND::B$flag$ND::B: $users");
-               }
-       }else{
-               $ND::server->command("msg $ND::target Only officers are allowed to check that");
-       }
-}
+our @EXPORT = qw/laston addPoints setHost setPNick getShips getFleet/;
 
 sub laston {
        my ($msg, $command) = @_;
index 78bf112d40cb5ff629ae8134e562bfdd067cb17f..18386cbb90df7345565e20e159f862070c96a2c7 100644 (file)
@@ -13,6 +13,7 @@ INSERT INTO roles VALUES('irc_adduser');
 INSERT INTO roles VALUES('irc_deactivateuser');
 INSERT INTO roles VALUES('irc_chattr');
 INSERT INTO roles VALUES('irc_whois');
+INSERT INTO roles VALUES('irc_flag');
 
 INSERT INTO group_roles (gid,role) VALUES(1,'irc_p_nick');
 INSERT INTO group_roles (gid,role) VALUES(1,'irc_p_intel');
@@ -27,6 +28,7 @@ INSERT INTO group_roles (gid,role) VALUES(1,'irc_adduser');
 INSERT INTO group_roles (gid,role) VALUES(1,'irc_deactivateuser');
 INSERT INTO group_roles (gid,role) VALUES(1,'irc_chattr');
 INSERT INTO group_roles (gid,role) VALUES(1,'irc_whois');
+INSERT INTO group_roles (gid,role) VALUES(1,'irc_flag');
 
 INSERT INTO group_roles (gid,role) VALUES(2,'irc_gs');
 INSERT INTO group_roles (gid,role) VALUES(2,'irc_scan');
@@ -43,6 +45,7 @@ INSERT INTO group_roles (gid,role) VALUES(3,'irc_adduser');
 INSERT INTO group_roles (gid,role) VALUES(3,'irc_deactivateuser');
 INSERT INTO group_roles (gid,role) VALUES(3,'irc_chattr');
 INSERT INTO group_roles (gid,role) VALUES(3,'irc_whois');
+INSERT INTO group_roles (gid,role) VALUES(3,'irc_flag');
 
 INSERT INTO group_roles (gid,role) VALUES(4,'irc_points_others');
 
@@ -60,5 +63,6 @@ INSERT INTO group_roles (gid,role) VALUES(18,'irc_p_nick');
 INSERT INTO group_roles (gid,role) VALUES(18,'irc_p_intel');
 INSERT INTO group_roles (gid,role) VALUES(18,'irc_points_others');
 INSERT INTO group_roles (gid,role) VALUES(18,'irc_whois');
+INSERT INTO group_roles (gid,role) VALUES(18,'irc_flag');
 
 INSERT INTO group_roles (gid,role) VALUES(19,'irc_p_intel');