pyppms.user

Module representing user objects in PPMS.

 1"""Module representing user objects in PPMS."""
 2
 3from loguru import logger as log
 4
 5from .common import dict_from_single_response
 6
 7
 8class PpmsUser:
 9
10    """Object representing a user in PPMS.
11
12    Attributes
13    ----------
14    username : str
15        The user's account / login name in PPMS.
16    email : str
17        The user's email address.
18    fullname : str
19        The full name ("``<LASTNAME> <GIVENNAME>``") of the user in PPMS, falling back
20        to the ``username`` attribute if empty.
21    ppms_group : str
22        The user's PPMS group, may be empty ("").
23    active : bool
24        The ``active`` state of the user account in PPMS, by default True.
25    """
26
27    def __init__(self, response_text):
28        """Initialize the user object.
29
30        Parameters
31        ----------
32        response_text : str
33            The text returned by a PUMAP `getuser` call.
34        """
35        details = dict_from_single_response(response_text, graceful=True)
36
37        self.username = str(details["login"])
38        self.email = str(details["email"])
39        self.active = details["active"]
40        self.ppms_group = details["unitlogin"]
41        self._fullname = f'{details["lname"]} {details["fname"]}'
42
43        log.trace(
44            "PpmsUser initialized: username=[{}], email=[{}], ppms_group=[{}], "
45            "fullname=[{}], active=[{}]",
46            self.username,
47            self.email,
48            self.ppms_group,
49            self._fullname,
50            self.active,
51        )
52
53    @property
54    def fullname(self):
55        """The user's full name, falling back to the username if empty.
56
57        Returns
58        -------
59        str
60            The full name ("<LASTNAME> <GIVENNAME>") of the user in PPMS, or the
61            user accocunt name if the former one is empty.
62        """
63        if self._fullname == "":
64            return self.username
65
66        return self._fullname
67
68    def details(self):
69        """Generate a string with details on the user object."""
70        return (
71            f"username: {self.username}, "
72            f"email: {self.email}, "
73            f"fullname: {self.fullname}, "
74            f"ppms_group: {self.ppms_group}, "
75            f"active: {self.active}"
76        )
77
78    def __str__(self):
79        return str(self.username)
class PpmsUser:
 9class PpmsUser:
10
11    """Object representing a user in PPMS.
12
13    Attributes
14    ----------
15    username : str
16        The user's account / login name in PPMS.
17    email : str
18        The user's email address.
19    fullname : str
20        The full name ("``<LASTNAME> <GIVENNAME>``") of the user in PPMS, falling back
21        to the ``username`` attribute if empty.
22    ppms_group : str
23        The user's PPMS group, may be empty ("").
24    active : bool
25        The ``active`` state of the user account in PPMS, by default True.
26    """
27
28    def __init__(self, response_text):
29        """Initialize the user object.
30
31        Parameters
32        ----------
33        response_text : str
34            The text returned by a PUMAP `getuser` call.
35        """
36        details = dict_from_single_response(response_text, graceful=True)
37
38        self.username = str(details["login"])
39        self.email = str(details["email"])
40        self.active = details["active"]
41        self.ppms_group = details["unitlogin"]
42        self._fullname = f'{details["lname"]} {details["fname"]}'
43
44        log.trace(
45            "PpmsUser initialized: username=[{}], email=[{}], ppms_group=[{}], "
46            "fullname=[{}], active=[{}]",
47            self.username,
48            self.email,
49            self.ppms_group,
50            self._fullname,
51            self.active,
52        )
53
54    @property
55    def fullname(self):
56        """The user's full name, falling back to the username if empty.
57
58        Returns
59        -------
60        str
61            The full name ("<LASTNAME> <GIVENNAME>") of the user in PPMS, or the
62            user accocunt name if the former one is empty.
63        """
64        if self._fullname == "":
65            return self.username
66
67        return self._fullname
68
69    def details(self):
70        """Generate a string with details on the user object."""
71        return (
72            f"username: {self.username}, "
73            f"email: {self.email}, "
74            f"fullname: {self.fullname}, "
75            f"ppms_group: {self.ppms_group}, "
76            f"active: {self.active}"
77        )
78
79    def __str__(self):
80        return str(self.username)

Object representing a user in PPMS.

Attributes
  • username (str): The user's account / login name in PPMS.
  • email (str): The user's email address.
  • fullname (str): The full name ("<LASTNAME> <GIVENNAME>") of the user in PPMS, falling back to the username attribute if empty.
  • ppms_group (str): The user's PPMS group, may be empty ("").
  • active (bool): The active state of the user account in PPMS, by default True.
PpmsUser(response_text)
28    def __init__(self, response_text):
29        """Initialize the user object.
30
31        Parameters
32        ----------
33        response_text : str
34            The text returned by a PUMAP `getuser` call.
35        """
36        details = dict_from_single_response(response_text, graceful=True)
37
38        self.username = str(details["login"])
39        self.email = str(details["email"])
40        self.active = details["active"]
41        self.ppms_group = details["unitlogin"]
42        self._fullname = f'{details["lname"]} {details["fname"]}'
43
44        log.trace(
45            "PpmsUser initialized: username=[{}], email=[{}], ppms_group=[{}], "
46            "fullname=[{}], active=[{}]",
47            self.username,
48            self.email,
49            self.ppms_group,
50            self._fullname,
51            self.active,
52        )

Initialize the user object.

Parameters
  • response_text (str): The text returned by a PUMAP getuser call.
fullname

The user's full name, falling back to the username if empty.

Returns
  • str: The full name (" ") of the user in PPMS, or the user accocunt name if the former one is empty.
def details(self):
69    def details(self):
70        """Generate a string with details on the user object."""
71        return (
72            f"username: {self.username}, "
73            f"email: {self.email}, "
74            f"fullname: {self.fullname}, "
75            f"ppms_group: {self.ppms_group}, "
76            f"active: {self.active}"
77        )

Generate a string with details on the user object.