X-Git-Url: https://ruin.nu/git/?a=blobdiff_plain;f=users.pl;h=ba87e920b190bf488eb68e972125612711895e69;hb=03830799201db0b0f28e9c494fdd1b5b5143749c;hp=3425c247dcdb1d713160c2ba585b8e0de363e6bc;hpb=5e38dff0cf8667720f7ae7f89302e0246ecf5624;p=ndwebbie.git diff --git a/users.pl b/users.pl index 3425c24..ba87e92 100644 --- a/users.pl +++ b/users.pl @@ -18,10 +18,10 @@ #**************************************************************************/ use strict; -use POSIX; +use warnings FATAL => 'all'; +use ND::Include; our $BODY; our $DBH; -our $LOG; $ND::TEMPLATE->param(TITLE => 'Users'); @@ -29,16 +29,17 @@ die "You don't have access" unless isHC(); my $error = ''; my $user; -if (param('user') =~ /^(\d+)$/){ +if (defined param('user') && param('user') =~ /^(\d+)$/){ my $query = $DBH->prepare(q{ SELECT uid,username,hostmask,coords(x,y,z) AS planet,attack_points,defense_points,scan_points,humor_points FROM users u LEFT OUTER JOIN current_planet_stats p ON u.planet = p.id WHERE uid = ?; -}) or $error .= "

Something went wrong: ".$DBH->errstr."

"; +}) or $error .= "

Something went wrong:

"; $user = $DBH->selectrow_hashref($query,undef,$1) or $error.= "

Something went wrong: ".$DBH->errstr."

"; } -if ($user && param('cmd') eq 'change'){ + +if ($user && defined param('cmd') && param('cmd') eq 'change'){ $DBH->begin_work; for my $param (param()){ if ($param =~ /^c:(\w+)$/){ @@ -56,7 +57,7 @@ if ($user && param('cmd') eq 'change'){ if ($DBH->do(qq{UPDATE users SET $column = ? WHERE uid = ? } ,undef,$value,$user->{uid})){ $user->{$column} = param($column); - $LOG->execute($ND::UID,"HC set $column to $value for user: $user->{uid}"); + log_message $ND::UID,"HC set $column to $value for user: $user->{uid}"; }else{ $error .= "

Something went wrong: ".$DBH->errstr."

"; } @@ -68,6 +69,7 @@ if ($user && param('cmd') eq 'change'){ $groups->execute(); while (my $group = $groups->fetchrow_hashref){ my $query; + next unless defined param($group->{gid}); if (param($group->{gid}) eq 'remove'){ $query = $delgroup; }elsif(param($group->{gid}) eq 'add'){ @@ -75,7 +77,9 @@ if ($user && param('cmd') eq 'change'){ } if ($query){ if ($query->execute($user->{uid},$group->{gid})){ - $LOG->execute($ND::UID,"HC added user: $user->{uid} to group: $group->{gid}"); + my ($action,$a2) = ('added','to'); + ($action,$a2) = ('removed','from') if param($group->{gid}) eq 'remove'; + log_message $ND::UID,"HC $action user: $user->{uid} ($user->{username}) $a2 group: $group->{gid} ($group->{groupname})"; }else{ $error .= "

Something went wrong: ".$DBH->errstr."

"; } @@ -110,14 +114,18 @@ $BODY->param(RemoveGroups => \@remgroups); $BODY->param(AddGroups => \@addgroups); }else{ - my $query = $DBH->prepare(qq{SELECT uid,username FROM users ORDER BY username})or $error .= $DBH->errstr; + my $query = $DBH->prepare(qq{SELECT u.uid,username,TRIM(',' FROM concat(g.groupname||',')) AS groups + FROM users u LEFT OUTER JOIN (groupmembers gm NATURAL JOIN groups g) ON gm.uid = u.uid + WHERE u.uid > 0 + GROUP BY u.uid,username + ORDER BY username})or $error .= $DBH->errstr; $query->execute or $error .= $DBH->errstr; my @users; my $i = 0; while (my $user = $query->fetchrow_hashref){ + $i++; $user->{ODD} = $i % 2; push @users, $user; - $i++; } $BODY->param(Users => \@users); }