setTPL("priv_form.tpl"); $form = new HTML_QuickForm("NewForm"); //}}} function process_data($args) { /** * Process Data * * This is the callback function to handle the processing of the QF * @author Tristan Coetzee * @param $args Contains the form variables supplied by HTML_QF * @version 0.1.0 */ global $LUA; global $form; global $db; $changed=false; if(isset($args['btnExtChange'])&&$args['btnExtChange']=='Modify Extensions!') { $data = array('extensions'=>$args['txtExtensions']); $filter = array('group_id'=>$args['lu_group_id']); $updated = $LUA->perm->updateGroup($data,$filter); if(false == $updated) { //print_r($LUA->getErrors()); die("Error updating Privilege"); } else { return "Extensions updated successfully"; } } if(isset($args['btnAddRight'])&&$args['btnAddRight']=='Add Right!') { if(isset($args['lu_group_id'])&&!empty($args['lu_group_id'])) { $gid = $args['lu_group_id']; } else { $gid = 0; } $rights_data = array( 'right_id'=>$args['sel_lu_add_right_id'], 'group_id'=>$gid ); $add_res = $LUA->perm->grantGroupRight($rights_data); if ($add_res===false) { //print_r($LUA->getErrors()); die("Error adding right"); } else { $change_msg = "Right added successfully to privilege group!"; $changed = true; } } if(isset($args['btnRemRight'])&&$args['btnRemRight']=='Remove Right!') { if(isset($args['lu_group_id'])&&!empty($args['lu_group_id'])) { $gid = $args['lu_group_id']; } else { $gid = 0; } $rights_data = array( 'right_id'=>$args['sel_lu_rem_right_id'], 'group_id'=>$gid ); $remove_res = $LUA->perm->revokeGroupRight($rights_data); if ($remove_res===false) { //print_r($LUA->getErrors()); die("Error removing right"); } else { $change_msg = "Right removed successfully from privilege group!"; $changed = true; } } if($changed) { if(isset($args['lu_group_id'])&&!empty($args['lu_group_id'])) { $gid = $args['lu_group_id']; } else { $gid = 0; } //{{{ retrieve details from db $right_query = "SELECT `right_id`,`right_define_name` FROM `liveuser_rights` WHERE `right_id` IN (SELECT `right_id` FROM `liveuser_grouprights` WHERE `group_id` = ".$gid.")"; $right_res = $db->query($right_query); if(handleError($right_res)) { $rights_found = array(); while ($right_res->fetchInto($right_row)) { $rights_found[$right_row['right_id']] = $right_row['right_define_name']; } } $no_right_query = "SELECT `right_id`,`right_define_name` FROM `liveuser_rights` WHERE `right_id` NOT IN (SELECT `right_id` FROM `liveuser_grouprights` WHERE `group_id` = ".$gid.")"; $no_right_res = $db->query($no_right_query); if(handleError($no_right_res)) { $rights_not_found = array(); while ($no_right_res->fetchInto($no_right_row)) { $rights_not_found[$no_right_row['right_id']] = $no_right_row['right_define_name']; } } //}}} //{{{ create select add right element $sel_lu_add_right =& $form->addElement('select','sel_lu_add_right_id','Select Right to add: ',$rights_not_found); //}}} //{{{ create select remove right element $sel_lu_rem_right =& $form->addElement('select','sel_lu_rem_right_id','Select Right to remove: ',$rights_found); //}}} return $change_msg; } } //end of process_data callback function //{{{ do some basic validation on the posted id $group_id=$_POST['lu_group_id']; $tpl->assign('group_id',$group_id); $group_name=$_POST['lu_group_define_name']; $tpl->assign('group_define_name',$group_name); //}}} //{{{ retrieve details from db $filter = array('filters' => array('group_id' => $group_id)); $groups = $LUA->perm->getGroups($filter); $extensions = $groups['0']['extensions']; $right_query = "SELECT `right_id`,`right_define_name` FROM `liveuser_rights` WHERE `right_id` IN (SELECT `right_id` FROM `liveuser_grouprights` WHERE `group_id` = $group_id)"; $right_res = $db->query($right_query); if(handleError($right_res)) { $rights_found = array(); while ($right_res->fetchInto($right_row)) { $rights_found[$right_row['right_id']] = $right_row['right_define_name']; } } $no_right_query = "SELECT `right_id`,`right_define_name` FROM `liveuser_rights` WHERE `right_id` NOT IN (SELECT `right_id` FROM `liveuser_grouprights` WHERE `group_id` = $group_id)"; $no_right_res = $db->query($no_right_query); if(handleError($no_right_res)) { $rights_not_found = array(); while ($no_right_res->fetchInto($no_right_row)) { $rights_not_found[$no_right_row['right_id']] = $no_right_row['right_define_name']; } } //}}} //{{{ create object and elements $form->addElement('header',"hdrTop","Edit Privilege"); $form->addElement('text','txtExtensions','Extensions: '); $form->addElement('submit','btnAddRight','Add Right!'); $form->addElement('submit','btnRemRight','Remove Right!'); $form->addElement('submit','btnExtChange','Modify Extensions!'); //{{{ add select elements //{{{ create select add right element $sel_lu_add_right =& $form->addElement('select','sel_lu_add_right_id','Select Right to add: ',$rights_not_found); //}}} //{{{ create select remove right element $sel_lu_rem_right =& $form->addElement('select','sel_lu_rem_right_id','Select Right to remove: ',$rights_found); //}}} //}}} $defaults=array('txtExtensions'=>$extensions); $form->setDefaults($defaults); //}}} //{{{ validate form if($form->validate()) { $result = $form->process('process_data','false'); $form->addElement('text','txtResult',$result); } else { } //}}} //{{{ assign form to tpl and display form $tpl->display(&$form); //}}} ?>