user.collections.tan
====================

.. py:module:: user.collections.tan


Attributes
----------

.. autoapisummary::

   user.collections.tan.ALPHABET


Classes
-------

.. autoapisummary::

   user.collections.tan._GeneratedTAN
   user.collections.tan.TANCollection


Functions
---------

.. autoapisummary::

   user.collections.tan.generate_tan


Module Contents
---------------

.. py:class:: _GeneratedTAN

   Bases: :py:obj:`onegov.user.models.TAN`


   A single use TAN for temporarily elevating access or to serve
   as a second authentication factor through e.g. a mobile phone
   number.



   .. py:attribute:: tan
      :type:  str


.. py:data:: ALPHABET
   :value: 'ABCDEFGHIJKLMNPQRSTUVWXYZ123456789'


.. py:function:: generate_tan() -> str

.. py:class:: TANCollection(session: sqlalchemy.orm.Session, scope: str, expires_after: datetime.timedelta = DEFAULT_EXPIRES_AFTER)

   Bases: :py:obj:`onegov.core.collection.GenericCollection`\ [\ :py:obj:`onegov.user.models.TAN`\ ]


   Abstract base class for generic types.

   A generic type is typically declared by inheriting from
   this class parameterized with one or more type variables.
   For example, a generic mapping type might be defined as::

     class Mapping(Generic[KT, VT]):
         def __getitem__(self, key: KT) -> VT:
             ...
         # Etc.

   This class can then be used as follows::

     def lookup_name(mapping: Mapping[KT, VT], key: KT, default: VT) -> VT:
         try:
             return mapping[key]
         except KeyError:
             return default


   .. py:attribute:: expires_after


   .. py:attribute:: scope


   .. py:property:: model_class
      :type: type[onegov.user.models.TAN]



   .. py:method:: query() -> sqlalchemy.orm.Query[onegov.user.models.TAN]


   .. py:method:: hash_tan(tan: str) -> str


   .. py:method:: add(*, client: str, created: datetime.datetime | None = None, **meta: Any) -> _GeneratedTAN


   .. py:method:: by_client(client: str) -> sqlalchemy.orm.Query[onegov.user.models.TAN]


   .. py:method:: by_tan(tan: str) -> onegov.user.models.TAN | None