Ejemplo n.º 1
0
 static function file_unlock($folder, $id, $field, $subitem)
 {
     self::_require_access($folder, "write", "edit");
     $filename = self::file_download($folder, "edit", $id, $field, $subitem, true);
     if (!sys_can_unlock($filename, $_SESSION["username"])) {
         exit("{t}Access denied.{/t}");
     }
     sys_unlock($filename, $_SESSION["username"]);
     return $folder;
 }
Ejemplo n.º 2
0
function sys_unlock($file, $username)
{
    if (!sys_can_unlock($file, $username)) {
        return false;
    }
    @unlink($file . ".lck");
    $locks = str_replace($file . "\n", "", file_get_contents(SIMPLE_STORE . "/locking/locks.txt"));
    file_put_contents(SIMPLE_STORE . "/locking/locks.txt", $locks, LOCK_EX);
    return true;
}
Ejemplo n.º 3
0
    if (!empty($file[$_REQUEST["subitem"]])) {
        $row_filename = $file[$_REQUEST["subitem"]];
    } else {
        $row_filename = "";
    }
}
if ($row_filename == "") {
    $filename = urldecode(basename($_REQUEST["filename"]));
    list($target, $filename) = sys_build_filename($filename, "simple_files");
    dirs_checkdir($target);
    $target .= sys_get_pathnum($row["folder"]) . "/";
    dirs_checkdir($target);
    $target .= md5($row["folder"]) . $filename;
    $newfilename = $target;
} else {
    if (file_exists($row_filename . ".lck") and !sys_can_unlock($row_filename, $_SESSION["username"])) {
        sys_error(t("{t}Access to this file has been denied.{/t}"), "409 Conflict");
    } else {
        $i = 1;
        $newfilename = preg_replace("|_rev\\d+|", "", $row_filename);
        $base = basename($newfilename);
        $dir = dirname($newfilename);
        while (file_exists($newfilename)) {
            if ($pos = strrpos($base, ".")) {
                $name = substr($base, 0, $pos) . "_rev" . $i++ . substr($base, $pos);
            } else {
                $name = $base . "_rev" . $i++;
            }
            $newfilename = $dir . "/" . $name;
        }
        if (!rename($row_filename, $newfilename)) {