def logout_and_cleanup(uid=None, next_url=None, logout=False): online_students = StudentRecord.online_students() if uid is None: user = auth.get_logged_in_user() auth.logout_user(user) else: user = auth.User.get(auth.User.id == uid) auth.logout_user(user, self_logout=False) user_record = StudentRecord(user.id) user_record.open_board = False user_record.online = False user_record.save() listening_clients = sse.listening_clients(user.id) # Turn off menu/tabs of all listeners and tell them to go home mesg = {} for cid in online_students: mesg[cid] = dict(cid=user.id) if cid in listening_clients or cid==user.id: mesg[cid].update(home_cid = cid) sse.listen_to(cid, cid) sse.notify(mesg, event="log-out") sse.close(user_record.id, logout) return redirect( next_url or url_for('index') )
def logout_and_cleanup(uid=None, next_url=None, logout=False): online_students = StudentRecord.online_students() if uid is None: user = auth.get_logged_in_user() auth.logout_user(user) else: user = auth.User.get(auth.User.id == uid) auth.logout_user(user, self_logout=False) user_record = StudentRecord(user.id) user_record.open_board = False user_record.online = False user_record.save() listening_clients = sse.listening_clients(user.id) # Turn off menu/tabs of all listeners and tell them to go home mesg = {} for cid in online_students: mesg[cid] = dict(cid=user.id) if cid in listening_clients or cid == user.id: mesg[cid].update(home_cid=cid) sse.listen_to(cid, cid) sse.notify(mesg, event="log-out") sse.close(user_record.id, logout) return redirect(next_url or url_for('index'))
def init_user(): logged_in_user = auth.get_logged_in_user() user_record = StudentRecord(logged_in_user.id) user_record.username = logged_in_user.username if logged_in_user.role == 'teacher': user_record.open_board = True user_record.is_teacher = True user_record.save()
def event_toggle_board(message, cid): user = StudentRecord(cid) if user.username: record = StudentRecord(user.id) record.open_board = not record.open_board record.save() all_records = StudentRecord.online_students() message_to_all = {} listening_clients = sse.listening_clients(cid) for c, r in all_records.items(): m = dict(cid=cid, board_status=record.open_board) if record.open_board == False and int(cid) != int(c): if not r.is_teacher and c in listening_clients: m.update(back_to_homeboard=True) sse.listen_to(c, c) message_to_all[c] = m sse.notify(message_to_all, event="toggle-board")