Bladeren bron

pass user to validate_hour

version-14
Nabin Hait 10 jaren geleden
bovenliggende
commit
c187b18056
2 gewijzigde bestanden met toevoegingen van 16 en 11 verwijderingen
  1. +1
    -1
      frappe/auth.py
  2. +15
    -10
      frappe/utils/data.py

+ 1
- 1
frappe/auth.py Bestand weergeven

@@ -192,7 +192,7 @@ class LoginManager:
return

from frappe.utils import now_datetime
current_hour = int(now_datetime().strftime('%H'))
current_hour = int(now_datetime(user=frappe.form_dict.get('usr')).strftime('%H'))

if login_before and current_hour > login_before:
frappe.throw(_("Login not allowed at this time"), frappe.AuthenticationError)


+ 15
- 10
frappe/utils/data.py Bestand weergeven

@@ -104,13 +104,15 @@ def time_diff_in_seconds(string_ed_date, string_st_date):
def time_diff_in_hours(string_ed_date, string_st_date):
return round(float(time_diff(string_ed_date, string_st_date).total_seconds()) / 3600, 6)

def now_datetime():
return convert_utc_to_user_timezone(datetime.datetime.utcnow())
def now_datetime(user=None):
return convert_utc_to_user_timezone(datetime.datetime.utcnow(), user=None)

def _get_user_time_zone():
def _get_user_time_zone(user=None):
user_time_zone = None
if frappe.session.user:
user_time_zone = frappe.db.get_value("User", frappe.session.user, "time_zone")
if not user:
user = frappe.session and frappe.session.user
if user:
user_time_zone = frappe.db.get_value("User", user, "time_zone")

if not user_time_zone:
user_time_zone = (frappe.db.get_single_value("System Settings", "time_zone")
@@ -118,17 +120,20 @@ def _get_user_time_zone():

return user_time_zone

def get_user_time_zone():
def get_user_time_zone(user=None):
if not user:
user = frappe.session and frappe.session.user

if frappe.local.flags.in_test:
return _get_user_time_zone()
return _get_user_time_zone(user)

return frappe.cache().hget("time_zone", frappe.session.user, _get_user_time_zone)
return frappe.cache().hget("time_zone", user, _get_user_time_zone)

def convert_utc_to_user_timezone(utc_timestamp):
def convert_utc_to_user_timezone(utc_timestamp, user=None):
from pytz import timezone, UnknownTimeZoneError
utcnow = timezone('UTC').localize(utc_timestamp)
try:
return utcnow.astimezone(timezone(get_user_time_zone()))
return utcnow.astimezone(timezone(get_user_time_zone(user)))
except UnknownTimeZoneError:
return utcnow



Laden…
Annuleren
Opslaan