Delete disallowed sessions when switching guest access mode - fixes #136

This commit is contained in:
2023-07-09 13:58:25 +02:00
parent 34d79fcfc8
commit 93464d7c4e

View File

@ -236,6 +236,7 @@ function route_admin() : string {
}elseif($_POST['do']==='guestaccess'){ }elseif($_POST['do']==='guestaccess'){
if(isset($_POST['guestaccess']) && preg_match('/^[0123]$/', $_POST['guestaccess'])){ if(isset($_POST['guestaccess']) && preg_match('/^[0123]$/', $_POST['guestaccess'])){
update_setting('guestaccess', $_POST['guestaccess']); update_setting('guestaccess', $_POST['guestaccess']);
change_guest_access(intval($_POST['guestaccess']));
} }
}elseif($_POST['do']==='filter'){ }elseif($_POST['do']==='filter'){
send_filter(manage_filter()); send_filter(manage_filter());
@ -1222,7 +1223,7 @@ function send_admin(string $arg): void
echo '<table><tr><td><input type="text" name="topic" size="20" value="'.get_setting('topic').'"></td><td>'; echo '<table><tr><td><input type="text" name="topic" size="20" value="'.get_setting('topic').'"></td><td>';
echo submit(_('Change')).'</td></tr></table></form></td></tr></table></td></tr>'; echo submit(_('Change')).'</td></tr></table></form></td></tr></table></td></tr>';
thr(); thr();
echo '"<tr><td><table id="guestaccess"><tr><th>'._('Change Guestaccess').'</th><td>"'; echo '<tr><td><table id="guestaccess"><tr><th>'._('Change Guestaccess').'</th><td>';
echo form('admin', 'guestaccess'); echo form('admin', 'guestaccess');
echo '<table>'; echo '<table>';
echo '<tr><td><select name="guestaccess">'; echo '<tr><td><select name="guestaccess">';
@ -3791,8 +3792,8 @@ function save_setup(array $C): void
settype($_POST['guestaccess'], 'int'); settype($_POST['guestaccess'], 'int');
if(!preg_match('/^[01234]$/', $_POST['guestaccess'])){ if(!preg_match('/^[01234]$/', $_POST['guestaccess'])){
unset($_POST['guestaccess']); unset($_POST['guestaccess']);
}elseif($_POST['guestaccess']==4){ }else{
$db->exec('DELETE FROM ' . PREFIX . 'sessions WHERE status<7;'); change_guest_access(intval($_POST['guestaccess']));
} }
settype($_POST['englobalpass'], 'int'); settype($_POST['englobalpass'], 'int');
settype($_POST['captcha'], 'int'); settype($_POST['captcha'], 'int');
@ -3847,6 +3848,15 @@ function save_setup(array $C): void
} }
} }
function change_guest_access(int $guest_access) : void {
global $db;
if($guest_access === 4){
$db->exec('DELETE FROM ' . PREFIX . 'sessions WHERE status<7;');
}elseif($guest_access === 0){
$db->exec('DELETE FROM ' . PREFIX . 'sessions WHERE status<3;');
}
}
function set_default_tz(): void function set_default_tz(): void
{ {
global $U; global $U;