Skip to content

catalog_user_validator

Validator for the user field of a catalog entry.

CatalogUserValidator

Bases: CrossValidator

Implementation of CrossValidator to validate an catalog entry against the user store.

Source code in mlte/store/validators/cross_validators/catalog_user_validator.py
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
class CatalogUserValidator(CrossValidator):
    """Implementation of CrossValidator to validate an catalog entry against the user store."""

    def __init__(
        self,
        user_store: UserStore,
    ):
        """
        Initialize a CatalogUserValidator instance.
        :param user_store: User store to use for validation.
        """
        self.user_store = user_store

    def validate(self, new_entry: CatalogEntry) -> None:
        with ManagedUserSession(self.user_store.session()) as session:
            if new_entry.header.creator is not None:
                try:
                    session.user_mapper.read(new_entry.header.creator)
                except ErrorNotFound:
                    raise RuntimeError(
                        f"Catalog creator validation failure. Creator user: {new_entry.header.creator} not found. For catalog entry {new_entry.header.identifier}."
                    )

            if new_entry.header.updater is not None:
                try:
                    session.user_mapper.read(new_entry.header.updater)
                except ErrorNotFound:
                    raise RuntimeError(
                        f"Catalog creator validation failure. Updater user: {new_entry.header.updater} not found. For catalog entry {new_entry.header.identifier}."
                    )

__init__(user_store)

Initialize a CatalogUserValidator instance.

Parameters:

Name Type Description Default
user_store UserStore

User store to use for validation.

required
Source code in mlte/store/validators/cross_validators/catalog_user_validator.py
13
14
15
16
17
18
19
20
21
def __init__(
    self,
    user_store: UserStore,
):
    """
    Initialize a CatalogUserValidator instance.
    :param user_store: User store to use for validation.
    """
    self.user_store = user_store