From 6b3bf2246296db69e6b1b64701d232902f6f97b8 Mon Sep 17 00:00:00 2001 From: Saurabh Date: Thu, 10 Nov 2016 08:04:14 +0530 Subject: [PATCH] [enhance] set last active time to user --- frappe/commands/site.py | 18 ++++++++++++++++++ frappe/core/doctype/user/user.py | 8 ++++++-- frappe/utils/user.py | 4 ++++ 3 files changed, 28 insertions(+), 2 deletions(-) diff --git a/frappe/commands/site.py b/frappe/commands/site.py index d2e9220630..2e76fdbdb4 100755 --- a/frappe/commands/site.py +++ b/frappe/commands/site.py @@ -460,6 +460,23 @@ def clear_limits(context, site, limits): if not limits: update_site_config('limits', 'None', validate=False) +@click.command('set-last-active') +@click.option('--user', help="Setup last active date for user") +@pass_context +def set_last_active(context, user=None): + from frappe.core.doctype.user.user import get_system_users + from frappe.utils.user import set_last_active_to_now + + site = get_site(context) + + with frappe.init_site(site): + frappe.connect() + if not user: + user = get_system_users(limit=1)[0] + + set_last_active_to_now(user) + frappe.db.commit() + commands = [ add_system_manager, @@ -482,4 +499,5 @@ commands = [ clear_limits, disable_user, _use, + set_last_active, ] diff --git a/frappe/core/doctype/user/user.py b/frappe/core/doctype/user/user.py index 5252a98390..a4a7ea0d21 100644 --- a/frappe/core/doctype/user/user.py +++ b/frappe/core/doctype/user/user.py @@ -652,17 +652,21 @@ def get_total_users(): where enabled=1 and user_type="System User" and name not in ({})'''.format(", ".join(["%s"]*len(STANDARD_USERS))), STANDARD_USERS)[0][0] -def get_system_users(exclude_users=None): +def get_system_users(exclude_users=None, limit=None): if not exclude_users: exclude_users = [] elif not isinstance(exclude_users, (list, tuple)): exclude_users = [exclude_users] + + limit_cond = '' + if limit: + limit_cond = 'limit {0}'.format(limit) exclude_users += list(STANDARD_USERS) system_users = frappe.db.sql_list("""select name from `tabUser` where enabled=1 and user_type != 'Website User' - and name not in ({})""".format(", ".join(["%s"]*len(exclude_users))), + and name not in ({}) {}""".format(", ".join(["%s"]*len(exclude_users)), limit_cond), exclude_users) return system_users diff --git a/frappe/utils/user.py b/frappe/utils/user.py index 7c2ee6dc3f..940546d9aa 100755 --- a/frappe/utils/user.py +++ b/frappe/utils/user.py @@ -305,3 +305,7 @@ def get_users(): }) return users + +def set_last_active_to_now(user): + from frappe.utils import now_datetime + frappe.db.set_value("User", user, "last_active", now_datetime()) \ No newline at end of file