[admin] have AdminActionEvent carry its own params
This commit is contained in:
parent
f95e59cbae
commit
6d1bf8eede
7 changed files with 27 additions and 21 deletions
|
@ -26,11 +26,17 @@ class AdminActionEvent extends Event
|
|||
{
|
||||
public string $action;
|
||||
public bool $redirect = true;
|
||||
/** @var array<string, mixed> */
|
||||
public array $params;
|
||||
|
||||
public function __construct(string $action)
|
||||
/**
|
||||
* @param array<string, mixed> $params
|
||||
*/
|
||||
public function __construct(string $action, array $params)
|
||||
{
|
||||
parent::__construct();
|
||||
$this->action = $action;
|
||||
$this->params = $params;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -51,7 +57,7 @@ class AdminPage extends Extension
|
|||
send_event(new AdminBuildingEvent($page));
|
||||
} else {
|
||||
$action = $event->get_arg(0);
|
||||
$aae = new AdminActionEvent($action);
|
||||
$aae = new AdminActionEvent($action, $_POST);
|
||||
|
||||
if ($user->check_auth_token()) {
|
||||
log_info("admin", "Util: $action");
|
||||
|
|
|
@ -88,7 +88,7 @@ class Approval extends Extension
|
|||
$action = $event->action;
|
||||
$event->redirect = true;
|
||||
if ($action === "approval") {
|
||||
$approval_action = $_POST["approval_action"];
|
||||
$approval_action = $event->params["approval_action"];
|
||||
switch ($approval_action) {
|
||||
case "approve_all":
|
||||
$database->set_timeout(null); // These updates can take a little bit
|
||||
|
|
|
@ -113,8 +113,8 @@ class CronUploader extends Extension
|
|||
break;
|
||||
case "cron_uploader_restage":
|
||||
$event->redirect = true;
|
||||
if (array_key_exists("failed_dir", $_POST) && !empty($_POST["failed_dir"])) {
|
||||
$this->restage_folder($_POST["failed_dir"]);
|
||||
if (array_key_exists("failed_dir", $event->params) && !empty($event->params["failed_dir"])) {
|
||||
$this->restage_folder($event->params["failed_dir"]);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -322,14 +322,14 @@ class Ratings extends Extension
|
|||
switch ($action) {
|
||||
case "update_ratings":
|
||||
$event->redirect = true;
|
||||
if (!array_key_exists("rating_old", $_POST) || empty($_POST["rating_old"])) {
|
||||
if (!array_key_exists("rating_old", $event->params) || empty($event->params["rating_old"])) {
|
||||
return;
|
||||
}
|
||||
if (!array_key_exists("rating_new", $_POST) || empty($_POST["rating_new"])) {
|
||||
if (!array_key_exists("rating_new", $event->params) || empty($event->params["rating_new"])) {
|
||||
return;
|
||||
}
|
||||
$old = $_POST["rating_old"];
|
||||
$new = $_POST["rating_new"];
|
||||
$old = $event->params["rating_old"];
|
||||
$new = $event->params["rating_new"];
|
||||
|
||||
if ($user->can(Permissions::BULK_EDIT_IMAGE_RATING)) {
|
||||
$database->execute("UPDATE images SET rating = :new WHERE rating = :old", ["new" => $new, "old" => $old ]);
|
||||
|
|
|
@ -103,17 +103,17 @@ class RegenThumb extends Extension
|
|||
case "regen_thumbs":
|
||||
$event->redirect = true;
|
||||
$force = false;
|
||||
if (isset($_POST["regen_thumb_force"]) && $_POST["regen_thumb_force"] == "true") {
|
||||
if (isset($event->params["regen_thumb_force"]) && $event->params["regen_thumb_force"] == "true") {
|
||||
$force = true;
|
||||
}
|
||||
$limit = 1000;
|
||||
if (isset($_POST["regen_thumb_limit"]) && is_numeric($_POST["regen_thumb_limit"])) {
|
||||
$limit = intval($_POST["regen_thumb_limit"]);
|
||||
if (isset($event->params["regen_thumb_limit"]) && is_numeric($event->params["regen_thumb_limit"])) {
|
||||
$limit = intval($event->params["regen_thumb_limit"]);
|
||||
}
|
||||
|
||||
$mime = "";
|
||||
if (isset($_POST["regen_thumb_mime"])) {
|
||||
$mime = $_POST["regen_thumb_mime"];
|
||||
if (isset($event->params["regen_thumb_mime"])) {
|
||||
$mime = $event->params["regen_thumb_mime"];
|
||||
}
|
||||
$images = Search::find_images(tags: ["mime=" . $mime]);
|
||||
|
||||
|
@ -138,8 +138,8 @@ class RegenThumb extends Extension
|
|||
case "delete_thumbs":
|
||||
$event->redirect = true;
|
||||
|
||||
if (isset($_POST["delete_thumb_mime"]) && $_POST["delete_thumb_mime"] != "") {
|
||||
$images = Search::find_images(tags: ["mime=" . $_POST["delete_thumb_mime"]]);
|
||||
if (isset($event->params["delete_thumb_mime"]) && $event->params["delete_thumb_mime"] != "") {
|
||||
$images = Search::find_images(tags: ["mime=" . $event->params["delete_thumb_mime"]]);
|
||||
|
||||
$i = 0;
|
||||
foreach ($images as $image) {
|
||||
|
@ -149,7 +149,7 @@ class RegenThumb extends Extension
|
|||
$i++;
|
||||
}
|
||||
}
|
||||
$page->flash("Deleted $i thumbnails for ".$_POST["delete_thumb_mime"]." images");
|
||||
$page->flash("Deleted $i thumbnails for ".$event->params["delete_thumb_mime"]." images");
|
||||
} else {
|
||||
$dir = "data/thumbs/";
|
||||
deltree($dir);
|
||||
|
|
|
@ -59,7 +59,7 @@ class S3 extends Extension
|
|||
if($event->action == "s3_process") {
|
||||
foreach($database->get_all(
|
||||
"SELECT * FROM s3_sync_queue ORDER BY time ASC LIMIT :count",
|
||||
["count" => isset($_POST['count']) ? int_escape($_POST["count"]) : 10]
|
||||
["count" => isset($event->params['count']) ? int_escape($event->params["count"]) : 10]
|
||||
) as $row) {
|
||||
if($row['action'] == "S") {
|
||||
$image = Image::by_hash($row['hash']);
|
||||
|
|
|
@ -18,7 +18,7 @@ class TagToolsTest extends ShimmiePHPUnitTestCase
|
|||
$this->assertEquals("Post $image_id_1: TeStCase$ts", $page->title);
|
||||
|
||||
// Fix
|
||||
send_event(new AdminActionEvent('lowercase_all_tags'));
|
||||
send_event(new AdminActionEvent('lowercase_all_tags', []));
|
||||
|
||||
// Validate fix
|
||||
$this->get_page("post/view/$image_id_1");
|
||||
|
@ -26,7 +26,7 @@ class TagToolsTest extends ShimmiePHPUnitTestCase
|
|||
|
||||
// Change
|
||||
$_POST["tag"] = "TestCase$ts";
|
||||
send_event(new AdminActionEvent('set_tag_case'));
|
||||
send_event(new AdminActionEvent('set_tag_case', []));
|
||||
|
||||
// Validate change
|
||||
$this->get_page("post/view/$image_id_1");
|
||||
|
@ -47,7 +47,7 @@ class TagToolsTest extends ShimmiePHPUnitTestCase
|
|||
);
|
||||
|
||||
// Fix
|
||||
send_event(new AdminActionEvent('recount_tag_use'));
|
||||
send_event(new AdminActionEvent('recount_tag_use', []));
|
||||
|
||||
// Validate fix
|
||||
$this->assertEquals(
|
||||
|
|
Reference in a new issue