Add session history

This commit is contained in:
maranqz
2019-11-14 20:55:18 +03:00
parent 8dea2d8078
commit be2b495c9e
26 changed files with 1639 additions and 4 deletions

View File

@ -0,0 +1,43 @@
<?php
/*
* This file is part of the 2amigos/yii2-usuario project.
*
* (c) 2amigOS! <http://2amigos.us/>
*
* For the full copyright and license information, please view
* the LICENSE file that was distributed with this source code.
*/
namespace Da\User\Service\SessionHistory;
use yii\web\DbSession;
class DBTerminateSessionsService implements TerminateSessionsServiceInterface
{
protected $sessionIds;
protected $dbSession;
protected $fieldName;
public function __construct(array $sessionIds, DbSession $dbSession, $fieldName = 'id')
{
$this->sessionIds = $sessionIds;
$this->dbSession = $dbSession;
$this->fieldName = $fieldName;
}
public function run()
{
if (in_array(session_id(), $this->sessionIds)) {
session_write_close();
}
$this->dbSession->db->createCommand()->delete(
$this->dbSession->sessionTable,
[$this->fieldName => $this->sessionIds]
)->execute();
return true;
}
}