in bugbot/user_activity.py [0:0]
def get_status_from_bz_user(self, user: dict) -> UserStatus:
"""Get the user status from a Bugzilla user object."""
is_new_user = user["creation_time"] > self.new_user_limit
seen_limit = self.seen_limit if not is_new_user else self.new_user_seen_limit
activity_limit = (
self.activity_limit if not is_new_user else self.new_user_activity_limit
)
if not user["can_login"]:
return UserStatus.DISABLED
if user["creation_time"] > seen_limit:
return UserStatus.ACTIVE
if user["last_seen_date"] is None or user["last_seen_date"] < seen_limit:
return UserStatus.ABSENT_NEW if is_new_user else UserStatus.ABSENT
if (
user["last_activity_time"] is None
or user["last_activity_time"] < activity_limit
):
return UserStatus.INACTIVE_NEW if is_new_user else UserStatus.INACTIVE
return UserStatus.ACTIVE