Пример #1
0
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();
}
Пример #2
0
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();
}
Пример #3
0
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();
}