WowPress-Tailwind/theme/request.php

148 lines
5.3 KiB
PHP
Raw Normal View History

2024-04-15 23:07:29 +02:00
<?php
require_once('vendor/autoload.php');
use Illuminate\Support\Facades\Redirect;
use WoWPress\Models\Character;
2024-04-23 00:44:42 +02:00
use WoWPress\Models\Raid;
use WoWPress\Models\Signup;
2024-04-22 15:38:22 +02:00
use WoWPress\Models\User;
2024-04-15 23:07:29 +02:00
if (empty($_POST['action'])) {
exit(404);
}
if (file_exists($_SERVER['DOCUMENT_ROOT'] . '/wp-load.php')) {
/** Loads the WordPress Environment and Template */
require_once($_SERVER['DOCUMENT_ROOT'] . '/wp-load.php');
}
switch ($_POST['action']) {
case 'addCharacter':
2024-04-22 15:38:22 +02:00
isAllowed('wowpress_edit_characters');
if (isset($_POST['addCharacter_nonce']) && wp_verify_nonce($_POST['addCharacter_nonce'], 'addCharacter')) {
if (isset($_POST['name']) && isset($_POST['realm'])) {
$char = Character::whereName($_POST['name'])->whereRealm($_POST['realm'])->first();
if (empty($char->ID)) {
$char = new Character();
$char->name = $_POST['name'];
$char->realm = $_POST['realm'];
$char->updateFromAPI();
$char->updateMedia();
2024-04-15 23:07:29 +02:00
}
}
}
break;
case 'deleteCharacter':
2024-04-22 15:38:22 +02:00
isAllowed('wowpress_edit_characters');
if (isset($_POST['deleteCharacter_nonce']) && wp_verify_nonce($_POST['deleteCharacter_nonce'], 'deleteCharacter')) {
if (isset($_POST['id'])) {
$char = Character::find($_POST['id']);
if ($char->ID) {
$char->delete();
2024-04-15 23:07:29 +02:00
}
}
}
break;
case 'updateCharacter':
2024-04-22 15:38:22 +02:00
isAllowed('wowpress_edit_characters');
if (isset($_POST['updateCharacter_nonce']) && wp_verify_nonce($_POST['updateCharacter_nonce'], 'updateCharacter')) {
if (isset($_POST['id'])) {
$char = Character::find($_POST['id']);
if ($char->ID) {
$char->updateFromAPI();
$char->updateMedia();
}
}
}
break;
2024-04-23 00:44:42 +02:00
case 'toggleRaidchar':
isAllowed('wowpress_edit_characters');
if (isset($_POST['toggleRaidchar_nonce']) && wp_verify_nonce($_POST['toggleRaidchar_nonce'], 'toggleRaidchar')) {
if (isset($_POST['id'])) {
$char = Character::find($_POST['id']);
if ($char->ID) {
$char->raidchar = !$char->raidchar;
$char->save();
}
}
}
break;
2024-04-22 15:38:22 +02:00
case 'changeUser':
isAllowed('wowpress_edit_characters');
if (isset($_POST['changeUser_nonce']) && wp_verify_nonce($_POST['changeUser_nonce'], 'changeUser')) {
if (isset($_POST['char_id']) && isset($_POST['uid'])) {
$char = Character::find($_POST['char_id']);
$user = User::find($_POST['uid']);
if (!empty($char->ID)) {
if (empty($user->ID)) {
$char->user_id = null;
$char->save();
} else
$char->user_id = $user->ID;
$char->save();
2024-04-15 23:07:29 +02:00
}
}
}
break;
2024-04-23 00:44:42 +02:00
case 'importRaid':
isAllowed('wowpress_edit_raids');
if (isset($_POST['importRaid_nonce']) && wp_verify_nonce($_POST['importRaid_nonce'], 'importRaid')) {
if (isset($_POST['id_wowaudit'])) {
if(!empty(Raid::where('id_wowaudit',$_POST['id_wowaudit'])->first())){
break;
}
$raid = new Raid();
$raid->id_wowaudit = $_POST['id_wowaudit'];
$raid->sync();
if(!empty($raid->title)){
$raid->save();
}
}
}
break;
case 'signupRaid':
isAllowed('wowpress_view_raids');
if (isset($_POST['signupRaid_nonce']) && wp_verify_nonce($_POST['signupRaid_nonce'], 'signupRaid')) {
if (isset($_POST['raid_id']) && isset($_POST['raid_character']) && isset($_POST['raid_status']) && isset($_POST['raid_role']) && isset($_POST['comment'])) {
$char = Character::find($_POST['raid_character']);
$raid = Raid::find($_POST['raid_id']);
if ($char->can_edit) {
if (!$char->id_wowaudit) {
$cw = $char->user->characters()->whereNot('id_wowaudit', 'NULL')->first();
if (empty($cw->ID)) {
break;
}
} else {
$cw = $char;
}
$comment = htmlentities2($_POST['comment']);
$signup = new Signup();
$signup->raid_id = $raid->ID;
$signup->character_id = $cw->ID;
$signup->setStatus($_POST['raid_status']);
$signup->setRole($_POST['raid_role']);
$signup->comment = $comment;
$sup = $signup->updateAPI($char);
if (!empty($sup['error'])) {
dd($sup);
}
$raid->sync(true);
$raid->save();
}
}
}
break;
2024-04-15 23:07:29 +02:00
}
header('Location: ' . $_SERVER['HTTP_REFERER']);