xx $ax['grp_all_cats']]; $stH = dbQuery("SELECT `ID`,`name` FROM `categories` WHERE `status` >= 0"); while ($row = $stH->fetch(PDO::FETCH_ASSOC)) { $catArray[$row['ID']] = $row['name']; } //display group list echo "
\n"; } function editGroup(&$group) { global $formCal, $ax, $usr, $state; echo "\n"; } function addGroup(&$group) { //add group global $ax, $state; do { if ($group['color'] and !preg_match("/^#[0-9A-Fa-f]{6}$/", $group['color'])) { $msg = 'E'.$ax['grp_invalid_color']; break; } if (!$group['name']) { $msg = 'E'.$ax['grp_cred_required']; break; } if (!preg_match("/^[\w\s\._-]{2,}$/u", $group['name'])) { $msg = 'E'.$ax['grp_name_invalid']; break; } $stH = stPrep("SELECT `name` FROM `groups` WHERE `name` = ? AND `status` >= 0"); stExec($stH,[$group['name']]); $row = $stH->fetch(PDO::FETCH_ASSOC); $stH = null; if ($row) { //name already exists $msg = 'E'.$ax['grp_name_exists']; break; } if ($group['privs'] > 1 and !$group['eCatIDs']) { //post rights $msg = 'E'.$ax['grp_check_add']; break; } $stH = stPrep("INSERT INTO `groups` (`name`,`privs`,`vCatIDs`,`eCatIDs`,`rEvents`,`mEvents`,`pEvents`,`upload`,`tnPrivs`,`color`) VALUES (?,?,?,?,?,?,?,?,?,?)"); stExec($stH,[$group['name'],$group['privs'],implode(',',$group['vCatIDs']),implode(',',$group['eCatIDs']),$group['rEvts'],$group['mEvts'],$group['pEvts'],$group['upload'],$group['tnPrivs'],$group['color']]); $msg = 'C'.$ax['grp_added']; $state = ''; } while (false); return $msg; } function updateGroup($group) { //update group global $ax, $state; do { if ($group['color'] and !preg_match("/^#[0-9A-Fa-f]{6}$/", $group['color'])) { $msg = 'E'.$ax['grp_invalid_color']; break; } if (!preg_match("/^[\w\s\._-]{2,}$/u", $group['name'])) { $msg = 'E'.$ax['grp_name_invalid']; break; } if ($group['privs'] > 1 and !$group['eCatIDs']) { $msg = 'E'.$ax['grp_check_add']; break; } $stH = stPrep("UPDATE `groups` SET `name` = ?,`privs` = ?,`vCatIDs` = ?,`eCatIDs` = ?,`rEvents` = ?,`mEvents` = ?,`pEvents` = ?,`upload` = ?,`tnPrivs` = ?,`color` = ? WHERE `ID` = ?"); stExec($stH,[$group['name'],$group['privs'],implode(',',$group['vCatIDs']),implode(',',$group['eCatIDs']),$group['rEvts'],$group['mEvts'],$group['pEvts'],$group['upload'],$group['tnPrivs'],$group['color'], $group['id']]); $msg = 'C'.$ax['grp_updated']; $state = ''; } while (false); return $msg; } function deleteGroup($group) { //delete user group global $ax; do { $stH = stPrep("SELECT `name` FROM `users` WHERE `groupID` = ? AND `status` >= 0 limit 1"); stExec($stH,[$group['id']]); $row = $stH->fetch(PDO::FETCH_ASSOC); $stH = null; if ($row) { //group is in use $msg = 'E'.$ax['grp_in_use'].' - '.$ax['grp_not_deleted']; break; } $stH = stPrep("UPDATE `groups` SET `status` = -1 WHERE `ID` = ?"); stExec($stH,[$group['id']]); $deleted = $stH->rowCount(); if (!$deleted) { $msg = 'E'."Database Error: {$ax['grp_not_deleted']}"; break; } $msg = 'C'.$ax['grp_deleted']; } while (false); return $msg; } //Control logic if ($usr['privs'] >= 4) { //manager or admin $msg = ''; if (isset($_POST['addExe'])) { $msg = addGroup($group); } elseif (isset($_POST['updExe'])) { $msg = updateGroup($group); } elseif (isset($_POST['delExe'])) { $msg = deleteGroup($group); } $class = $msg ? ($msg[0] == 'E' ? 'error' : 'confirm') : ''; $msg = substr($msg,1); echo $msg ? "{$msg}
\n" : "\n"; echo "
{$ax['no_way']}
\n"; } ?>