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 .= '

'.WebGUI::International::get(44).''; - $output .= '    '. - WebGUI::International::get(45).'
'; - 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 .= '

'.WebGUI::International::get(44).''; + $output .= '    ' + .WebGUI::International::get(45).'
'; + 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 .= ''; - $output .= ''; - $output .= ''; - } - $sth->finish; - $output .= '
 '.WebGUI::International::get(50).''.WebGUI::International::get(369).'
' - .deleteIcon('op=deleteGrouping&uid='.$hash{userId}.'&gid='.$session{form}{gid}) - .editIcon('op=editGrouping&uid='.$hash{userId}.'&gid='.$session{form}{gid}) - .'' - .$hash{username}.''.epochToHuman($hash{expireDate},"%z").'
'; - } - } 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 .= '
'.WebGUI::International::get(90).'
'; - $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 .= '
'.WebGUI::International::get(84).'' - .WebGUI::International::get(85).'' - .WebGUI::International::get(748).'
'; - $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 .= '
'.WebGUI::International::get(84).'' + .WebGUI::International::get(85).'' + .WebGUI::International::get(748).'
'; + $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 .= ''; + $output .= ''; + $output .= ''; + } + $sth->finish; + $output .= '
 '.WebGUI::International::get(50).''.WebGUI::International::get(369).'
' + .deleteIcon('op=deleteGrouping&uid='.$hash{userId}.'&gid='.$session{form}{gid}) + .editIcon('op=editGrouping&uid='.$hash{userId}.'&gid='.$session{form}{gid}) + .'' + .$hash{username}.''.epochToHuman($hash{expireDate},"%z").'
'; + 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 .= ''; + foreach $key (keys %{$_[1]}) { + $output .= '
  • '.$_[1]->{$key}.''; + } + $output .= '
  • '.WebGUI::International::get(493).''; + $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 .= '

    '.WebGUI::International::get(44).''; $output .= '    '. WebGUI::International::get(45).'
    '; - 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
    '.WebGUI::International::get(50).'
    '.WebGUI::International::get(453).''.WebGUI::International::get(454).'