コード例 #1
0
ファイル: login.py プロジェクト: tboerger/checkmk
def UserSessionContext(user_id: UserId) -> Iterator[None]:
    """Managing context of authenticated user session with cleanup before logout."""
    with config.UserContext(user_id):
        try:
            yield
        finally:
            html.transaction_manager.store_new()
            userdb.on_end_of_request(user_id)
コード例 #2
0
def test_get_last_activity(with_user, session_valid):
    user_id = with_user[0]
    user = _load_users_uncached(lock=False)[user_id]
    assert userdb.get_last_activity(user) == time.time() - 5

    userdb.on_access(user_id, session_valid)
    userdb.on_end_of_request(user_id)

    user = _load_users_uncached(lock=False)[user_id]
    assert "session_info" in user
    assert userdb.get_last_activity(user) == time.time()
コード例 #3
0
def UserContext(user_id: UserId) -> Iterator[None]:
    """Managing authenticated user context

    After the user has been authenticated, initialize the global user object.
    Also cleanup when leaving"""
    try:
        config.set_user_by_id(user_id)
        yield
    finally:
        html.transaction_manager.store_new()
        userdb.on_end_of_request(user_id)
        config.clear_user_login()
コード例 #4
0
def test_get_last_activity(with_user: tuple[UserId, str]) -> None:
    now = datetime.now()
    user_id = with_user[0]
    session_valid = make_valid_session(user_id, now)
    user = _load_users_uncached(lock=False)[user_id]
    assert userdb.get_last_activity(user) == int(now.timestamp()) - 5

    userdb.on_access(user_id, session_valid, now)
    userdb.on_end_of_request(user_id, now)

    user = _load_users_uncached(lock=False)[user_id]
    assert "session_info" in user
    assert userdb.get_last_activity(user) == int(now.timestamp())
コード例 #5
0
def test_on_access_update_idle_session(user_id, session_timed_out):
    old_session_infos = userdb._load_session_infos(user_id)
    old_session = old_session_infos[session_timed_out]

    userdb.on_access(user_id, session_timed_out)
    userdb.on_end_of_request(user_id)

    new_session_infos = userdb._load_session_infos(user_id)
    new_session = new_session_infos[session_timed_out]

    assert new_session.session_id == old_session.session_id
    assert new_session.started_at == old_session.started_at
    assert new_session.last_activity == time.time()
    assert new_session.last_activity > old_session.last_activity
コード例 #6
0
def test_refresh_session_success(user_id: UserId, session_valid: str) -> None:
    session_infos = userdb._load_session_infos(user_id)
    assert session_infos
    old_session = userdb.SessionInfo(**asdict(session_infos[session_valid]))

    with on_time("2019-09-05 00:00:30", "UTC"):
        userdb._set_session(user_id, session_infos[session_valid])
        userdb._refresh_session(user_id, session_infos[session_valid])
        userdb.on_end_of_request(user_id)

        new_session_infos = userdb._load_session_infos(user_id)

        new_session = new_session_infos[session_valid]
        assert old_session.session_id == new_session.session_id
        assert new_session.last_activity > old_session.last_activity
コード例 #7
0
def test_on_access_update_valid_session(user_id: UserId,
                                        session_valid: str) -> None:
    old_session_infos = userdb._load_session_infos(user_id)
    old_session = old_session_infos[session_valid]

    userdb.on_access(user_id, session_valid)
    userdb.on_end_of_request(user_id)

    new_session_infos = userdb._load_session_infos(user_id)
    new_session = new_session_infos[session_valid]

    assert new_session.session_id == old_session.session_id
    assert new_session.started_at == old_session.started_at
    assert new_session.last_activity == time.time()
    assert new_session.last_activity > old_session.last_activity
コード例 #8
0
def test_on_access_update_idle_session(user_id: UserId) -> None:
    now = datetime.now()
    session_timed_out = make_timed_out_session(user_id, now)
    old_session_infos = userdb._load_session_infos(user_id)
    old_session = old_session_infos[session_timed_out]

    userdb.on_access(user_id, session_timed_out, now)
    userdb.on_end_of_request(user_id, now)

    new_session_infos = userdb._load_session_infos(user_id)
    new_session = new_session_infos[session_timed_out]

    assert new_session.session_id == old_session.session_id
    assert new_session.started_at == old_session.started_at
    assert new_session.last_activity == int(now.timestamp())
    assert new_session.last_activity > old_session.last_activity
コード例 #9
0
def test_refresh_session_success(user_id: UserId) -> None:
    now = datetime.now()
    session_valid = make_valid_session(user_id, now)
    session_infos = userdb._load_session_infos(user_id)
    assert session_infos
    old_session = userdb.SessionInfo(**asdict(session_infos[session_valid]))

    now += timedelta(minutes=30)
    userdb._set_session(user_id, session_infos[session_valid])
    userdb._refresh_session(session_infos[session_valid], now)
    userdb.on_end_of_request(user_id, now)

    new_session_infos = userdb._load_session_infos(user_id)

    new_session = new_session_infos[session_valid]
    assert old_session.session_id == new_session.session_id
    assert new_session.last_activity > old_session.last_activity