예제 #1
0
 */
define("NOCONTENT", true);
define("NOSESSION", true);
require "index.php";
if (empty($_REQUEST["item"]) or empty($_REQUEST["action"]) or empty($_REQUEST["folder"]) or !isset($_REQUEST["subitem"])) {
    sys_error("Missing parameters.", "403 Forbidden");
}
sys_check_auth();
if (empty($_REQUEST["field"])) {
    $field = "filedata";
} else {
    $field = ltrim($_REQUEST["field"], "_");
}
$folder = folder_from_path($_REQUEST["folder"]);
if (strtolower($_REQUEST["action"]) == "lock") {
    ajax::file_lock($folder, $_REQUEST["item"], $field, $_REQUEST["subitem"]);
    header("Cache-Control: private, max-age=1, must-revalidate");
    header("Expires: " . gmdate("D, d M Y H:i:s", NOW) . " GMT");
    header("Content-Type: text/xml; charset=utf-8");
    header("Lock-Token: <opaquelocktoken:1>");
    echo '<?xml version="1.0" encoding="utf-8"?>
<D:prop xmlns:D="DAV:">
<D:lockdiscovery><D:activelock>
<D:lockscope><D:exclusive/></D:lockscope><D:locktype><D:write/></D:locktype>
<D:depth>0</D:depth><D:timeout>Second-7200</D:timeout>
<ns0:owner xmlns:ns0="DAV:">' . q($_SESSION["username"]) . '</ns0:owner>
<D:locktoken><D:href>opaquelocktoken:1</D:href></D:locktoken>
</D:activelock></D:lockdiscovery>
</D:prop>';
} else {
    ajax::file_unlock($folder, $_REQUEST["item"], $field, $_REQUEST["subitem"]);