public function restore($user = null)
{
$raw = file_get_contents($this->getStoreageFile());
$element = Serialize::unserialize($raw);
// check for element with the same name
if ($element instanceof Document) {
$indentElement = Document::getByPath($element->getRealFullPath());
if ($indentElement) {
$element->setKey($element->getKey() . "_restore");
}
} elseif ($element instanceof Asset) {
$indentElement = Asset::getByPath($element->getRealFullPath());
if ($indentElement) {
$element->setFilename($element->getFilename() . "_restore");
}
} elseif ($element instanceof Object\AbstractObject) {
$indentElement = Object::getByPath($element->getRealFullPath());
if ($indentElement) {
$element->setKey($element->getKey() . "_restore");
}
}
if (\Pimcore\Tool\Admin::getCurrentUser()) {
$parent = $element->getParent();
if (!$parent->isAllowed("publish")) {
throw new \Exception("Not sufficient permissions");
}
}
$this->restoreChilds($element);
$this->delete();
}