415 lines
16 KiB
PHP
415 lines
16 KiB
PHP
<?php
|
|
require_once('vendor/autoload.php');
|
|
|
|
use Illuminate\Support\Facades\Redirect;
|
|
use Wenprise\Eloquent\Database;
|
|
use Wenprise\Eloquent\Facades\DB;
|
|
use Wenprise\Eloquent\Model;
|
|
use WoWPress\Models\Character;
|
|
use WoWPress\Models\CharacterList;
|
|
use WoWPress\Models\CharacterListItem;
|
|
use WoWPress\Models\Complaint;
|
|
use WoWPress\Models\Log;
|
|
use WoWPress\Models\Notification;
|
|
use WoWPress\Models\Raid;
|
|
use WoWPress\Models\Signup;
|
|
use WoWPress\Models\SKS;
|
|
use WoWPress\Models\SKSHistory;
|
|
use WoWPress\Models\User;
|
|
|
|
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':
|
|
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->save();
|
|
$char->updateFromAPI();
|
|
$char->updateMedia();
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case 'deleteCharacter':
|
|
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();
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case 'updateCharacter':
|
|
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;
|
|
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;
|
|
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();
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
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;
|
|
case 'createSKS':
|
|
isAllowed('wowpress_edit_raids');
|
|
if (isset($_POST['createSKS_nonce']) && wp_verify_nonce($_POST['createSKS_nonce'], 'createSKS')) {
|
|
if(isset($_POST['list_name'])){
|
|
if ($list = SKSHistory::getLatestList($_POST['list_name'])) {
|
|
break;
|
|
}
|
|
$list = new SKSHistory();
|
|
$list->list_name = $_POST['list_name'];
|
|
$list->active = true;
|
|
$list->fillWithRaiders();
|
|
$list->save();
|
|
}
|
|
}
|
|
break;
|
|
case 'addSKS':
|
|
isAllowed('wowpress_edit_raids');
|
|
if (isset($_POST['addSKS_nonce']) && wp_verify_nonce($_POST['addSKS_nonce'], 'addSKS')) {
|
|
if (isset($_POST['name']) && isset($_POST['realm']) && isset($_POST['list_name'])) {
|
|
if ($list = SKSHistory::getLatestList($_POST['list_name'])) {
|
|
$list->addChar($_POST['name'],$_POST['realm']);
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case 'toggleSKS':
|
|
isAllowed('wowpress_edit_raids');
|
|
if (isset($_POST['toggleSKS_nonce']) && wp_verify_nonce($_POST['toggleSKS_nonce'], 'toggleSKS')) {
|
|
if (isset($_POST['list_name']) && isset($_POST['rank'])) {
|
|
if ($list = SKSHistory::getLatestList($_POST['list_name'])) {
|
|
$list->toggleActive($_POST['rank']);
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case 'deleteSKS':
|
|
isAllowed('wowpress_edit_raids');
|
|
if (isset($_POST['deleteSKS_nonce']) && wp_verify_nonce($_POST['deleteSKS_nonce'], 'deleteSKS')) {
|
|
if (isset($_POST['list_name']) && isset($_POST['char'])) {
|
|
if ($list = SKSHistory::getLatestList($_POST['list_name'])) {
|
|
$list->removeChar($_POST['char']);
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case 'lootSKS':
|
|
isAllowed('wowpress_edit_raids');
|
|
if (isset($_POST['lootSKS_nonce']) && wp_verify_nonce($_POST['lootSKS_nonce'], 'lootSKS')) {
|
|
if (isset($_POST['list_name']) && isset($_POST['char'])) {
|
|
if ($list = SKSHistory::getLatestList($_POST['list_name'])) {
|
|
$list->loot($_POST['char']);
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case 'undoSKS':
|
|
isAllowed('wowpress_edit_raids');
|
|
if (isset($_POST['undoSKS_nonce']) && wp_verify_nonce($_POST['undoSKS_nonce'], 'undoSKS')) {
|
|
if (isset($_POST['list_name'])) {
|
|
if ($list = SKSHistory::getLatestList($_POST['list_name'])) {
|
|
$list->undo();
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case 'redoSKS':
|
|
isAllowed('wowpress_edit_raids');
|
|
if (isset($_POST['redoSKS_nonce']) && wp_verify_nonce($_POST['redoSKS_nonce'], 'redoSKS')) {
|
|
if (isset($_POST['list_name'])) {
|
|
if ($list = SKSHistory::getLatestList($_POST['list_name'])) {
|
|
$list->redo();
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case 'rollSKS':
|
|
isAllowed('wowpress_edit_raids');
|
|
if (isset($_POST['rollSKS_nonce']) && wp_verify_nonce($_POST['rollSKS_nonce'], 'rollSKS')) {
|
|
if (isset($_POST['list_name'])) {
|
|
if ($list = SKSHistory::getLatestList($_POST['list_name'])) {
|
|
$list->shuffle();
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case 'addComplaint':
|
|
isAllowed('wowpress_view_complaints');
|
|
if (isset($_POST['addComplaint_nonce']) && wp_verify_nonce($_POST['addComplaint_nonce'], 'addComplaint')) {
|
|
if (isset($_POST['complaint'])) {
|
|
$c = new Complaint();
|
|
$c->user_id = get_current_user_id();
|
|
$c->complaint = $_POST['complaint'];
|
|
$c->anonymous = !empty($_POST['hide']);
|
|
$c->save();
|
|
Notification::addCapabilityNotification("wowpress_edit_complaints", "Neuer Eintrag im Kummerkasten!");
|
|
}
|
|
}
|
|
break;
|
|
case 'commentComplaint':
|
|
isAllowed('wowpress_edit_complaints');
|
|
if (isset($_POST['commentComplaint_nonce']) && wp_verify_nonce($_POST['commentComplaint_nonce'], 'commentComplaint')) {
|
|
if (isset($_POST['complaint_id']) && isset($_POST['user_comment'])) {
|
|
$c = Complaint::find($_POST['complaint_id']);
|
|
if ($c) {
|
|
$c->user_comment = $_POST['user_comment'];
|
|
$c->save();
|
|
Notification::addNotification($c->user_id, "Neuer Kommentar im Kummerkasten!");
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case 'unhideComplaint':
|
|
isAllowed('wowpress_view_complaints');
|
|
if (isset($_POST['unhideComplaint_nonce']) && wp_verify_nonce($_POST['unhideComplaint_nonce'], 'unhideComplaint')) {
|
|
if (isset($_POST['complaint_id'])) {
|
|
$c = Complaint::find($_POST['complaint_id']);
|
|
if ($c && $c->user_id == get_current_user_id()) {
|
|
$c->anonymous = false;
|
|
$c->save();
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case 'slanderComplaint':
|
|
isAllowed('wowpress_edit_complaints');
|
|
if (isset($_POST['slanderComplaint_nonce']) && wp_verify_nonce($_POST['slanderComplaint_nonce'], 'slanderComplaint')) {
|
|
if (isset($_POST['complaint_id']) && isset($_POST['admin_comment'])) {
|
|
$c = Complaint::find($_POST['complaint_id']);
|
|
if ($c) {
|
|
$c->admin_comment = $_POST['admin_comment'];
|
|
$c->save();
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case 'trashComplaint':
|
|
isAllowed('wowpress_view_complaints');
|
|
if (isset($_POST['trashComplaint_nonce']) && wp_verify_nonce($_POST['trashComplaint_nonce'], 'trashComplaint')) {
|
|
if (isset($_POST['complaint_id'])) {
|
|
$c = Complaint::find($_POST['complaint_id']);
|
|
if ($c && $c->canTrash()) {
|
|
$c->trash();
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case 'restoreComplaint':
|
|
isAllowed('wowpress_edit_complaints');
|
|
if (isset($_POST['restoreComplaint_nonce']) && wp_verify_nonce($_POST['restoreComplaint_nonce'], 'restoreComplaint')) {
|
|
if (isset($_POST['complaint_id'])) {
|
|
$c = Complaint::find($_POST['complaint_id']);
|
|
if ($c) {
|
|
$c->restore();
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case 'deleteComplaint':
|
|
isAllowed('wowpress_edit_complaints');
|
|
if (isset($_POST['deleteComplaint_nonce']) && wp_verify_nonce($_POST['deleteComplaint_nonce'], 'deleteComplaint')) {
|
|
if (isset($_POST['complaint_id'])) {
|
|
$c = Complaint::find($_POST['complaint_id']);
|
|
if ($c) {
|
|
Log::write(json_encode(['user' => get_current_user_id(), 'complaint_by' => $c->user_id]), Log::LOG_COMPLAINT_DELETE);
|
|
$c->delete();
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case 'notificationSeen':
|
|
if (is_user_logged_in()) {
|
|
if (isset($_POST['notificationSeen_nonce']) && wp_verify_nonce($_POST['notificationSeen_nonce'], 'notificationSeen')) {
|
|
if (isset($_POST['notification_id'])) {
|
|
$note = Notification::find($_POST['notification_id']);
|
|
if (!empty($note->ID && $note->user_id == get_current_user_id())) {
|
|
$note->delete();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case 'updatePageBG':
|
|
isAllowed('wowpress_edit_site');
|
|
if (isset($_POST['updatePageBG_nonce']) && wp_verify_nonce($_POST['updatePageBG_nonce'], 'updatePageBG')) {
|
|
if (isset($_FILES['bg']) && $_FILES['bg']['type'] == "image/jpeg") {
|
|
$bg_path = ABSPATH . "/wp-content/bg.jpg";
|
|
rename($_FILES['bg']['tmp_name'], $bg_path);
|
|
chmod(ABSPATH . "/wp-content/bg.jpg", 0644);
|
|
}
|
|
}
|
|
break;
|
|
case 'updateRaidTitle':
|
|
isAllowed('wowpress_edit_raids');
|
|
if (isset($_POST['updateRaidTitle_nonce']) && wp_verify_nonce($_POST['updateRaidTitle_nonce'], 'updateRaidTitle')) {
|
|
if (isset($_POST['raid_id']) && isset($_POST['name'])) {
|
|
$raid = Raid::find($_POST['raid_id']);
|
|
if ($raid) {
|
|
$raid->setTitle($_POST['name']);
|
|
}
|
|
}
|
|
}
|
|
case 'addList':
|
|
isAllowed('wowpress_edit_raids');
|
|
if (checkNonce('addList')) {
|
|
if (isset($_POST['list_name'], $_POST['border_color'])) {
|
|
$list = new CharacterList();
|
|
$list->list_name = $_POST['list_name'];
|
|
$list->border_color = $_POST['border_color'];
|
|
$list->notify = !empty($_POST['notify']);
|
|
$list->max_count = 18;
|
|
$list->save();
|
|
}
|
|
}
|
|
case 'addCharToList':
|
|
isAllowed('wowpress_edit_raids');
|
|
if (isset($_POST['addCharToList_nonce']) && wp_verify_nonce($_POST['addCharToList_nonce'], 'addCharToList')) {
|
|
|
|
if (isset($_POST['character_ID']) && isset($_POST['list_id'])) {
|
|
$list = CharacterList::find($_POST['list_id']);
|
|
$char = Character::find($_POST['character_ID']);
|
|
if ($char && $list) {
|
|
$comment = "";
|
|
$date = date('Y-m-d');
|
|
if (!empty($_POST['comment'])) {
|
|
$comment = $_POST['comment'];
|
|
}
|
|
if (!empty($_POST['date'])) {
|
|
$date = $_POST['date'];
|
|
}
|
|
$list->addItem($char, $comment, $date);
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case 'removeListItem':
|
|
isAllowed('wowpress_edit_raids');
|
|
if (checkNonce('removeListItem')) {
|
|
if (isset($_POST['item_id'])) {
|
|
$item_id = intval($_POST['item_id']);
|
|
$item = CharacterListItem::find($item_id);
|
|
if ($item) {
|
|
$item->delete();
|
|
#CharacterListItem::deleteOrphans();
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case 'cron':
|
|
if (isset($_POST['cron'])) {
|
|
switch ($_POST['cron']) {
|
|
case 'update_applications':
|
|
|
|
break;
|
|
}
|
|
}
|
|
break;
|
|
}
|
|
|
|
header('Location: ' . $_SERVER['HTTP_REFERER']);
|