}
}
+sub deactivateuser
+ : Help(syntax: .-user nick | nick must be alphanum characters, if no pnick is given then it will be set to nick)
+ : Alias(-user)
+ : ACL(irc_deactivateuser)
+{
+ my ($self,$c,$msg) = @_;
+
+ my ($nick) = $msg =~ /^(\S+)$/ or die 'ARGS';
+
+ my $dbh = $c->model;
+ my $f = $dbh->prepare(q{SELECT uid,username FROM users WHERE username ILIKE ?});
+ $f->execute($nick);
+ my ($uid,$username) = $f->fetchrow();
+
+ if ($f->rows == 1){
+ my $updated = $dbh->do(q{
+UPDATE users SET hostmask = ?, password = '' WHERE uid = ?
+ },undef,$username,$uid);
+ if ($updated > 0){
+ my $groups = $dbh->do(q{DELETE FROM groupmembers WHERE uid = ?},undef,$uid);
+ $groups += 0;
+ $c->reply("<b>$username</b> has been deactivated. Removed from $groups groups.");
+ }else{
+ $c->reply("Something went wrong when trying to modify <b>$username</b>");
+ }
+ }elsif ($f->rows == 0){
+ $c->reply("No hit, maybe spelling mistake, or add % as wildcard");
+ }else{
+ $c->reply("More than 1 user matched, please refine the search");
+ }
+ $f->finish;
+}
+
1;
our @ISA = qw/Exporter/;
-our @EXPORT = qw/whois flags flag laston addPoints chattrG setHost setPNick deactivateUser getShips getFleet/;
+our @EXPORT = qw/whois flags flag laston addPoints chattrG setHost setPNick getShips getFleet/;
sub whois {
my ($msg, $command) = @_;
}
}
-sub deactivateUser {
- my ($msg, $command) = @_;
-
- my $nick;
- if(defined $msg && $msg =~ /^(\S+)$/){
- $nick = $1;
- }else{
- $ND::server->command("notice $ND::nick syntax: .$command user");
- return;
- }
- if (hc()){
- my $f = $ND::DBH->prepare("SELECT uid,username FROM users WHERE username ILIKE ?");
- $f->execute($nick);
- my ($uid,$username) = $f->fetchrow();
- if ($f->rows == 1){
- my $updated = $ND::DBH->do("UPDATE users SET hostmask = ?, password = '' WHERE uid = ?",undef,$username,$uid);
- if ($updated > 0){
- my $groups = $ND::DBH->do("DELETE FROM groupmembers WHERE uid = ?",undef,$uid);
- $ND::server->command("msg $ND::target $ND::B$username$ND::B has been deactivated.");
- }else{
- $ND::server->command("msg $ND::target Something went wrong when trying to modify $ND::B$username$ND::B");
- }
- }elsif ($f->rows == 0){
- $ND::server->command("msg $ND::target No hit, maybe spelling mistake, or add % as wildcard");
- }else{
- $ND::server->command("msg $ND::target More than 1 user matched, please refine the search");
- }
- $f->finish;
- }
-}
-
1;
INSERT INTO roles VALUES('irc_points_others');
INSERT INTO roles VALUES('irc_sms');
INSERT INTO roles VALUES('irc_adduser');
+INSERT INTO roles VALUES('irc_deactivateuser');
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_points_others');
INSERT INTO group_roles (gid,role) VALUES(1,'irc_sms');
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(2,'irc_gs');
INSERT INTO group_roles (gid,role) VALUES(2,'irc_scan');
INSERT INTO group_roles (gid,role) VALUES(3,'irc_points_others');
INSERT INTO group_roles (gid,role) VALUES(3,'irc_sms');
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(4,'irc_points_others');