From 6b3bf2246296db69e6b1b64701d232902f6f97b8 Mon Sep 17 00:00:00 2001 From: Saurabh Date: Thu, 10 Nov 2016 08:04:14 +0530 Subject: [PATCH 1/3] [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 From 68186a4943753952d94f9d379228ad7da62f9f2c Mon Sep 17 00:00:00 2001 From: Saurabh Date: Thu, 10 Nov 2016 14:38:52 +0530 Subject: [PATCH 2/3] [fix] check if user exists while setting last active date --- frappe/commands/site.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/frappe/commands/site.py b/frappe/commands/site.py index 2e76fdbdb4..c6939990af 100755 --- a/frappe/commands/site.py +++ b/frappe/commands/site.py @@ -460,10 +460,12 @@ def clear_limits(context, site, limits): if not limits: update_site_config('limits', 'None', validate=False) -@click.command('set-last-active') +@click.command('set-last-active-for-user') @click.option('--user', help="Setup last active date for user") @pass_context -def set_last_active(context, user=None): +def set_last_active_for_user(context, user=None): + "Set users last active date to current datetime" + from frappe.core.doctype.user.user import get_system_users from frappe.utils.user import set_last_active_to_now @@ -472,7 +474,11 @@ def set_last_active(context, user=None): with frappe.init_site(site): frappe.connect() if not user: - user = get_system_users(limit=1)[0] + user = get_system_users(limit=1) + if len(user) > 0: + user = user[0] + else: + return set_last_active_to_now(user) frappe.db.commit() @@ -499,5 +505,5 @@ commands = [ clear_limits, disable_user, _use, - set_last_active, + set_last_active_for_user, ] From 2adafeb95d5479eec486fabe6b0a072b69f9e7e1 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Tue, 22 Nov 2016 12:46:11 +0600 Subject: [PATCH 3/3] bumped to version 7.1.17 --- frappe/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frappe/__init__.py b/frappe/__init__.py index d24cae15d7..08ef75073b 100644 --- a/frappe/__init__.py +++ b/frappe/__init__.py @@ -13,7 +13,7 @@ import os, sys, importlib, inspect, json from .exceptions import * from .utils.jinja import get_jenv, get_template, render_template -__version__ = '7.1.16' +__version__ = '7.1.17' __title__ = "Frappe Framework" local = Local()