package WebGUI::Operation::Group; #------------------------------------------------------------------- # WebGUI is Copyright 2001 Plain Black Software. #------------------------------------------------------------------- # 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::Form; use WebGUI::International; use WebGUI::Privilege; use WebGUI::Session; use WebGUI::SQL; use WebGUI::Utility; our @ISA = qw(Exporter); our @EXPORT = qw(&www_addGroup &www_addGroupSave &www_deleteGroup &www_deleteGroupConfirm &www_editGroup &www_editGroupSave &www_listGroups); #------------------------------------------------------------------- sub www_addGroup { my ($output); if (WebGUI::Privilege::isInGroup(3)) { $output .= ''; $output .= '

'.WebGUI::International::get(83).'

'; $output .= '
'; $output .= WebGUI::Form::hidden("op","addGroupSave"); $output .= ''; $output .= ''; $output .= ''; $output .= ''; $output .= '
'.WebGUI::International::get(84).''.WebGUI::Form::text("groupName",20,30).'
'.WebGUI::International::get(85).''.WebGUI::Form::textArea("description",'').'
'.WebGUI::Form::submit(WebGUI::International::get(62)).'
'; $output .= '
'; } else { $output = WebGUI::Privilege::adminOnly(); } return $output; } #------------------------------------------------------------------- sub www_addGroupSave { my ($output); if ($session{var}{sessionId}) { WebGUI::SQL->write("insert into groups values (".getNextId("groupId").", ".quote($session{form}{groupName}).", ".quote($session{form}{description}).")",$session{dbh}); $output = www_listGroups(); } else { $output = WebGUI::Privilege::adminOnly(); } return $output; } #------------------------------------------------------------------- sub www_deleteGroup { my ($output); if ($session{form}{gid} < 26) { return WebGUI::Privilege::vitalComponent(); } elsif (WebGUI::Privilege::isInGroup(3)) { $output .= ''; $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(); } } #------------------------------------------------------------------- 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}",$session{dbh}); WebGUI::SQL->write("delete from groupings where groupId=$session{form}{gid}",$session{dbh}); return www_listGroups(); } else { return WebGUI::Privilege::adminOnly(); } } #------------------------------------------------------------------- sub www_editGroup { my ($output, $sth, %group, @user); tie %group, 'Tie::CPHash'; if (WebGUI::Privilege::isInGroup(3)) { %group = WebGUI::SQL->quickHash("select * from groups where groupId=$session{form}{gid}",$session{dbh}); $output .= ''; $output .= '

'.WebGUI::International::get(87).'

'; $output .= '
'; $output .= WebGUI::Form::hidden("op","editGroupSave"); $output .= WebGUI::Form::hidden("gid",$session{form}{gid}); $output .= ''; $output .= ''; $output .= ''; $output .= ''; $output .= ''; $output .= '
'.WebGUI::International::get(84).''.WebGUI::Form::text("groupName",20,30,$group{groupName}).'
'.WebGUI::International::get(85).''.WebGUI::Form::textArea("description",$group{description}).'
'.WebGUI::Form::submit(WebGUI::International::get(62)).'
'.WebGUI::International::get(88).''; $sth = WebGUI::SQL->read("select users.username,users.userId from users,groupings where groupings.groupId=$session{form}{gid} and groupings.userId=users.userId order by users.username",$session{dbh}); while (@user = $sth->array) { $output .= ' '.$user[0].'
'; } $sth->finish; $output .= '
'; $output .= '
'; } else { $output = WebGUI::Privilege::adminOnly(); } return $output; } #------------------------------------------------------------------- sub www_editGroupSave { if (WebGUI::Privilege::isInGroup(3)) { WebGUI::SQL->write("update groups set groupName=".quote($session{form}{groupName}).", description=".quote($session{form}{description})." where groupId=".$session{form}{gid},$session{dbh}); return www_listGroups(); } else { return WebGUI::Privilege::adminOnly(); } } #------------------------------------------------------------------- sub www_listGroups { my ($output, $dataRows, $prevNextBar, $sth, @data, @row, $i); if (WebGUI::Privilege::isInGroup(3)) { $output = ''; $output .= '

'.WebGUI::International::get(89).'

'; $output .= '
'.WebGUI::International::get(90).'
'; $output .= ''; $sth = WebGUI::SQL->read("select groupId,groupName,description from groups where groupName<>'Reserved' order by groupName",$session{dbh}); while (@data = $sth->array) { $row[$i] = ''; $row[$i] .= ''; $row[$i] .= ''; $i++; } $sth->finish; ($dataRows, $prevNextBar) = paginate(50,$session{page}{url}.'?op=listGroups',\@row); $output .= '
'.$data[1].''.$data[2].'
'; $output .= $dataRows; $output .= '
'; $output .= $prevNextBar; return $output; } else { return WebGUI::Privilege::adminOnly(); } } 1;