function folder_security_save_priv() { $samba = new samba(); $_POST["SaveUseridPrivileges"] = base64_decode($_POST["SaveUseridPrivileges"]); writelogs("******** Save privileges for {$_POST["SaveFolderProp"]} {$_POST["SaveUseridPrivileges"]} *** ", __FUNCTION__, __FILE__, __LINE__); while (list($a, $b) = each($_POST)) { $_POST[$a] = stripslashes($_POST[$a]); writelogs("******** POST: '{$a}' = '{$_POST[$a]}'", __FUNCTION__, __FILE__, __LINE__); } $folder = $_POST["SaveFolderProp"]; $h = $samba->hash_privileges($folder); $item = $_POST["SaveUseridPrivileges"]; if ($_POST["read_list"] == "no") { writelogs("******** POST: {$item} unset read list {$h[$item]["valid users"]}...", __FUNCTION__, __FILE__, __LINE__); unset($h[$item]["read list"]); } else { $h[$item]["read list"] = 'yes'; } if ($_POST["valid_users"] == "no") { writelogs("******** POST: {$item} unset valid users {$h[$item]["valid users"]}...", __FUNCTION__, __FILE__, __LINE__); unset($h[$item]["valid users"]); } else { $h[$item]["valid users"] = 'yes'; } if ($_POST["write_list"] == "no") { writelogs("******** POST: {$item} unset write list", __FUNCTION__, __FILE__); unset($h[$item]["write list"]); } else { $h[$item]["write list"] = 'yes'; } if (is_array($h)) { while (list($user, $array) = each($h)) { if (trim($user) == null) { continue; } while (list($priv, $n) = each($array)) { writelogs("{$priv}={$user}", __FUNCTION__, __FILE__); $a[$priv][] = $user; } } } else { writelogs("******** No privileges array given", __FUNCTION__, __FILE__); } unset($samba->main_array[$folder]["write list"]); unset($samba->main_array[$folder]["valid users"]); unset($samba->main_array[$folder]["read list"]); if (is_array($a)) { while (list($c, $d) = each($a)) { writelogs("******** POST: Final: {$folder} [{$c}] = " . implode(',', $d), __FUNCTION__, __FILE__, __LINE__); $samba->main_array[$folder][$c] = implode(',', $d); } } $samba->SaveToLdap(); }
function AddAclGroup() { $uid = base64_decode($_GET["AddAclGroup"]); $PathACL = base64_decode($_GET["path"]); $samba = new samba(); $FOLDER = $samba->main_shared_folders[$PathACL]; writelogs("ACLS:... Add new ACL for group \"{$uid}\" path={$PathACL} Shared name=\"{$FOLDER}\"", __FUNCTION__, __FILE__, __LINE__); if ($FOLDER != null) { $item = $uid; if (strpos($item, " ") > 0) { $item = "@\"{$item}\""; } else { $item = "@{$item}"; } $h = $samba->hash_privileges($FOLDER); $write = $h[$item]["write list"]; writelogs("ACLS:... {$item} Write list = {$write}", __FUNCTION__, __FILE__, __LINE__); if ($write != "yes") { $h[$item]["write list"] = 'yes'; reset($h); while (list($user, $array) = each($h)) { if (trim($user) == null) { continue; } while (list($priv, $n) = each($array)) { $a[$priv][] = $user; } } if (is_array($a)) { while (list($c, $d) = each($a)) { $samba->main_array[$FOLDER][$c] = implode(',', $d); } $samba->SaveToLdap(); } } } $acls = new aclsdirs(base64_decode($_GET["path"])); if (!isset($acls->acls_array["GROUPS"][$uid])) { $acls->acls_array["GROUPS"][$uid] = array(); } $acls->SaveAcls(); }
function folder_security_save_priv() { /* SaveFolderProp 180872 SaveUseridPrivileges david.touzeau read_list no valid_users no write_list yes */ $samba = new samba(); writelogs("save privileges for {$_GET["SaveFolderProp"]}", __FUNCTION__, __FILE__); $folder = $_GET["SaveFolderProp"]; $h = $samba->hash_privileges($folder); $item = $_GET["SaveUseridPrivileges"]; if ($_GET["read_list"] == "no") { unset($h[$item]["read list"]); } else { $h[$item]["read list"] = 'yes'; } if ($_GET["valid_users"] == "no") { unset($h[$item]["valid users"]); } else { $h[$item]["valid users"] = 'yes'; } if ($_GET["write_list"] == "no") { writelogs("{$item}= delete write list", __FUNCTION__, __FILE__); unset($h[$item]["write list"]); } else { $h[$item]["write list"] = 'yes'; } if (is_array($h)) { while (list($user, $array) = each($h)) { if (trim($user) == null) { continue; } while (list($priv, $n) = each($array)) { writelogs("{$priv}={$user}", __FUNCTION__, __FILE__); $a[$priv][] = $user; } } } else { writelogs("no privileges array given", __FUNCTION__, __FILE__); } if (is_array($a)) { while (list($c, $d) = each($a)) { $samba->main_array[$folder][$c] = implode(',', $d); } } else { writelogs("no privileges given for folder \"{$folder}\", delete all list privileges", __FUNCTION__, __FILE__); unset($samba->main_array[$folder]["write list"]); unset($samba->main_array[$folder]["valid users"]); unset($samba->main_array[$folder]["read list"]); } $samba->SaveToLdap(); }