Development

This commit is contained in:
Matthew Grotke 2026-06-12 23:31:55 -04:00
parent 025adb9f15
commit 5b1f905ed0
7 changed files with 38 additions and 47 deletions

View file

@ -43,16 +43,6 @@ def _send_verification_email(to_address, code):
smtp.send_message(msg)
def _tz_to_offset_seconds(tz_str):
try:
from zoneinfo import ZoneInfo
from datetime import datetime
return int(datetime.now(ZoneInfo(tz_str)).utcoffset().total_seconds())
except Exception:
import settings as _s
return _s.get_host_utc_offset()
@bp.route('/action/accountcreate/form_create', methods=['POST'])
@auth.require_level('nothing')
def form_create():
@ -88,8 +78,7 @@ def form_create():
salt = bcrypt.gensalt()
hashed = bcrypt.hashpw(password.encode('utf-8'), salt).decode('utf-8')
code = f'{secrets.randbelow(1000000):06d}'
tz_offset = _tz_to_offset_seconds(tz)
code = f'{secrets.randbelow(1000000):06d}'
try:
_send_verification_email(account['email_address'], code)
@ -101,15 +90,15 @@ def form_create():
con = config_utils.open_accounts_db()
con.execute(
'''INSERT INTO clients
(cookie_unique_token, email, hashed_password, tz_offset_seconds, verification_code, code_sent_ts)
(cookie_unique_token, email, hashed_password, timezone, verification_code, code_sent_ts)
VALUES (?,?,?,?,?,?)
ON CONFLICT(cookie_unique_token) DO UPDATE SET
email=excluded.email,
hashed_password=excluded.hashed_password,
tz_offset_seconds=excluded.tz_offset_seconds,
timezone=excluded.timezone,
verification_code=excluded.verification_code,
code_sent_ts=excluded.code_sent_ts''',
(session.sid, account['email_address'].lower(), hashed, tz_offset, code, int(time.time()))
(session.sid, account['email_address'].lower(), hashed, tz, code, int(time.time()))
)
con.commit()
con.close()

View file

@ -67,7 +67,6 @@ def form_login():
session.clear()
session['account_id'] = account['account_id']
session['tz_offset_seconds'] = settings.get_host_utc_offset()
session['timezone'] = settings.get_host_timezone()
session['apply_changes_immediately'] = False
session.permanent = True

View file

@ -36,7 +36,7 @@ def email_verify():
con = config_utils.open_accounts_db()
con.execute(
'''UPDATE clients SET email=NULL, hashed_password=NULL,
tz_offset_seconds=NULL, verification_code=NULL, code_sent_ts=NULL
timezone=NULL, verification_code=NULL, code_sent_ts=NULL
WHERE cookie_unique_token=?''',
(token,)
)
@ -71,7 +71,7 @@ def email_verify():
)
con.execute(
'''UPDATE clients SET email=NULL, hashed_password=NULL,
tz_offset_seconds=NULL, verification_code=NULL, code_sent_ts=NULL
timezone=NULL, verification_code=NULL, code_sent_ts=NULL
WHERE cookie_unique_token=?''',
(token,)
)
@ -82,7 +82,7 @@ def email_verify():
return redirect(f'/{_PAGE}')
session['account_id'] = account['account_id']
session['tz_offset_seconds'] = int(client['tz_offset_seconds'])
session['timezone'] = str(client['timezone'] or '')
session['apply_changes_immediately'] = False
session.permanent = True

View file

@ -10,16 +10,6 @@ _PAGE = Path(__file__).parent.name
bp = Blueprint(_PAGE, __name__)
def _tz_to_offset_seconds(tz_str):
try:
from zoneinfo import ZoneInfo
from datetime import datetime
return int(datetime.now(ZoneInfo(tz_str)).utcoffset().total_seconds())
except Exception:
import settings as _s
return _s.get_host_utc_offset()
@bp.route('/action/preferences/accountdetails_save', methods=['POST'])
@auth.require_level('viewer')
def accountdetails_save():
@ -29,9 +19,7 @@ def accountdetails_save():
flash('Timezone is required.', 'error')
return redirect(f'/{_PAGE}')
tz_offset = _tz_to_offset_seconds(tz)
session['timezone'] = tz
session['tz_offset_seconds'] = tz_offset
flash('Preferences saved.', 'success')
return redirect(f'/{_PAGE}')