diff --git a/libs/labelbox/src/labelbox/schema/issue.py b/libs/labelbox/src/labelbox/schema/issue.py index af5da716d..8e246364c 100644 --- a/libs/labelbox/src/labelbox/schema/issue.py +++ b/libs/labelbox/src/labelbox/schema/issue.py @@ -37,7 +37,8 @@ class IssueStatus(str, Enum): # --------------------------------------------------------------------------- _USER_FIELDS = ( - "id email nickname name picture isViewer isExternalUser createdAt updatedAt" + "id email nickname name picture isViewer isExternalUser " + "createdAt updatedAt lastLoginAt" ) _COMMENT_FIELDS = ( diff --git a/libs/labelbox/src/labelbox/schema/user.py b/libs/labelbox/src/labelbox/schema/user.py index 4a3b27e18..dc490a2d5 100644 --- a/libs/labelbox/src/labelbox/schema/user.py +++ b/libs/labelbox/src/labelbox/schema/user.py @@ -14,6 +14,9 @@ class User(DbObject): Attributes: updated_at (datetime) created_at (datetime) + last_login_at (datetime or None): When this user last established a + session (login or workspace switch) in this organization. ``None`` + until the user logs in after last-login tracking was enabled. email (str) name (str) nickname (str) @@ -28,6 +31,7 @@ class User(DbObject): updated_at = Field.DateTime("updated_at") created_at = Field.DateTime("created_at") + last_login_at = Field.DateTime("last_login_at") email = Field.String("email") name = Field.String("nickname") nickname = Field.String("name") diff --git a/libs/labelbox/tests/integration/test_user_and_org.py b/libs/labelbox/tests/integration/test_user_and_org.py index 7bb72051f..e30426412 100644 --- a/libs/labelbox/tests/integration/test_user_and_org.py +++ b/libs/labelbox/tests/integration/test_user_and_org.py @@ -5,6 +5,9 @@ def test_user(client): user = client.get_user() assert user.uid is not None assert user.organization() == client.get_organization() + assert hasattr(user, "last_login_at") + # Nullable: None until the user has logged in after tracking was enabled. + assert user.last_login_at is None or hasattr(user.last_login_at, "year") def test_organization(client): diff --git a/libs/labelbox/tests/unit/schema/test_issue.py b/libs/labelbox/tests/unit/schema/test_issue.py index 47cdc772f..6e2360b1d 100644 --- a/libs/labelbox/tests/unit/schema/test_issue.py +++ b/libs/labelbox/tests/unit/schema/test_issue.py @@ -23,6 +23,7 @@ "isExternalUser": False, "createdAt": _NOW, "updatedAt": _NOW, + "lastLoginAt": _NOW, } _COMMENT_RAW = { diff --git a/libs/labelbox/tests/unit/schema/test_project_issues.py b/libs/labelbox/tests/unit/schema/test_project_issues.py index 2d814a0ff..01a88abf0 100644 --- a/libs/labelbox/tests/unit/schema/test_project_issues.py +++ b/libs/labelbox/tests/unit/schema/test_project_issues.py @@ -31,6 +31,7 @@ "isExternalUser": False, "createdAt": _NOW, "updatedAt": _NOW, + "lastLoginAt": _NOW, } _ISSUE_RAW = {