Added frappe --clear_all_sessions

This commit is contained in:
Anand Doshi 2014-05-14 18:09:27 +05:30
parent 96087e318b
commit bc14dee451
2 changed files with 17 additions and 2 deletions

View file

@ -232,6 +232,8 @@ def setup_utilities(parser):
help="Clear cache, doctype cache and defaults")
parser.add_argument("--reset_perms", default=False, action="store_true",
help="Reset permissions for all doctypes")
parser.add_argument("--clear_all_sessions", default=False, action="store_true",
help="Clear sessions of all users (logs them out)")
# scheduler
parser.add_argument("--run_scheduler", default=False, action="store_true",
@ -501,6 +503,14 @@ def clear_web():
frappe.website.render.clear_cache()
frappe.destroy()
@cmd
def clear_all_sessions():
import frappe.sessions
frappe.connect()
frappe.sessions.clear_all_sessions()
frappe.db.commit()
frappe.destroy()
@cmd
def build_sitemap():
from frappe.website import rebuild_config

View file

@ -71,13 +71,18 @@ def clear_sessions(user=None, keep_current=False):
if keep_current and frappe.session.sid==sid[0]:
continue
else:
frappe.cache().delete_value("session:" + sid[0])
frappe.db.sql("""delete from tabSessions where sid=%s""", (sid[0],))
delete_session(sid[0])
def delete_session(sid=None):
frappe.cache().delete_value("session:" + sid)
frappe.db.sql("""delete from tabSessions where sid=%s""", sid)
def clear_all_sessions():
"""This effectively logs out all users"""
frappe.only_for("Administrator")
for sid in frappe.db.sql_list("select sid from `tabSessions`"):
delete_session(sid)
def get():
"""get session boot info"""
from frappe.core.doctype.notification_count.notification_count import \