Various fixes in forum

Add new access type: guest - all visitors, player will be now for logged players only
Fixed default forum board access for guests
This commit is contained in:
slawkens 2024-02-03 20:01:38 +01:00
parent bbe922a65d
commit 00cbce20b0
9 changed files with 127 additions and 85 deletions

View File

@ -13,9 +13,21 @@ use MyAAC\Forum;
defined('MYAAC') or exit('Direct access not allowed!'); defined('MYAAC') or exit('Direct access not allowed!');
$canEdit = Forum::isModerator(); if(!$canEdit) {
if($canEdit) { return;
$groups = new OTS_Groups_List(); }
$groupsList = new OTS_Groups_List();
$groups = [
['id' => 0, 'name' => 'Guest'],
];
foreach ($groupsList as $group) {
$groups[] = [
'id' => $group->getId(),
'name' => $group->getName()
];
}
if(!empty($action)) { if(!empty($action)) {
if($action == 'delete_board' || $action == 'edit_board' || $action == 'hide_board' || $action == 'moveup_board' || $action == 'movedown_board') if($action == 'delete_board' || $action == 'edit_board' || $action == 'hide_board' || $action == 'moveup_board' || $action == 'movedown_board')
@ -42,10 +54,12 @@ if($canEdit) {
if($action == 'add_board') { if($action == 'add_board') {
if(Forum::add_board($name, $description, $access, $guild, $errors)) { if(Forum::add_board($name, $description, $access, $guild, $errors)) {
$action = $name = $description = ''; $action = $name = $description = '';
header('Location: ' . getLink('forum'));
} }
} }
else if($action == 'delete_board') { else if($action == 'delete_board') {
Forum::delete_board($id, $errors); Forum::delete_board($id, $errors);
header('Location: ' . getLink('forum'));
$action = ''; $action = '';
} }
else if($action == 'edit_board') else if($action == 'edit_board')
@ -59,20 +73,24 @@ if($canEdit) {
} }
else { else {
Forum::update_board($id, $name, $access, $guild, $description); Forum::update_board($id, $name, $access, $guild, $description);
header('Location: ' . getLink('forum'));
$action = $name = $description = ''; $action = $name = $description = '';
$access = $guild = 0; $access = $guild = 0;
} }
} }
else if($action == 'hide_board') { else if($action == 'hide_board') {
Forum::toggleHide_board($id, $errors); Forum::toggleHide_board($id, $errors);
header('Location: ' . getLink('forum'));
$action = ''; $action = '';
} }
else if($action == 'moveup_board') { else if($action == 'moveup_board') {
Forum::move_board($id, -1, $errors); Forum::move_board($id, -1, $errors);
header('Location: ' . getLink('forum'));
$action = ''; $action = '';
} }
else if($action == 'movedown_board') { else if($action == 'movedown_board') {
Forum::move_board($id, 1, $errors); Forum::move_board($id, 1, $errors);
header('Location: ' . getLink('forum'));
$action = ''; $action = '';
} }
@ -87,11 +105,11 @@ if($canEdit) {
$twig->display('forum.add_board.html.twig', array( $twig->display('forum.add_board.html.twig', array(
'link' => getLink('forum', ($action == 'edit_board' ? 'edit_board' : 'add_board')), 'link' => getLink('forum', ($action == 'edit_board' ? 'edit_board' : 'add_board')),
'action' => $action, 'action' => $action,
'id' => isset($id) ? $id : null, 'id' => $id ?? null,
'name' => isset($name) ? $name : null, 'name' => $name ?? null,
'description' => isset($description) ? $description : null, 'description' => $description ?? null,
'access' => isset($access) ? $access : 0, 'access' => $access ?? 0,
'guild' => isset($guild) ? $guild : null, 'guild' => $guild ?? null,
'groups' => $groups, 'groups' => $groups,
'guilds' => $guilds 'guilds' => $guilds
)); ));
@ -99,4 +117,3 @@ if($canEdit) {
if($action == 'edit_board') if($action == 'edit_board')
$action = ''; $action = '';
} }
}

View File

