"""Рольовий захист сторінок — викликати на початку кожної захищеної сторінки."""
from __future__ import annotations

import streamlit as st

LOGIN_PAGE = "pages/login.py"


def require_role(*allowed_roles: str) -> None:
    """Блокує сторінку якщо роль відсутня або не входить до allowed_roles.

    Приклад: require_role("Expert") / require_role("Admin", "Expert")
    """
    role = st.session_state.get("user_role")

    if role is None:
        st.warning("Будь ласка, увійдіть до системи")
        st.switch_page(LOGIN_PAGE)
        return  # st.switch_page кидає RerunException; return для тестових шляхів

    if role not in allowed_roles:
        st.error("Доступ заборонено")
        st.stop()
