aboutsummaryrefslogtreecommitdiff
path: root/mod/reportedcontent/actions
diff options
context:
space:
mode:
Diffstat (limited to 'mod/reportedcontent/actions')
-rw-r--r--mod/reportedcontent/actions/add.php45
-rw-r--r--mod/reportedcontent/actions/delete.php33
-rw-r--r--mod/reportedcontent/actions/reportedcontent/add.php39
-rw-r--r--mod/reportedcontent/actions/reportedcontent/archive.php (renamed from mod/reportedcontent/actions/archive.php)20
-rw-r--r--mod/reportedcontent/actions/reportedcontent/delete.php28
5 files changed, 76 insertions, 89 deletions
diff --git a/mod/reportedcontent/actions/add.php b/mod/reportedcontent/actions/add.php
deleted file mode 100644
index 0611f7402..000000000
--- a/mod/reportedcontent/actions/add.php
+++ /dev/null
@@ -1,45 +0,0 @@
-<?php
-
- /**
- * Elgg report action
- *
- * @package ElggReportContent
- */
-
- $title = get_input('title');
- $description = get_input('description');
- $address = get_input('address');
- $access = ACCESS_PRIVATE; //this is private and only admins can see it
-
- if ($title && $address) {
-
- $report = new ElggObject;
- $report->subtype = "reported_content";
- $report->owner_guid = get_loggedin_userid();
- $report->title = $title;
- $report->address = $address;
- $report->description = $description;
- $report->access_id = $access;
-
- if ($report->save()) {
- if (!trigger_plugin_hook('reportedcontent:add', 'system', array('report'=>$report), true)) {
- $report->delete();
- register_error(elgg_echo('reportedcontent:failed'));
- } else {
- system_message(elgg_echo('reportedcontent:success'));
- $report->state = "active";
- }
- forward($address);
- } else {
- register_error(elgg_echo('reportedcontent:failed'));
- forward($address);
- }
-
- } else {
-
- register_error(elgg_echo('reportedcontent:failed'));
- forward($address);
-
- }
-
-?> \ No newline at end of file
diff --git a/mod/reportedcontent/actions/delete.php b/mod/reportedcontent/actions/delete.php
deleted file mode 100644
index 3e38d2069..000000000
--- a/mod/reportedcontent/actions/delete.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-/**
- * Elgg reported content: delete action
- *
- * @package ElggReportedCOntent
- */
-
-// Make sure we're logged in and are admin
-admin_gatekeeper();
-
-// Get input data
-$guid = (int) get_input('item');
-
-// Make sure we actually have permission to edit
-$report = get_entity($guid);
-if ($report->getSubtype() == "reported_content" && $report->canEdit()) {
- // Delete it!
- if (!trigger_plugin_hook('reportedcontent:delete', '$system', array('report'=>$report), true)) {
- register_error(elgg_echo("reportedcontent:notdeleted"));
- forward('pg/admin/reportedcontent');
- }
-
- $rowsaffected = $report->delete();
- if ($rowsaffected > 0) {
- // Success message
- system_message(elgg_echo("reportedcontent:deleted"));
- } else {
- register_error(elgg_echo("reportedcontent:notdeleted"));
- }
-
- // Forward back to the reported content page
- forward('pg/admin/reportedcontent');
-}
diff --git a/mod/reportedcontent/actions/reportedcontent/add.php b/mod/reportedcontent/actions/reportedcontent/add.php
new file mode 100644
index 000000000..f0a1b05c8
--- /dev/null
+++ b/mod/reportedcontent/actions/reportedcontent/add.php
@@ -0,0 +1,39 @@
+<?php
+/**
+ * Elgg report action
+ *
+ * @package ElggReportContent
+ */
+$title = get_input('title');
+$description = get_input('description');
+$address = get_input('address');
+$access = ACCESS_PRIVATE; //this is private and only admins can see it
+
+if ($title && $address) {
+
+ $report = new ElggObject;
+ $report->subtype = "reported_content";
+ $report->owner_guid = elgg_get_logged_in_user_guid();
+ $report->title = $title;
+ $report->address = $address;
+ $report->description = $description;
+ $report->access_id = $access;
+
+ if ($report->save()) {
+ if (!elgg_trigger_plugin_hook('reportedcontent:add', 'system', array('report' => $report), true)) {
+ $report->delete();
+ register_error(elgg_echo('reportedcontent:failed'));
+ } else {
+ system_message(elgg_echo('reportedcontent:success'));
+ $report->state = "active";
+ }
+ forward($address);
+ } else {
+ register_error(elgg_echo('reportedcontent:failed'));
+ forward($address);
+ }
+} else {
+
+ register_error(elgg_echo('reportedcontent:failed'));
+ forward($address);
+}
diff --git a/mod/reportedcontent/actions/archive.php b/mod/reportedcontent/actions/reportedcontent/archive.php
index 3bd10f520..dd5c6aef1 100644
--- a/mod/reportedcontent/actions/archive.php
+++ b/mod/reportedcontent/actions/reportedcontent/archive.php
@@ -5,25 +5,23 @@
* @package ElggReportedContent
*/
-// Make sure we're logged in and are admin
-admin_gatekeeper();
+$guid = (int) get_input('guid');
-// Get input data
-$guid = (int) get_input('item');
+$report = get_entity($guid);
// Make sure we actually have permission to edit
-$report = get_entity($guid);
if ($report->getSubtype() == "reported_content" && $report->canEdit()) {
- // change the state
- if (!trigger_plugin_hook('reportedcontent:archive', 'system', array('report'=>$report), TRUE)) {
+
+ // allow another plugin to override
+ if (!elgg_trigger_plugin_hook('reportedcontent:archive', 'system', array('report' => $report), TRUE)) {
system_message(elgg_echo("reportedcontent:notarchived"));
- forward('pg/admin/reportedcontent');
+ forward(REFERER);
}
+
+ // change the state
$report->state = "archived";
- // Success message
system_message(elgg_echo("reportedcontent:archived"));
- // Forward back to the reported content page
- forward('pg/admin/reportedcontent');
+ forward(REFERER);
}
diff --git a/mod/reportedcontent/actions/reportedcontent/delete.php b/mod/reportedcontent/actions/reportedcontent/delete.php
new file mode 100644
index 000000000..f7d4e2107
--- /dev/null
+++ b/mod/reportedcontent/actions/reportedcontent/delete.php
@@ -0,0 +1,28 @@
+<?php
+/**
+ * Elgg reported content: delete action
+ *
+ * @package ElggReportedContent
+ */
+
+$guid = (int) get_input('guid');
+
+$report = get_entity($guid);
+
+// Make sure we actually have permission to delete
+if ($report->getSubtype() == "reported_content" && $report->canEdit()) {
+
+ // give another plugin a chance to override
+ if (!elgg_trigger_plugin_hook('reportedcontent:delete', 'system', array('report' => $report), TRUE)) {
+ register_error(elgg_echo("reportedcontent:notdeleted"));
+ forward(REFERER);
+ }
+
+ if ($report->delete()) {
+ system_message(elgg_echo("reportedcontent:deleted"));
+ } else {
+ register_error(elgg_echo("reportedcontent:notdeleted"));
+ }
+
+ forward(REFERER);
+}