def main():
user = users.get_current_user()
if not user:
return flask.redirect(users.create_login_url(flask.request.path))
if flask.request.method == 'POST':
util.csrf_protect()
tab_ids = flask.request.values.getlist('tab_id')
keys = [ndb.Key(Session, tab_id) for tab_id in tab_ids]
if 'delete' in flask.request.values:
if not all(s and s.user_id == user.user_id() for s in ndb.get_multi(keys)):
return 'Not authorized to delete some sessions', 403
ndb.delete_multi(keys)
elif 'share' in flask.request.values:
for key in keys:
session = key.get()
if session and session.user_id == user.user_id():
session.shared = True
session.put()
else:
return 'Incorrect POST name', 400
date = flask.request.values.get('date', datetime.now().strftime('%Y-%m-%d'))
cur_day = datetime.strptime(date, '%Y-%m-%d')
next_day = cur_day + timedelta(days=1)
sessions = (Session.query(Session.user_id == user.user_id(),
Session.start_ts >= cur_day, Session.start_ts < next_day)
.order(-Session.start_ts))
num_shared = Session.query(Session.user_id == user.user_id(), Session.shared == True).count()
return flask.render_template('main.html',
user=user,
date=date,
year=datetime.now().year,
logout_url=users.create_logout_url('/'),
sessions=sessions,
num_shared=num_shared)
评论列表
文章目录