def create_pupil_independent(): """ Create pupil account not connected to a class """ email = request.json['email'] password = request.json['password'] firstname = request.json['firstname'] surname = request.json['surname'] # Check username and password etc. USER = mongo.load_by_arbitrary({'email':email}, 'users') if USER.exists(): USER = {} return_data = {'message':'Username already taken'} return json.dumps({'status':0, 'data':return_data}) else: # Create user mongo.create_user( username=email, firstname=firstname, surname=surname, password=password, display_name=None, is_teacher=False, email=email, confirmed=False) USER = mongo.load_by_arbitrary({'email':email}, 'users') session['user'] = USER.save_to_session() return_data = {} return json.dumps({'status':1, 'data':return_data})
def create_teacher_attempt(): email = request.json['email'] password = request.json['password'] firstname = request.json['firstname'] surname = request.json['surname'] display_name = request.json['display_name'] # Check email does not exist in database if mongo.load_by_arbitrary({'email':email}, 'users').exists(): return_data = {'message':'This email address is already registered.'} return json.dumps({'status':0, 'data':return_data}) # Create user mongo.create_user( username=email, firstname=firstname, surname=surname, display_name=display_name, password=password, is_teacher=True, email=email, confirmed=False) USER = mongo.load_by_username(email) session['user'] = USER.save_to_session() return_data = {} return json.dumps({'status':1, 'data':return_data})
def create_pupil_via_school(): """ Create pupil account given a valid entry code Add pupil to the class whilst creating their account """ username = request.json['username'] password = request.json['password'] entry_code = request.json['entry_code'] firstname = request.json['firstname'] surname = request.json['surname'] # Check username and password etc. USER = mongo.load_by_username(username) if USER.exists(): USER = {} return_data = {'message':'Username already taken'} return json.dumps({'status':0, 'data':return_data}) # Create user mongo.create_user( username=username, firstname=firstname, surname=surname, password=password, display_name=None, is_teacher=False, email=None, confirmed=False) USER = mongo.load_by_username(username) session['user'] = USER.save_to_session() # Add to class classroom = mongo.load_by_arbitrary({'entry_code':entry_code}, 'classrooms') mongo.pupil_joins_classroom(USER, classroom) # Create submission objects (should refactor all of this code a bit) pupil_id = USER.get_id() pupil_name = USER.get_display_name() for homework_id in classroom.get_homework_ids(): homework_object = mongo.load_by_arbitrary({'_id':homework_id}, 'homeworks') mongo.create_submission(pupil_id, pupil_name, homework_object) return_data = {} return json.dumps({'status':1, 'data':return_data})
def register(): if 'user' in session: flash(ALREADY_LOGGED_IN) return redirect(url_for('dashboard')) # Registration form submitted if request.method == 'POST': user = request.form['user'] pwd = request.form['pwd'] # Reigstration attempt result, passed = mongo.create_user(user, pwd) if result: #Success flash(passed) return redirect(url_for('login')) else: # Failure flash(passed) return redirect(url_for('register')) # Viewing registration page else: return render_template('register.html')