1. Documentation;
2. Actions access in AdminController and SettingController by enableSessionHistory;
3. Add "visible" menu parameter by enableSessionHistory;
4. Add blank line in end of file.
This commit is contained in:
maranqz
2019-11-30 17:52:24 +03:00
parent be2b495c9e
commit b7d2cf42ac
13 changed files with 31 additions and 15 deletions

View File

@ -1,9 +1,9 @@
How to enable session history How to enable session history
============================ ============================
Session history is list user sessions. Session history list user sessions.
User can delete all session except current. User can delete all sessions except current.
Configure Module and Application Configure Module and Application
-------------------------------- --------------------------------

View File

@ -17,7 +17,7 @@ Number of expired storing records `session history`, values:
How long store `session history` after expiring, values: How long store `session history` after expiring, values:
- `false` Store all records without deleting - `false` Store all records without deleting
- `integer` Time for storing after expiring - `integer` Time for storing after expiring in seconds
#### enableTwoFactorAuthentication (type: `boolean`, default: `false`) #### enableTwoFactorAuthentication (type: `boolean`, default: `false`)

View File

@ -104,6 +104,11 @@ class AdminController extends Controller
'actions' => ['switch-identity'], 'actions' => ['switch-identity'],
'roles' => ['@'], 'roles' => ['@'],
], ],
[
'allow' => $this->getModule()->enableSessionHistory,
'actions' => ['session-history', 'terminate-sessions'],
'roles' => ['admin'],
],
[ [
'allow' => true, 'allow' => true,
'roles' => ['admin'], 'roles' => ['admin'],

View File

@ -115,8 +115,6 @@ class SettingsController extends Controller
'two-factor', 'two-factor',
'two-factor-enable', 'two-factor-enable',
'two-factor-disable', 'two-factor-disable',
'session-history',
'terminate-sessions',
], ],
'roles' => ['@'], 'roles' => ['@'],
], ],
@ -125,6 +123,11 @@ class SettingsController extends Controller
'actions' => ['confirm'], 'actions' => ['confirm'],
'roles' => ['?', '@'], 'roles' => ['?', '@'],
], ],
[
'allow' => $this->getModule()->enableSessionHistory,
'actions' => ['session-history', 'terminate-sessions'],
'roles' => ['@'],
],
], ],
], ],
]; ];

View File

@ -40,4 +40,4 @@ class DBTerminateSessionsService implements TerminateSessionsServiceInterface
return true; return true;
} }
} }

View File

@ -458,4 +458,4 @@ class SessionHistoryDecorator extends Session
{ {
return Yii::$app->getDb(); return Yii::$app->getDb();
} }
} }

View File

@ -45,4 +45,4 @@ class TerminateSessionsService implements TerminateSessionsServiceInterface
return true; return true;
} }
} }

View File

@ -16,4 +16,4 @@ use Da\User\Contracts\ServiceInterface;
interface TerminateSessionsServiceInterface extends ServiceInterface interface TerminateSessionsServiceInterface extends ServiceInterface
{ {
} }

View File

@ -102,4 +102,4 @@ class TerminateUserSessionsService implements ServiceInterface
{ {
return $this->excludeCurrentSession && $this->userId === Yii::$app->user->id; return $this->excludeCurrentSession && $this->userId === Yii::$app->user->id;
} }
} }

View File

@ -65,4 +65,4 @@ use yii\data\ActiveDataProvider;
]); ?> ]); ?>
<?php Pjax::end(); ?> <?php Pjax::end(); ?>
<?php $this->endContent() ?> <?php $this->endContent() ?>

View File

@ -13,6 +13,7 @@ use Da\User\Model\User;
use yii\bootstrap\Nav; use yii\bootstrap\Nav;
use yii\helpers\Html; use yii\helpers\Html;
use yii\web\View; use yii\web\View;
use Da\User\Module as UserModule;
/** /**
* @var View $this * @var View $this
@ -24,12 +25,14 @@ $this->title = Yii::t('usuario', 'Update user account');
$this->params['breadcrumbs'][] = ['label' => Yii::t('usuario', 'Users'), 'url' => ['index']]; $this->params['breadcrumbs'][] = ['label' => Yii::t('usuario', 'Users'), 'url' => ['index']];
$this->params['breadcrumbs'][] = $this->title; $this->params['breadcrumbs'][] = $this->title;
/** @var UserModule $module */
$module = Yii::$app->getModule('user');
?> ?>
<div class="clearfix"></div> <div class="clearfix"></div>
<?= $this->render( <?= $this->render(
'/shared/_alert', '/shared/_alert',
[ [
'module' => Yii::$app->getModule('user'), 'module' => $module,
] ]
) ?> ) ?>
@ -70,6 +73,7 @@ $this->params['breadcrumbs'][] = $this->title;
[ [
'label' => Yii::t('usuario', 'Session history'), 'label' => Yii::t('usuario', 'Session history'),
'url' => ['/user/admin/session-history', 'id' => $user->id], 'url' => ['/user/admin/session-history', 'id' => $user->id],
'visible' => $module->enableSessionHistory,
], ],
'<hr>', '<hr>',
[ [

View File

@ -11,9 +11,12 @@
use yii\helpers\Html; use yii\helpers\Html;
use yii\widgets\Menu; use yii\widgets\Menu;
use Da\User\Module as UserModule;
use Da\User\Model\User;
/** @var \Da\User\Model\User $user */ /** @var User $user */
$user = Yii::$app->user->identity; $user = Yii::$app->user->identity;
/** @var UserModule $module */
$module = Yii::$app->getModule('user'); $module = Yii::$app->getModule('user');
$networksVisible = count(Yii::$app->authClientCollection->clients) > 0; $networksVisible = count(Yii::$app->authClientCollection->clients) > 0;
@ -43,7 +46,8 @@ $networksVisible = count(Yii::$app->authClientCollection->clients) > 0;
['label' => Yii::t('usuario', 'Account'), 'url' => ['/user/settings/account']], ['label' => Yii::t('usuario', 'Account'), 'url' => ['/user/settings/account']],
[ [
'label' => Yii::t('usuario', 'Session history'), 'label' => Yii::t('usuario', 'Session history'),
'url' => ['/user/settings/session-history'] 'url' => ['/user/settings/session-history'],
'visible' => $module->enableSessionHistory,
], ],
['label' => Yii::t('usuario', 'Privacy'), ['label' => Yii::t('usuario', 'Privacy'),
'url' => ['/user/settings/privacy'], 'url' => ['/user/settings/privacy'],

View File

@ -76,4 +76,4 @@ $this->params['breadcrumbs'][] = $this->title;
</div> </div>
</div> </div>
</div> </div>
</div> </div>