/** * Update accesspoint group * * @author Alberto Basso */ function sumo_update_accesspoint_group($id = 0, $group = FALSE) { $id = intval($id); if ($id > 0 && sumo_validate_group($group, FALSE) && sumo_verify_permissions(5, $group)) { global $SUMO; $query1 = "SELECT usergroup FROM " . SUMO_TABLE_ACCESSPOINTS . " \r\n\t\t\t\t WHERE id=" . $id; $rs = $SUMO['DB']->Execute($query1); $tab = $rs->FetchRow(); $new_group = sumo_get_normalized_group(str_replace($group, '', $tab[0]), TRUE); $query2 = "UPDATE " . SUMO_TABLE_ACCESSPOINTS . " \r\n\t\t\t\t SET usergroup='" . $new_group . "' \r\n\t\t\t\t WHERE id=" . $id; $SUMO['DB']->CacheFlush(); $SUMO['DB']->Execute($query1); $SUMO['DB']->Execute($query2); sumo_write_log('I07001X', array($id, $group, $new_group, $SUMO['user']['user']), '0,1', 3, 'system', FALSE); return TRUE; } else { return FALSE; } }
* * @version 0.5.0 * @link http://sumoam.sourceforge.net SUMO Access Manager * @author Alberto Basso <*****@*****.**> * @copyright Copyright © 2003-2009, Alberto Basso * @package SUMO * @category Console */ // Create group string if ($_POST['group']) { $_POST['group'] = sumo_get_normalized_group(implode(";", $_POST['group']), TRUE); } $_POST['path'] = sumo_get_normalized_accesspoint($_POST['path']); // If new group exist add it if ($_POST['newgroup']) { $_POST['group'] = sumo_get_normalized_group($_POST['newgroup'] . ";" . $_POST['group'], TRUE); } // If registration enabled require reg_group $reg_group = $_POST['registration'] ? 1 : 0; $data = array(array('id', $_GET['id'], 1), array('node', $_POST['node'], 1), array('name', $_POST['name'], 1), array('path', $_POST['path'], 1), array('usergroup', $_POST['group'], 1), array('reg_group', $_POST['reg_group'], $reg_group), array('boolean', $_POST['http_auth'], 1), array('boolean', $_POST['filtering'], 1), array('boolean', $_POST['pwd_encrypt'], 1), array('boolean', $_POST['change_pwd'], 1), array('boolean', $_POST['registration'], 1), array('theme', $_POST['theme'])); $validate = sumo_validate_accesspoint_data($data, TRUE); // verify if accesspoint already exist //if(sumo_verify_accesspoint_exist($_POST['node'], $_POST['path'])) $validate = array(FALSE, sumo_get_message('I07002C', $_POST['path'])); // Verify submittedd groups with current user group if ($validate[0]) { $submitted_group = sumo_get_grouplevel($_POST['group'], TRUE); $available_group = sumo_get_available_group(); for ($g = 0; $g < count($submitted_group); $g++) { if (!in_array($submitted_group[$g], $available_group) && $submitted_group[$g]) { //$validate = array(false, sumo_get_message('GroupNotAvailable', $submitted_group[$g])); $validate[0] = true;
/** * Validate group string * * @author Alberto Basso <*****@*****.**> */ function sumo_validate_group($group = '', $level = TRUE) { if ($group) { $only_group = $level ? FALSE : TRUE; $group = sumo_get_normalized_group($group, $only_group); $group = explode(';', $group); $num_group = count($group); $err = TRUE; if ($level) { for ($g = 0; $g < $num_group; $g++) { if (!preg_match("/^[[:alpha:]\\/\\-\\_" . SUMO_REGEXP_ALLOWED_CHARS . "]{2,50}:[1-7]{1}\$/i", $group[$g])) { $err = FALSE; break; } } } else { for ($g = 0; $g < $num_group; $g++) { if (!preg_match("/^[[:alpha:]\\/\\-\\_" . SUMO_REGEXP_ALLOWED_CHARS . "]{2,50}\$/i", $group[$g])) { $err = FALSE; break; } } } return $err ? TRUE : FALSE; } else { return FALSE; } }
/** * Update user group */ function sumo_update_user_group($id = 0, $group = FALSE) { $group_level = explode(":", $group); $id = intval($id); if ($id > 0 && sumo_validate_group($group) && sumo_verify_permissions($group_level[1], $group_level[0])) { global $SUMO; $query1 = "SELECT usergroup FROM " . SUMO_TABLE_USERS . "\n\t\t\t\t WHERE id=" . $id; $rs = $SUMO['DB']->Execute($query1); $tab = $rs->FetchRow(); $new_group = sumo_get_normalized_group(str_replace($group, '', $tab[0])); $query2 = "UPDATE " . SUMO_TABLE_USERS . "\n\t\t\t\t SET usergroup='" . $new_group . "',\n\t\t\t\t \t\tmodified=" . $SUMO['server']['time'] . "\n\t\t\t\t WHERE id=" . $id; $SUMO['DB']->CacheFlush("SELECT * FROM " . SUMO_TABLE_USERS . "\n\t\t\t\t\t\t \t\t WHERE id=" . $id); $SUMO['DB']->Execute($query1); $SUMO['DB']->Execute($query2); sumo_write_log('I01002X', array($group, $id, $SUMO['user']['user']), '0,1', 3, 'system', FALSE); return TRUE; } else { return FALSE; } }