}
}
+sub calltake
+ : Help(Usage: .calltake callid | sets the dc. also markes as covered/ignored with .callcov and .callignore)
+ : Type(def)
+ : ACL(irc_calltake)
+ : Alias(qw/callcov callignore/)
+{
+ my ($self,$c,$msg) = @_;
+ my ($id) = $msg =~ /^(\d+)$/ or die 'ARGS';
+ my $dbh = $c->model;
+
+ my $extra = '';
+
+ given ($self->{name}){
+ when('callignore'){
+ $extra = ',covered = FALSE, open = FALSE'
+ }
+ when('callcov'){
+ $extra = ',covered = TRUE, open = FALSE'
+ }
+ }
+
+ $dbh->begin_work;
+ my $rows = $dbh->do(q{
+UPDATE calls SET dc = (SELECT uid FROM users WHERE hostmask ILIKE $1)
+ }. $extra .q{
+WHERE id = $2
+ },undef,$c->host,$id);
+ if ($rows == 1){
+ $c->reply("Marked call $id with ".$self->name);
+ $c->def_log($id , "Used: [B]".$self->name."[/B]");
+ $dbh->commit;
+ }else{
+ $c->reply("$id is not a valid call");
+ $dbh->rollback;
+ }
+}
+
1;
}
}
-sub takeCall {
- my ($msg,$command) = @_;
- my ($id);
- if (defined $msg && $msg =~ /^(\d+)$/){
- $id = $1;
- }else{
- $ND::server->command("notice $ND::nick Usage: $command callid");
- return;
- }
- if (my $user = dc()){
- if ($ND::DBH->do(q{UPDATE calls SET dc = (SELECT uid FROM users WHERE hostmask ILIKE ?) WHERE id = ?}
- ,undef,$ND::address,$id) == 1){
- $ND::server->command("msg $ND::target Updated the DC for call $id");
- def_log $user->{uid}, $id , "Used: [B] $command [/B]";
- }
- }
-}
-
-sub covCall {
- my ($msg,$command) = @_;
- my ($id);
- if (defined $msg && $msg =~ /^(\d+)$/){
- $id = $1;
- }else{
- $ND::server->command("notice $ND::nick Usage: $command callid");
- return;
- }
- if (my $user = dc()){
- if($ND::DBH->do(q{UPDATE calls SET dc = (SELECT uid FROM users WHERE hostmask ILIKE ?), covered = TRUE, open = FALSE WHERE id = ?}
- ,undef,$ND::address,$id) == 1){
- $ND::server->command("msg $ND::target Marked call $id as covered");
- def_log $user->{uid}, $id , "Used: [B] $command [/B]";
- }
- }
-}
-
-sub ignoreCall {
- my ($msg,$command) = @_;
- my ($id);
- if (defined $msg && $msg =~ /^(\d+)$/){
- $id = $1;
- }else{
- $ND::server->command("notice $ND::nick Usage: $command callid");
- return;
- }
- if (my $user = dc()){
- if($ND::DBH->do(q{UPDATE calls SET dc = (SELECT uid FROM users WHERE hostmask ILIKE ?), covered = FALSE, open = FALSE WHERE id = ?}
- ,undef,$ND::address,$id) == 1){
- $ND::server->command("msg $ND::target Marked call $id as ignored");
- def_log $user->{uid}, $id , "Used: [B] $command [/B]";
- }
- }
-}
-
sub setCalc {
my ($msg,$command) = @_;
my ($id, $calc);
INSERT INTO roles VALUES('irc_anondef');
INSERT INTO roles VALUES('irc_defcall');
INSERT INTO roles VALUES('irc_settype');
+INSERT INTO roles VALUES('irc_calltake');
INSERT INTO group_roles (gid,role) VALUES(1,'irc_p_nick');
INSERT INTO group_roles (gid,role) VALUES(1,'irc_p_intel');
INSERT INTO group_roles (gid,role) VALUES(1,'irc_anondef');
INSERT INTO group_roles (gid,role) VALUES(1,'irc_defcall');
INSERT INTO group_roles (gid,role) VALUES(1,'irc_settype');
+INSERT INTO group_roles (gid,role) VALUES(1,'irc_calltake');
INSERT INTO group_roles (gid,role) VALUES(2,'irc_gs');
INSERT INTO group_roles (gid,role) VALUES(2,'irc_scan');
INSERT INTO group_roles (gid,role) VALUES(3,'irc_anondef');
INSERT INTO group_roles (gid,role) VALUES(3,'irc_defcall');
INSERT INTO group_roles (gid,role) VALUES(3,'irc_settype');
+INSERT INTO group_roles (gid,role) VALUES(3,'irc_calltake');
INSERT INTO group_roles (gid,role) VALUES(4,'irc_points_others');
INSERT INTO group_roles (gid,role) VALUES(4,'irc_a');
INSERT INTO group_roles (gid,role) VALUES(6,'irc_anondef');
INSERT INTO group_roles (gid,role) VALUES(6,'irc_defcall');
INSERT INTO group_roles (gid,role) VALUES(6,'irc_settype');
+INSERT INTO group_roles (gid,role) VALUES(6,'irc_calltake');
INSERT INTO group_roles (gid,role) VALUES(8,'irc_scanreqs');
INSERT INTO group_roles (gid,role) VALUES(8,'irc_anonscan');