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 theusername
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.