Fix Bug 2308: Incorrect status update for user update

Change-Id: I54169c0975fdf15ee0e474b3351893d68591c20f
Signed-off-by: Adurti <adurti.v@tataelxsi.co.in>
diff --git a/osm_nbi/authconn_internal.py b/osm_nbi/authconn_internal.py
index 0f414b1..8b94a4c 100644
--- a/osm_nbi/authconn_internal.py
+++ b/osm_nbi/authconn_internal.py
@@ -550,6 +550,7 @@
         unlock = user_info.get("unlock")
         renew = user_info.get("renew")
         permission_id = user_info.get("system_admin_id")
+        now = time()
 
         user_data = self.db.get_one(
             self.users_collection, {BaseTopic.id_field("users", uid): uid}
@@ -591,7 +592,10 @@
                     if role_assigned.get("permissions")["admin"]:
                         if role_assigned.get("permissions")["default"]:
                             user_data["_admin"]["retry_count"] = 0
-                            user_data["_admin"]["user_status"] = "active"
+                            if now > user_data["_admin"]["account_expire_time"]:
+                                user_data["_admin"]["user_status"] = "expired"
+                            else:
+                                user_data["_admin"]["user_status"] = "active"
                             unlock_state = True
                             break
                 if not unlock_state:
@@ -634,7 +638,13 @@
                             )
                             user_data["_admin"]["modified"] = present
                             user_data["_admin"]["account_expire_time"] = account_expire
-                            user_data["_admin"]["user_status"] = "active"
+                            if (
+                                user_data["_admin"]["retry_count"]
+                                >= self.config["max_pwd_attempt"]
+                            ):
+                                user_data["_admin"]["user_status"] = "locked"
+                            else:
+                                user_data["_admin"]["user_status"] = "active"
                             renew_state = True
                             break
                 if not renew_state:
diff --git a/osm_nbi/tests/test_admin_topics.py b/osm_nbi/tests/test_admin_topics.py
index 6a44365..0aeed61 100755
--- a/osm_nbi/tests/test_admin_topics.py
+++ b/osm_nbi/tests/test_admin_topics.py
@@ -1289,7 +1289,7 @@
                     "salt": "560a5d51b1d64bb4b9cae0ccff3f1102",
                     "user_status": "locked",
                     "password_expire_time": 1667207552.2191815,
-                    "account_expire_time": 1674983552.2191815,
+                    "account_expire_time": now + 60,
                     "retry_count": 5,
                     "last_token_time": 1667207552.2191815,
                 },