package WebGUI::Operation::Group; #------------------------------------------------------------------- # 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 Tie::CPHash; 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; use WebGUI::SQL; use WebGUI::URL; use WebGUI::Utility; our @ISA = qw(Exporter); 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); return WebGUI::Privilege::vitalComponent() if ($session{form}{gid} < 26); $output .= helpIcon(15); $output .= '
'; $output .= '
'; return _submenu($output); } #------------------------------------------------------------------- sub www_deleteGroupConfirm { 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 { return WebGUI::Privilege::adminOnly() unless (WebGUI::Privilege::isInGroup(3)); my ($output, %group, $f); tie %group, 'Tie::CPHash'; 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(84).' | ' .WebGUI::International::get(85).' | ' .WebGUI::International::get(748).' |
| '.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}) .' | '; $output .= '' .$hash{username}.' | '; $output .= ''.epochToHuman($hash{expireDate},"%z").' |