From bcaf1243b0ea44f148b6f4ee6ff3f3833a28dfcc Mon Sep 17 00:00:00 2001 From: Graham Knop Date: Fri, 17 Aug 2007 16:39:46 +0000 Subject: [PATCH] fix group editing adding numbers --- docs/changelog/7.x.x.txt | 7 ++++--- lib/WebGUI/Operation/Group.pm | 30 +++++++++++++++++------------- sbin/preload.perl | 2 ++ 3 files changed, 23 insertions(+), 16 deletions(-) diff --git a/docs/changelog/7.x.x.txt b/docs/changelog/7.x.x.txt index 02afb2111..22ddf1119 100644 --- a/docs/changelog/7.x.x.txt +++ b/docs/changelog/7.x.x.txt @@ -1,7 +1,8 @@ 7.4.4 -- fix: bug in EMS purge -- fix: bug in poll where you can't edit it to have less answers - + - fix: Changing group detail adds number to group name + http://www.webgui.org/bugs/tracker/changing-group-detail-adds-number-to-group-name + - fix: bug in EMS purge + - fix: bug in poll where you can't edit it to have less answers 7.4.3 - Data Forms set reply to to the same as the from field diff --git a/lib/WebGUI/Operation/Group.pm b/lib/WebGUI/Operation/Group.pm index ceb7bcca5..3ec37e15e 100644 --- a/lib/WebGUI/Operation/Group.pm +++ b/lib/WebGUI/Operation/Group.pm @@ -459,20 +459,24 @@ sub www_editGroup { #------------------------------------------------------------------- sub www_editGroupSave { - my $session = shift; - return $session->privilege->adminOnly() unless (canEditGroup($session,$session->form->process("gid"))); - my $g = WebGUI::Group->new($session,$session->form->process("gid")); - $g->description($session->form->process("description")); - # We don't want them to use an existing name. If needed, we'll ad a number to the name to keep it unique. - my $groupName = $session->form->process("groupName"); - while (WebGUI::Group->find($session, $groupName)->getId) { - $groupName =~ s/\A(.*?)(\d*)\z/ - my $newNum = ($2 || 0) + 1; - substr($1, 0, 100 - length($newNum)) . $newNum; #prevent name from growing over 100 chars - /emsx; + my $session = shift; + my $gid = $session->form->process("gid"); + return $session->privilege->adminOnly + unless canEditGroup($session, $gid); + my $g = WebGUI::Group->new($session, $gid); + # We don't want them to use an existing name. If needed, we'll ad a number to the name to keep it unique. + my $groupName = $session->form->process("groupName"); + while (my $existingGroupId = WebGUI::Group->find($session, $groupName)->getId) { + last + if $existingGroupId eq $gid; + $groupName =~ s/\A(.*?)(\d*)\z/ + my $newNum = ($2 || 0) + 1; + substr($1, 0, 100 - length($newNum)) . $newNum; #prevent name from growing over 100 chars + /emsx; } - $g->name($groupName); - $g->expireOffset($session->form->interval("expireOffset")); + $g->name($groupName); + $g->description($session->form->process("description")); + $g->expireOffset($session->form->interval("expireOffset")); $g->karmaThreshold($session->form->process("karmaThreshold")); $g->ipFilter($session->form->process("ipFilter")); $g->scratchFilter($session->form->process("scratchFilter")); diff --git a/sbin/preload.perl b/sbin/preload.perl index e7bd9a00c..a44cc4e4c 100644 --- a/sbin/preload.perl +++ b/sbin/preload.perl @@ -70,6 +70,8 @@ foreach my $package (@modules) { next if (WebGUI::Utility::isIn($package,@excludes)); my $use = "use ".$package." ()"; eval($use); + print $@ + if $@; } use Apache2::ServerUtil ();