diff --git a/lib/WebGUI/Operation/Group.pm b/lib/WebGUI/Operation/Group.pm
index e319afd78..22b09e8ad 100644
--- a/lib/WebGUI/Operation/Group.pm
+++ b/lib/WebGUI/Operation/Group.pm
@@ -17,6 +17,7 @@ use WebGUI::DateTime;
use WebGUI::HTMLForm;
use WebGUI::Icon;
use WebGUI::International;
+use WebGUI::Operation::Shared;
use WebGUI::Paginator;
use WebGUI::Privilege;
use WebGUI::Session;
@@ -25,150 +26,151 @@ use WebGUI::URL;
use WebGUI::Utility;
our @ISA = qw(Exporter);
-our @EXPORT = qw(&www_deleteGroup &www_deleteGroupConfirm &www_editGroup &www_editGroupSave &www_listGroups);
+our @EXPORT = qw(&www_manageUsersInGroup &www_deleteGroup &www_deleteGroupConfirm &www_editGroup
+ &www_editGroupSave &www_listGroups);
+
+#-------------------------------------------------------------------
+sub _submenu {
+ my ($output, %menu);
+ tie %menu, 'Tie::IxHash';
+ $menu{WebGUI::URL::page('op=editGroup&gid=new')} = WebGUI::International::get(90);
+ unless ($session{form}{op} eq "listGroups"
+ || $session{form}{gid} eq "new"
+ || $session{form}{op} eq "deleteGroupConfirm") {
+ $menu{WebGUI::URL::page("op=editGroup&gid=".$session{form}{gid})} = WebGUI::International::get(753);
+ $menu{WebGUI::URL::page("op=manageUsersInGroup&gid=".$session{form}{gid})} = WebGUI::International::get(754);
+ $menu{WebGUI::URL::page("op=deleteGroup&gid=".$session{form}{gid})} = WebGUI::International::get(755);
+ }
+ $menu{WebGUI::URL::page("op=listGroups")} = WebGUI::International::get(756);
+ return menuWrapper($_[0],\%menu);
+}
#-------------------------------------------------------------------
sub www_deleteGroup {
+ return WebGUI::Privilege::adminOnly() unless (WebGUI::Privilege::isInGroup(3));
my ($output);
- if ($session{form}{gid} < 26) {
- return WebGUI::Privilege::vitalComponent();
- } elsif (WebGUI::Privilege::isInGroup(3)) {
- $output .= helpIcon(15);
- $output .= '
'.WebGUI::International::get(42).'
';
- $output .= WebGUI::International::get(86).'';
- $output .= '
';
- return $output;
- } else {
- return WebGUI::Privilege::adminOnly();
- }
+ return WebGUI::Privilege::vitalComponent() if ($session{form}{gid} < 26);
+ $output .= helpIcon(15);
+ $output .= ''.WebGUI::International::get(42).'
';
+ $output .= WebGUI::International::get(86).'';
+ $output .= '
';
+ return _submenu($output);
}
#-------------------------------------------------------------------
sub www_deleteGroupConfirm {
- if ($session{form}{gid} < 26) {
- return WebGUI::Privilege::vitalComponent();
- } elsif (WebGUI::Privilege::isInGroup(3)) {
- WebGUI::SQL->write("delete from groups where groupId=$session{form}{gid}");
- WebGUI::SQL->write("delete from groupings where groupId=$session{form}{gid}");
- return www_listGroups();
- } else {
- return WebGUI::Privilege::adminOnly();
- }
+ return WebGUI::Privilege::adminOnly() unless (WebGUI::Privilege::isInGroup(3));
+ return WebGUI::Privilege::vitalComponent() if ($session{form}{gid} < 26);
+ WebGUI::SQL->write("delete from groups where groupId=$session{form}{gid}");
+ WebGUI::SQL->write("delete from groupings where groupId=$session{form}{gid}");
+ return www_listGroups();
}
#-------------------------------------------------------------------
sub www_editGroup {
- my ($output, $sth, %group, %hash, $f);
+ return WebGUI::Privilege::adminOnly() unless (WebGUI::Privilege::isInGroup(3));
+ my ($output, %group, $f);
tie %group, 'Tie::CPHash';
- tie %hash, 'Tie::CPHash';
- if (WebGUI::Privilege::isInGroup(3)) {
- if ($session{form}{gid} eq "new") {
- $group{expireAfter} = 314496000;
- $group{karmaThreshold} = 1000000000;
- } else {
- %group = WebGUI::SQL->quickHash("select * from groups where groupId=$session{form}{gid}");
- }
- $output .= helpIcon(17);
- $output .= ''.WebGUI::International::get(87).'
';
- $f = WebGUI::HTMLForm->new;
- $f->hidden("op","editGroupSave");
- $f->hidden("gid",$session{form}{gid});
- $f->readOnly($session{form}{gid},WebGUI::International::get(379));
- $f->text("groupName",WebGUI::International::get(84),$group{groupName});
- $f->textarea("description",WebGUI::International::get(85),$group{description});
- $f->interval("expireAfter",WebGUI::International::get(367),
- WebGUI::DateTime::secondsToInterval($group{expireAfter}));
- if ($session{setting}{useKarma}) {
- $f->integer("karmaThreshold",WebGUI::International::get(538),$group{karmaThreshold});
- } else {
- $f->hidden("karmaThreshold",$group{karmaThreshold});
- }
- $f->submit;
- $output .= $f->print;
- unless ($session{form}{gid} eq "new") {
- $output .= ''.WebGUI::International::get(88).'
';
- $output .= '
-
-
';
- $sth = WebGUI::SQL->read("select users.username,users.userId,groupings.expireDate
- from groupings,users where groupings.groupId=$session{form}{gid} and groupings.userId=users.userId
- order by users.username");
- while (%hash = $sth->hash) {
- $output .= '| '
- .deleteIcon('op=deleteGrouping&uid='.$hash{userId}.'&gid='.$session{form}{gid})
- .editIcon('op=editGrouping&uid='.$hash{userId}.'&gid='.$session{form}{gid})
- .' | ';
- $output .= ''
- .$hash{username}.' | ';
- $output .= ''.epochToHuman($hash{expireDate},"%z").' |
';
- }
- $sth->finish;
- $output .= '
';
- }
- } else {
- $output = WebGUI::Privilege::adminOnly();
- }
- return $output;
+ if ($session{form}{gid} eq "new") {
+ $group{expireAfter} = 314496000;
+ $group{karmaThreshold} = 1000000000;
+ } else {
+ %group = WebGUI::SQL->quickHash("select * from groups where groupId=$session{form}{gid}");
+ }
+ $output .= helpIcon(17);
+ $output .= ''.WebGUI::International::get(87).'
';
+ $f = WebGUI::HTMLForm->new;
+ $f->hidden("op","editGroupSave");
+ $f->hidden("gid",$session{form}{gid});
+ $f->readOnly($session{form}{gid},WebGUI::International::get(379));
+ $f->text("groupName",WebGUI::International::get(84),$group{groupName});
+ $f->textarea("description",WebGUI::International::get(85),$group{description});
+ $f->interval("expireAfter",WebGUI::International::get(367), WebGUI::DateTime::secondsToInterval($group{expireAfter}));
+ if ($session{setting}{useKarma}) {
+ $f->integer("karmaThreshold",WebGUI::International::get(538),$group{karmaThreshold});
+ } else {
+ $f->hidden("karmaThreshold",$group{karmaThreshold});
+ }
+ $f->submit;
+ $output .= $f->print;
+ return _submenu($output);
}
#-------------------------------------------------------------------
sub www_editGroupSave {
- if (WebGUI::Privilege::isInGroup(3)) {
- if ($session{form}{gid} eq "new") {
- $session{form}{gid} = getNextId("groupId");
- WebGUI::SQL->write("insert into groups (groupId) values ($session{form}{gid})");
- }
- WebGUI::SQL->write("update groups set groupName=".quote($session{form}{groupName}).",
- description=".quote($session{form}{description}).",
- expireAfter='".WebGUI::DateTime::intervalToSeconds($session{form}{expireAfter_interval},
- $session{form}{expireAfter_units})."',
- karmaThreshold='$session{form}{karmaThreshold}'
- where groupId=".$session{form}{gid});
- return www_listGroups();
- } else {
- return WebGUI::Privilege::adminOnly();
- }
+ return WebGUI::Privilege::adminOnly() unless (WebGUI::Privilege::isInGroup(3));
+ if ($session{form}{gid} eq "new") {
+ $session{form}{gid} = getNextId("groupId");
+ WebGUI::SQL->write("insert into groups (groupId) values ($session{form}{gid})");
+ }
+ WebGUI::SQL->write("update groups set groupName=".quote($session{form}{groupName}).",
+ description=".quote($session{form}{description}).",
+ expireAfter='".WebGUI::DateTime::intervalToSeconds($session{form}{expireAfter_interval},
+ $session{form}{expireAfter_units})."',
+ karmaThreshold='$session{form}{karmaThreshold}'
+ where groupId=".$session{form}{gid});
+ return www_listGroups();
}
#-------------------------------------------------------------------
sub www_listGroups {
+ return WebGUI::Privilege::adminOnly() unless (WebGUI::Privilege::isInGroup(3));
my ($output, $p, $sth, @data, @row, $i, $userCount);
- if (WebGUI::Privilege::isInGroup(3)) {
- $output = helpIcon(10);
- $output .= ''.WebGUI::International::get(89).'
';
- $output .= '';
- $sth = WebGUI::SQL->read("select groupId,groupName,description from groups
- where groupId<>1 and groupId<>2 and groupId<>7 order by groupName");
- while (@data = $sth->array) {
- $row[$i] = '| '
- .deleteIcon('op=deleteGroup&gid='.$data[0])
- .editIcon('op=editGroup&gid='.$data[0])
- .' | ';
- $row[$i] .= ''.$data[1].' | ';
- $row[$i] .= ''.$data[2].' | ';
- ($userCount) = WebGUI::SQL->quickArray("select count(*) from groupings where groupId=$data[0]");
- $row[$i] .= ''.$userCount.' |
';
- $row[$i] .= '';
- $i++;
- }
- $sth->finish;
- $p = WebGUI::Paginator->new(WebGUI::URL::page('op=listGroups'),\@row);
- $output .= '';
- $output .= ' |
';
- $output .= $p->getPage($session{form}{pn});
- $output .= '
';
- $output .= $p->getBarTraditional($session{form}{pn});
- return $output;
- } else {
- return WebGUI::Privilege::adminOnly();
+ $output = helpIcon(10);
+ $output .= ''.WebGUI::International::get(89).'
';
+ $sth = WebGUI::SQL->read("select groupId,groupName,description from groups
+ where groupId<>1 and groupId<>2 and groupId<>7 order by groupName");
+ while (@data = $sth->array) {
+ $row[$i] = '';
+ $row[$i] .= '| '.$data[1].' | ';
+ $row[$i] .= ''.$data[2].' | ';
+ ($userCount) = WebGUI::SQL->quickArray("select count(*) from groupings where groupId=$data[0]");
+ $row[$i] .= ''.$userCount.' |
';
+ $row[$i] .= '';
+ $i++;
}
+ $sth->finish;
+ $p = WebGUI::Paginator->new(WebGUI::URL::page('op=listGroups'),\@row);
+ $output .= '';
+ $output .= '
';
+ $output .= $p->getPage($session{form}{pn});
+ $output .= '
';
+ $output .= $p->getBarTraditional($session{form}{pn});
+ return _submenu($output);
+}
+
+#-------------------------------------------------------------------
+sub www_manageUsersInGroup {
+ return WebGUI::Privilege::adminOnly() unless (WebGUI::Privilege::isInGroup(3));
+ my ($output, $sth, %hash);
+ tie %hash, 'Tie::CPHash';
+ $output = ''.WebGUI::International::get(88).'
';
+ $output .= '
+
+
';
+ $sth = WebGUI::SQL->read("select users.username,users.userId,groupings.expireDate
+ from groupings,users where groupings.groupId=$session{form}{gid} and groupings.userId=users.userId
+ order by users.username");
+ while (%hash = $sth->hash) {
+ $output .= '| '
+ .deleteIcon('op=deleteGrouping&uid='.$hash{userId}.'&gid='.$session{form}{gid})
+ .editIcon('op=editGrouping&uid='.$hash{userId}.'&gid='.$session{form}{gid})
+ .' | ';
+ $output .= ''
+ .$hash{username}.' | ';
+ $output .= ''.epochToHuman($hash{expireDate},"%z").' |
';
+ }
+ $sth->finish;
+ $output .= '
';
+ return _submenu($output);
}
+
1;
diff --git a/lib/WebGUI/Operation/Shared.pm b/lib/WebGUI/Operation/Shared.pm
new file mode 100644
index 000000000..3d2abe56b
--- /dev/null
+++ b/lib/WebGUI/Operation/Shared.pm
@@ -0,0 +1,38 @@
+package WebGUI::Operation::Shared;
+
+
+#-------------------------------------------------------------------
+# WebGUI is Copyright 2001-2002 Plain Black LLC.
+#-------------------------------------------------------------------
+# Please read the legal notices (docs/legal.txt) and the license
+# (docs/license.txt) that came with this distribution before using
+# this software.
+#-------------------------------------------------------------------
+# http://www.plainblack.com info@plainblack.com
+#-------------------------------------------------------------------
+
+use Exporter;
+use strict;
+use WebGUI::International;
+use WebGUI::Session;
+use WebGUI::SQL;
+
+our @ISA = qw(Exporter);
+our @EXPORT = qw(&menuWrapper);
+
+#-------------------------------------------------------------------
+sub menuWrapper {
+ my ($output, $key);
+ $output = '
+ | ';
+ $output .= $_[0];
+ $output .= ' |
';
+ return $output;
+}
+
+1;
diff --git a/lib/WebGUI/Operation/User.pm b/lib/WebGUI/Operation/User.pm
index 53390ccfd..2562cafdb 100644
--- a/lib/WebGUI/Operation/User.pm
+++ b/lib/WebGUI/Operation/User.pm
@@ -30,15 +30,21 @@ use WebGUI::Utility;
our @ISA = qw(Exporter);
our @EXPORT = qw(&www_editUserKarma &www_editUserKarmaSave &www_editUserGroup &www_editUserProfile &www_editUserProfileSave &www_addUserToGroupSave &www_deleteGrouping &www_editGrouping &www_editGroupingSave &www_becomeUser &www_addUser &www_addUserSave &www_deleteUser &www_deleteUserConfirm &www_editUser &www_editUserSave &www_listUsers);
+
#-------------------------------------------------------------------
sub _submenu {
my ($output, %menu);
tie %menu, 'Tie::IxHash';
$menu{WebGUI::URL::page("op=addUser")} = WebGUI::International::get(169);
- unless ($session{form}{op} eq "listUsers" || $session{form}{op} eq "addUser" || $session{form}{op} eq "deleteUserConfirm") {
+ unless ($session{form}{op} eq "listUsers"
+ || $session{form}{op} eq "addUser"
+ || $session{form}{op} eq "deleteUserConfirm") {
$menu{WebGUI::URL::page("op=editUser&uid=".$session{form}{uid})} = WebGUI::International::get(457);
$menu{WebGUI::URL::page("op=editUserGroup&uid=".$session{form}{uid})} = WebGUI::International::get(458);
$menu{WebGUI::URL::page("op=editUserProfile&uid=".$session{form}{uid})} = WebGUI::International::get(459);
+ $menu{WebGUI::URL::page('op=viewProfile&uid='.$session{form}{uid})} = WebGUI::International::get(752);
+ $menu{WebGUI::URL::page('op=becomeUser&uid='.$session{form}{uid})} = WebGUI::International::get(751);
+ $menu{WebGUI::URL::page('op=deleteUser&uid='.$session{form}{uid})} = WebGUI::International::get(750);
if ($session{setting}{useKarma}) {
$menu{WebGUI::URL::page("op=editUserKarma&uid=".$session{form}{uid})} = WebGUI::International::get(555);
}
@@ -141,12 +147,11 @@ sub www_deleteUser {
$output .= helpIcon(7);
$output .= ''.WebGUI::International::get(42).'
';
$output .= WebGUI::International::get(167).'';
- $output .= '
';
- return $output;
+ return _submenu($output);
}
}
@@ -384,12 +389,8 @@ sub www_listUsers {
}
$sth = WebGUI::SQL->read("select * from users $search order by users.username");
while (%data = $sth->hash) {
- $row[$i] = '| '
- .deleteIcon('op=deleteUser&uid='.$data{userId})
- .editIcon('op=editUser&uid='.$data{userId})
- .becomeIcon('op=becomeUser&uid='.$data{userId});
- $row[$i] .= ' | ';
- $row[$i] .= '';
+ $row[$i] .= ' | '.$data{username}.' | ';
#$row[$i] .= ''.epochToHuman($data{dateCreated},"%z").' | ';
#$row[$i] .= ''.epochToHuman($data{lastUpdated},"%z").' | ';
@@ -399,7 +400,7 @@ sub www_listUsers {
$sth->finish;
$p = WebGUI::Paginator->new(WebGUI::URL::page('op=listUsers&keyword='.$session{form}{keyword}),\@row);
$output .= '';
- $output .= '
+ $output .= '
';
#
# ';
diff --git a/www/extras/toolbar/charcoal/become.gif b/www/extras/toolbar/charcoal/become.gif
deleted file mode 100644
index beeccc17e..000000000
Binary files a/www/extras/toolbar/charcoal/become.gif and /dev/null differ
diff --git a/www/extras/toolbar/classic/become.gif b/www/extras/toolbar/classic/become.gif
deleted file mode 100644
index c7bcc7dea..000000000
Binary files a/www/extras/toolbar/classic/become.gif and /dev/null differ
diff --git a/www/extras/toolbar/default/become.gif b/www/extras/toolbar/default/become.gif
deleted file mode 100644
index e50248a2e..000000000
Binary files a/www/extras/toolbar/default/become.gif and /dev/null differ
diff --git a/www/extras/toolbar/iconic/become.gif b/www/extras/toolbar/iconic/become.gif
deleted file mode 100644
index e5cc9a647..000000000
Binary files a/www/extras/toolbar/iconic/become.gif and /dev/null differ