]> ruin.nu Git - ndwebbie.git/blobdiff - ND/Web/Pages/Users.pm
BUGFIX: properly handle null planets, and also better sorting of the userlist
[ndwebbie.git] / ND / Web / Pages / Users.pm
index 93ecd622dd4117fddb9229c9df81a511b0271c14..8f6fa490b66b957e398d198dabb4d647baa49403 100644 (file)
 
 package ND::Web::Pages::Users;
 use strict;
-use warnings FATAL => 'all';
+use warnings;
 use ND::Include;
 use CGI qw/:standard/;
 use ND::Web::Include;
 
-our @ISA = qw/ND::Web::XMLPage/;
+use base qw/ND::Web::XMLPage/;
 
 $ND::Web::Page::PAGES{users} = __PACKAGE__;
 
@@ -40,7 +40,7 @@ sub render_body {
        my $user;
        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  
+                       SELECT uid,username,hostmask,CASE WHEN u.planet IS NULL THEN '' ELSE coords(x,y,z) END AS planet,attack_points,defense_points,scan_points,humor_points,info 
                        FROM users u LEFT OUTER JOIN current_planet_stats p ON u.planet = p.id
                        WHERE uid = ?;
                        }) or $error .= "<p> Something went wrong: </p>";
@@ -51,7 +51,7 @@ sub render_body {
        if ($user && defined param('cmd') && param('cmd') eq 'change'){
                $DBH->begin_work;
                for my $param (param()){
-                       if ($param =~ /^c:(\w+)$/){
+                       if ($param =~ /^c:(planet|\w+_points|hostmask|info|username)$/){
                                my $column = $1;
                                my $value = param($column);
                                if ($column eq 'planet'){
@@ -106,6 +106,7 @@ sub render_body {
                $BODY->param(Defense_points => $user->{defense_points});
                $BODY->param(Scan_points => $user->{scan_points});
                $BODY->param(humor_points => $user->{humor_points});
+               $BODY->param(info => escapeHTML $user->{info});
 
                my $groups = $DBH->prepare(q{SELECT g.gid,g.groupname,uid FROM groups g LEFT OUTER JOIN (SELECT gid,uid FROM groupmembers WHERE uid = ?) AS gm ON g.gid = gm.gid});
                $groups->execute($user->{uid});
@@ -127,7 +128,7 @@ sub render_body {
                        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;
+                       ORDER BY lower(username)})or $error .= $DBH->errstr;
                $query->execute or $error .= $DBH->errstr;
                my @users;
                my $i = 0;