Source code for wtforglib.ugpw

"""Top-level module for wtforglib Library."""

import platform
from inspect import stack
from typing import Tuple, Union

from wtforglib.functions import WINDOZE, windoze_not_implemented

if platform.system() != WINDOZE:
    from grp import getgrall, getgrgid  # noqa: WPS433
    from pwd import getpwnam, getpwuid  # noqa: WPS433


[docs] def get_user_name(uid: int) -> str: """Returns the user name of the user identified by uid. Parameters ---------- uid : int User id Returns ------- str User name """ windoze_not_implemented(stack()[0][3]) return getpwuid(uid)[0]
[docs] def get_user_groups(user: Union[str, int]) -> Tuple[str, ...]: """Returns a tuple of groups user belongs to. Parameters ---------- user : Union[str, int] User name or uid Returns ------- Tuple[str,...] Groups user belongs to """ windoze_not_implemented(stack()[0][3]) if isinstance(user, int): user_nm = get_user_name(int(user)) else: user_nm = user groups = [gg.gr_name for gg in getgrall() if user_nm in gg.gr_mem] gid = getpwnam(user_nm).pw_gid groups.append(getgrgid(gid).gr_name) return tuple(groups)