expiration date can be set, prefix attributes with 'attr_'

This commit is contained in:
Uwe Steinmann 2020-08-24 12:56:36 +02:00
parent f1904ed7e4
commit 79d118a731

View File

@ -453,9 +453,9 @@ class HTTP_WebDAV_Server_SeedDMS extends HTTP_WebDAV_Server
if($valueset && $attrdef->getMultipleValues()) {
$valuesetstr = $attrdef->getValueSet();
$delimiter = substr($valuesetstr, 0, 1);
$info["props"][] = $this->mkprop("SeedDMS:", str_replace(' ', '', $attrdef->getName()), $delimiter.implode($delimiter, $attribute->getValueAsArray()));
$info["props"][] = $this->mkprop("SeedDMS:", 'attr_'.str_replace(array(' ', '|'), array('', ''), $attrdef->getName()), $delimiter.implode($delimiter, $attribute->getValueAsArray()));
} else
$info["props"][] = $this->mkprop("SeedDMS:", str_replace(' ', '', $attrdef->getName()), $attribute->getValue());
$info["props"][] = $this->mkprop("SeedDMS:", 'attr_'.str_replace(array(' ','|'), array('', '',''), $attrdef->getName()), $attribute->getValue());
}
}
@ -1514,6 +1514,25 @@ class HTTP_WebDAV_Server_SeedDMS extends HTTP_WebDAV_Server
case "comment":
$obj->setComment($val);
break;
case "expires":
if($obj->isType("document")) {
if($val) {
$ts = strtotime($val);
if($ts !== false) {
if(!$obj->setExpires($ts))
return false;
} else {
$options["props"][$key]['status'] = "400 Could not parse date";
return false;
}
} else {
$obj->setExpires(0);
}
} else {
$options["props"][$key]['status'] = "405 Expiration date cannot be set on folders";
return false;
}
break;
default:
if($attrdef = $this->dms->getAttributeDefinitionByName($prop["name"])) {
$valueset = $attrdef->getValueSetAsArray();
@ -1538,7 +1557,7 @@ class HTTP_WebDAV_Server_SeedDMS extends HTTP_WebDAV_Server
}
}
return "";
return true;
} /* }}} */