@ -8,6 +8,9 @@
* @copyright 2021 MyAAC * @copyright 2021 MyAAC
* @link https://my-aac.org * @link https://my-aac.org
*/ */
use MyAAC\Forum;
defined('MYAAC') or die('Direct access not allowed!'); defined('MYAAC') or die('Direct access not allowed!');
$title = 'Forum'; $title = 'Forum';
@ -24,10 +27,7 @@ if(strtolower($forumSetting) != 'site') {
return false; return false;
} }
if(!$logged) { $canEdit = Forum::isModerator();
echo 'You are not logged in. <a href="?subtopic=accountmanagement&redirect=' . BASE_URL . urlencode('?subtopic=forum') . '">Log in</a> to post on the forum.<br /><br />';
return false;
}
$sections = array(); $sections = array();
foreach(getForumBoards() as $section) { foreach(getForumBoards() as $section) {

View File

@ -18,6 +18,11 @@ if ($ret === false) {
return; return;
} }
if(!$logged) {
echo 'You are not logged in. <a href="?subtopic=accountmanagement&redirect=' . BASE_URL . urlencode('?subtopic=forum') . '">Log in</a> to post on the forum.<br /><br />';
return;
}
if(Forum::canPost($account_logged)) if(Forum::canPost($account_logged))
{ {
$post_id = isset($_REQUEST['id']) ? (int) $_REQUEST['id'] : false; $post_id = isset($_REQUEST['id']) ? (int) $_REQUEST['id'] : false;

View File

@ -18,6 +18,11 @@ if ($ret === false) {
return; return;
} }
if(!$logged) {
echo 'You are not logged in. <a href="?subtopic=accountmanagement&redirect=' . BASE_URL . urlencode('?subtopic=forum') . '">Log in</a> to post on the forum.<br /><br />';
return;
}
if(!Forum::isModerator()) { if(!Forum::isModerator()) {
echo 'You are not logged in or you are not moderator.'; echo 'You are not logged in or you are not moderator.';
} }

View File

@ -24,7 +24,7 @@ if(!$logged) {
$extra_url = '&action=new_post&thread_id=' . $_GET['thread_id']; $extra_url = '&action=new_post&thread_id=' . $_GET['thread_id'];
} }
header('Location: ' . BASE_URL . '?subtopic=accountmanagement&redirect=' . BASE_URL . urlencode('?subtopic=forum' . $extra_url)); echo 'You are not logged in. <a href="?subtopic=accountmanagement&redirect=' . BASE_URL . urlencode('?subtopic=forum' . $extra_url) . '">Log in</a> to post on the forum.<br /><br />';
return; return;
} }

View File

@ -18,6 +18,16 @@ if ($ret === false) {
return; return;
} }
if(!$logged) {
$extra_url = '';
if(isset($_GET['section_id'])) {
$extra_url = '&action=new_thread&section_id=' . $_GET['section_id'];
}
echo 'You are not logged in. <a href="?subtopic=accountmanagement&redirect=' . BASE_URL . urlencode('?subtopic=forum' . $extra_url) . '">Log in</a> to post on the forum.<br /><br />';
return;
}
if(Forum::canPost($account_logged)) { if(Forum::canPost($account_logged)) {
$players_from_account = $db->query('SELECT `players`.`name`, `players`.`id` FROM `players` WHERE `players`.`account_id` = '.(int) $account_logged->getId())->fetchAll(); $players_from_account = $db->query('SELECT `players`.`name`, `players`.`id` FROM `players` WHERE `players`.`account_id` = '.(int) $account_logged->getId())->fetchAll();
$section_id = $_REQUEST['section_id'] ?? null; $section_id = $_REQUEST['section_id'] ?? null;

View File

@ -18,6 +18,11 @@ if ($ret === false) {
return; return;
} }
if(!$logged) {
echo 'You are not logged in. <a href="?subtopic=accountmanagement&redirect=' . BASE_URL . urlencode('?subtopic=forum') . '">Log in</a> to post on the forum.<br /><br />';
return;
}
if(Forum::isModerator()) { if(Forum::isModerator()) {
$id = (int) $_REQUEST['id']; $id = (int) $_REQUEST['id'];
$post = $db->query("SELECT `id`, `first_post`, `section` FROM `" . FORUM_TABLE_PREFIX . "forum` WHERE `id` = ".$id." LIMIT 1")->fetch(); $post = $db->query("SELECT `id`, `first_post`, `section` FROM `" . FORUM_TABLE_PREFIX . "forum` WHERE `id` = ".$id." LIMIT 1")->fetch();

View File

@ -22,7 +22,7 @@
<td> <td>
<select name="access"> <select name="access">
{% for id, group in groups %} {% for id, group in groups %}
<option value="{{ group.getId() }}"{% if access == group.getId() %} selected{% endif %}>{{ group.getName() }}</option> <option value="{{ group.id }}"{% if access == group.id %} selected{% endif %}>{{ group.name }}</option>
{% endfor %} {% endfor %}
</select> </select>
</td> </td>

View File

@ -24,7 +24,7 @@
</select> </select>
<input type="submit" value="Move Thread"> <input type="submit" value="Move Thread">
</form> </form>
<form action="{{ section_link }}" method="post"> <form action="{{ section_link }}">
{{ csrf() }} {{ csrf() }}
<input type="submit" value="Cancel"> <input type="submit" value="Cancel">
</form> </form>