#**************************************************************************/
use strict;
-use POSIX;
+use warnings FATAL => 'all';
+use ND::Include;
our $BODY;
our $DBH;
-our $LOG;
$ND::TEMPLATE->param(TITLE => 'Users');
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 .= "<p> Something went wrong: ".$DBH->errstr."</p>";
+}) or $error .= "<p> Something went wrong: </p>";
$user = $DBH->selectrow_hashref($query,undef,$1) or $error.= "<p> Something went wrong: ".$DBH->errstr."</p>";
}
-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+)$/){
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 .= "<p> Something went wrong: ".$DBH->errstr."</p>";
}
$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'){
}
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 .= "<p> Something went wrong: ".$DBH->errstr."</p>";
}
$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;