aboutsummaryrefslogtreecommitdiff
path: root/mod/file/actions/file/delete.php
diff options
context:
space:
mode:
Diffstat (limited to 'mod/file/actions/file/delete.php')
-rw-r--r--mod/file/actions/file/delete.php33
1 files changed, 33 insertions, 0 deletions
diff --git a/mod/file/actions/file/delete.php b/mod/file/actions/file/delete.php
new file mode 100644
index 000000000..72585aa36
--- /dev/null
+++ b/mod/file/actions/file/delete.php
@@ -0,0 +1,33 @@
+<?php
+/**
+* Elgg file delete
+*
+* @package ElggFile
+*/
+
+$guid = (int) get_input('guid');
+
+$file = new FilePluginFile($guid);
+if (!$file->guid) {
+ register_error(elgg_echo("file:deletefailed"));
+ forward('file/all');
+}
+
+if (!$file->canEdit()) {
+ register_error(elgg_echo("file:deletefailed"));
+ forward($file->getURL());
+}
+
+$container = $file->getContainerEntity();
+
+if (!$file->delete()) {
+ register_error(elgg_echo("file:deletefailed"));
+} else {
+ system_message(elgg_echo("file:deleted"));
+}
+
+if (elgg_instanceof($container, 'group')) {
+ forward("file/group/$container->guid/all");
+} else {
+ forward("file/owner/$container->username");
+}