Skip to content

Commit f8e7036

Browse files
committed
feat: aggiunta impostazione per disabilitare controllo sessione controllo sessione singola per utente
1 parent 77c6441 commit f8e7036

2 files changed

Lines changed: 11 additions & 6 deletions

File tree

src/AuthOSM.php

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -141,26 +141,24 @@ public function attempt($username, $password, $force = false)
141141

142142
if (!empty($user)) {
143143

144-
// Verifica se l'utente è già connesso (ha un token di sessione attivo)
145-
if (!empty($user['session_token'])) {
146-
// Verifica se ci sono operazioni recenti per l'utente (sessione attiva)
144+
$check_concurrent_session = setting('Abilita controllo sessione singola per utente') == '1';
145+
146+
// Se abilitato il controllo sessione singola per utente, verifica se l'utente è già connesso (ha un token di sessione attivo)
147+
if ($check_concurrent_session && !empty($user['session_token'])) {
147148
$user_model = User::find($user['id']);
148149
$is_online = $user_model ? $user_model->isOnline() : 0;
149150

150-
// Se ci sono operazioni recenti, la sessione è ancora attiva -> blocca il login
151151
if ($is_online == 1) {
152152
$status = 'already_logged_in';
153153
$this->current_status = $status;
154154

155-
// Log del tentativo
156155
$log['stato'] = self::getStatus()[$status]['code'];
157156
$log['user_agent'] = Filter::getPurifier()->purify($_SERVER['HTTP_USER_AGENT']);
158157
$database->insert('zz_logs', $log);
159158

160159
return false;
161160
}
162161

163-
// Se non ci sono operazioni recenti, la sessione è scaduta -> resetta il token e permetti il login
164162
$database->update('zz_users', [
165163
'session_token' => null,
166164
], [

update/2_10_1.sql

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
-- Aggiunta impostazione per disabilitare il controllo di sessione concorrente
2+
INSERT INTO `zz_settings` (`nome`, `valore`, `tipo`, `editable`, `sezione`, `order`) VALUES
3+
('Abilita controllo sessione singola per utente', '1', 'boolean', 1, 'Sicurezza', NULL);
4+
5+
INSERT INTO `zz_settings_lang` (`id_lang`, `id_record`, `title`, `help`) VALUES
6+
(1, (SELECT MAX(`id`) FROM `zz_settings`), 'Abilita controllo sessione singola per utente', 'Se abilitato, blocca il login se l''utente ha già una sessione attiva. Se disabilitato, permette login multipli dallo stesso utente.'),
7+
(2, (SELECT MAX(`id`) FROM `zz_settings`), 'Enable single session per user', 'If enabled, blocks login if the user already has an active session. If disabled, allows multiple logins from the same user.');

0 commit comments

Comments
 (0)