def validate_email_address(form, field): if field.data == field.object_data: return if User.exists(email_address=field.data): raise ValidationError( l_('A pilot with this email address exists already.'))
def check_email(): json = request.get_json() if not json: return jsonify(error='invalid-request'), 400 email = json.get('email', '') result = 'available' if g.current_user and email == g.current_user.email_address: result = 'self' elif User.exists(email_address=email): result = 'unavailable' return jsonify(result=result)
def check_email(): current_user = User.get(request.user_id) if request.user_id else None json = request.get_json() if not json: return jsonify(error="invalid-request"), 400 email = json.get("email", "") result = "available" if current_user and email == current_user.email_address: result = "self" elif User.exists(email_address=email): result = "unavailable" return jsonify(result=result)
def check_email(): current_user = User.get(request.user_id) if request.user_id else None json = request.get_json() if not json: return jsonify(error="invalid-request"), 400 email = json.get("email", "") result = "available" if current_user and email == current_user.email_address: result = "self" elif User.exists(email_address=email): result = "unavailable" return jsonify(result=result)
def check_email(): current_user = User.get(request.user_id) if request.user_id else None json = request.get_json() if not json: return jsonify(error='invalid-request'), 400 email = json.get('email', '') result = 'available' if current_user and email == current_user.email_address: result = 'self' elif User.exists(email_address=email): result = 'unavailable' return jsonify(result=result)
if not current_user: return jsonify(error='invalid-token'), 401 json = request.get_json() if json is None: return jsonify(error='invalid-request'), 400 try: data = CurrentUserSchema(partial=True).load(json).data except ValidationError, e: return jsonify(error='validation-failed', fields=e.messages), 422 if 'email_address' in data: email = data.get('email_address') if email != current_user.email_address and User.exists( email_address=email): return jsonify(error='email-exists-already'), 422 current_user.email_address = email if 'first_name' in data: current_user.first_name = data.get('first_name') if 'last_name' in data: current_user.last_name = data.get('last_name') if 'distance_unit' in data: current_user.distance_unit = data.get('distance_unit') if 'speed_unit' in data: current_user.speed_unit = data.get('speed_unit')
def update(flight_id): flight = get_requested_record(Flight, flight_id) current_user = User.get(request.user_id) if not flight.is_writable(current_user): return jsonify(), 403 json = request.get_json() if json is None: return jsonify(error='invalid-request'), 400 try: data = FlightSchema(partial=True).load(json).data except ValidationError as e: return jsonify(error='validation-failed', fields=e.messages), 422 if 'pilot_id' in data: pilot_id = data['pilot_id'] if pilot_id is not None: if not User.exists(id=pilot_id): return jsonify(error='unknown-pilot'), 422 pilot_club_id = User.get(pilot_id).club_id if pilot_club_id != current_user.club_id or ( pilot_club_id is None and pilot_id != current_user.id): return jsonify(error='pilot-disallowed'), 422 if flight.pilot_id != pilot_id: flight.pilot_id = pilot_id # pilot_name is irrelevant, if pilot_id is given flight.pilot_name = None # update club if pilot changed flight.club_id = pilot_club_id else: flight.pilot_id = None if 'pilot_name' in data: flight.pilot_name = data['pilot_name'] if 'co_pilot_id' in data: co_pilot_id = data['co_pilot_id'] if co_pilot_id is not None: if not User.exists(id=co_pilot_id): return jsonify(error='unknown-copilot'), 422 co_pilot_club_id = User.get(co_pilot_id).club_id if co_pilot_club_id != current_user.club_id \ or (co_pilot_club_id is None and co_pilot_id != current_user.id): return jsonify(error='co-pilot-disallowed'), 422 flight.co_pilot_id = co_pilot_id # co_pilot_name is irrelevant, if co_pilot_id is given flight.co_pilot_name = None else: flight.co_pilot_id = None if 'co_pilot_name' in data: flight.co_pilot_name = data['co_pilot_name'] if flight.co_pilot_id is not None and flight.co_pilot_id == flight.pilot_id: return jsonify(error='copilot-equals-pilot'), 422 if 'model_id' in data: model_id = data['model_id'] if model_id is not None and not AircraftModel.exists(id=model_id): return jsonify(error='unknown-aircraft-model'), 422 flight.model_id = model_id if 'registration' in data: flight.registration = data['registration'] if 'competition_id' in data: flight.competition_id = data['competition_id'] if 'privacy_level' in data: flight.privacy_level = data['privacy_level'] try: tasks.analyse_flight.delay(flight.id) tasks.find_meetings.delay(flight.id) except ConnectionError: current_app.logger.info('Cannot connect to Redis server') flight.time_modified = datetime.utcnow() db.session.commit() return jsonify()
def validate_email_address(form, field): if User.exists(email_address=field.data): raise ValidationError(l_('A pilot with this email address exists already.'))
def validate_email_address(form, field): if not User.exists(email_address=field.data): raise ValidationError(l_('There is no pilot with this email address.'))
def update(flight_id): flight = get_requested_record(Flight, flight_id) current_user = User.get(request.user_id) if not flight.is_writable(current_user): return jsonify(), 403 json = request.get_json() if json is None: return jsonify(error="invalid-request"), 400 try: data = FlightSchema(partial=True).load(json).data except ValidationError as e: return jsonify(error="validation-failed", fields=e.messages), 422 if "pilot_id" in data: pilot_id = data["pilot_id"] if pilot_id is not None: if not User.exists(id=pilot_id): return jsonify(error="unknown-pilot"), 422 pilot_club_id = User.get(pilot_id).club_id if pilot_club_id != current_user.club_id or ( pilot_club_id is None and pilot_id != current_user.id ): return jsonify(error="pilot-disallowed"), 422 if flight.pilot_id != pilot_id: flight.pilot_id = pilot_id # pilot_name is irrelevant, if pilot_id is given flight.pilot_name = None # update club if pilot changed flight.club_id = pilot_club_id else: flight.pilot_id = None if "pilot_name" in data: flight.pilot_name = data["pilot_name"] if "co_pilot_id" in data: co_pilot_id = data["co_pilot_id"] if co_pilot_id is not None: if not User.exists(id=co_pilot_id): return jsonify(error="unknown-copilot"), 422 co_pilot_club_id = User.get(co_pilot_id).club_id if co_pilot_club_id != current_user.club_id or ( co_pilot_club_id is None and co_pilot_id != current_user.id ): return jsonify(error="co-pilot-disallowed"), 422 flight.co_pilot_id = co_pilot_id # co_pilot_name is irrelevant, if co_pilot_id is given flight.co_pilot_name = None else: flight.co_pilot_id = None if "co_pilot_name" in data: flight.co_pilot_name = data["co_pilot_name"] if flight.co_pilot_id is not None and flight.co_pilot_id == flight.pilot_id: return jsonify(error="copilot-equals-pilot"), 422 if "model_id" in data: model_id = data["model_id"] if model_id is not None and not AircraftModel.exists(id=model_id): return jsonify(error="unknown-aircraft-model"), 422 flight.model_id = model_id if "registration" in data: flight.registration = data["registration"] if "competition_id" in data: flight.competition_id = data["competition_id"] if "privacy_level" in data: flight.privacy_level = data["privacy_level"] try: tasks.analyse_flight.delay(flight.id) tasks.find_meetings.delay(flight.id) except ConnectionError: current_app.logger.info("Cannot connect to Redis server") flight.time_modified = datetime.utcnow() db.session.commit() return jsonify()
json = request.get_json() if json is None: return jsonify(error='invalid-request'), 400 try: data = FlightSchema(partial=True).load(json).data except ValidationError, e: return jsonify(error='validation-failed', fields=e.messages), 422 if 'pilot_id' in data: pilot_id = data['pilot_id'] if pilot_id is not None: if not User.exists(id=pilot_id): return jsonify(error='unknown-pilot'), 422 pilot_club_id = User.get(pilot_id).club_id if pilot_club_id != current_user.club_id or ( pilot_club_id is None and pilot_id != current_user.id): return jsonify(error='pilot-disallowed'), 422 if flight.pilot_id != pilot_id: flight.pilot_id = pilot_id # pilot_name is irrelevant, if pilot_id is given flight.pilot_name = None # update club if pilot changed flight.club_id = pilot_club_id
def update(): current_user = User.get(request.user_id) if not current_user: return jsonify(error='invalid-token'), 401 json = request.get_json() if json is None: return jsonify(error='invalid-request'), 400 try: data = CurrentUserSchema(partial=True).load(json).data except ValidationError as e: return jsonify(error='validation-failed', fields=e.messages), 422 if 'email_address' in data: email = data.get('email_address') if email != current_user.email_address and User.exists( email_address=email): return jsonify(error='email-exists-already'), 422 current_user.email_address = email if 'first_name' in data: current_user.first_name = data.get('first_name') if 'last_name' in data: current_user.last_name = data.get('last_name') if 'distance_unit' in data: current_user.distance_unit = data.get('distance_unit') if 'speed_unit' in data: current_user.speed_unit = data.get('speed_unit') if 'lift_unit' in data: current_user.lift_unit = data.get('lift_unit') if 'altitude_unit' in data: current_user.altitude_unit = data.get('altitude_unit') if 'tracking_callsign' in data: current_user.tracking_callsign = data.get('tracking_callsign') if 'tracking_delay' in data: current_user.tracking_delay = data.get('tracking_delay') if 'password' in data: if 'currentPassword' not in data: return jsonify(error='current-password-missing'), 422 if not current_user.validate_password(data['currentPassword']): return jsonify(error='wrong-password'), 403 current_user.password = data['password'] current_user.recover_key = None if 'club_id' in data and data['club_id'] != current_user.club_id: club_id = data['club_id'] if club_id is not None and not Club.exists(id=club_id): return jsonify(error='unknown-club'), 422 current_user.club_id = club_id create_club_join_event(club_id, current_user) # assign the user's new club to all of his flights that have # no club yet flights = Flight.query().join(IGCFile) flights = flights.filter( and_( Flight.club_id == None, or_(Flight.pilot_id == current_user.id, IGCFile.owner_id == current_user.id))) for flight in flights: flight.club_id = club_id db.session.commit() return jsonify()
json = request.get_json() if json is None: return jsonify(error="invalid-request"), 400 try: data = FlightSchema(partial=True).load(json).data except ValidationError, e: return jsonify(error="validation-failed", fields=e.messages), 422 if "pilot_id" in data: pilot_id = data["pilot_id"] if pilot_id is not None: if not User.exists(id=pilot_id): return jsonify(error="unknown-pilot"), 422 pilot_club_id = User.get(pilot_id).club_id if pilot_club_id != current_user.club_id or (pilot_club_id is None and pilot_id != current_user.id): return jsonify(error="pilot-disallowed"), 422 if flight.pilot_id != pilot_id: flight.pilot_id = pilot_id # pilot_name is irrelevant, if pilot_id is given flight.pilot_name = None # update club if pilot changed flight.club_id = pilot_club_id else:
@settings_blueprint.route('/', methods=['POST']) def update(): json = request.get_json() if json is None: return jsonify(error='invalid-request'), 400 try: data = CurrentUserSchema(partial=True).load(json).data except ValidationError, e: return jsonify(error='validation-failed', fields=e.messages), 422 if 'email_address' in data: email = data.get('email_address') if email != g.user.email_address and User.exists(email_address=email): return jsonify(error='email-exists-already'), 422 g.user.email_address = email if 'first_name' in data: g.user.first_name = data.get('first_name') if 'last_name' in data: g.user.last_name = data.get('last_name') if 'distance_unit' in data: g.user.distance_unit = data.get('distance_unit') if 'speed_unit' in data: g.user.speed_unit = data.get('speed_unit')
@settings_blueprint.route('/', methods=['POST']) def update(): json = request.get_json() if json is None: return jsonify(error='invalid-request'), 400 try: data = CurrentUserSchema(partial=True).load(json).data except ValidationError, e: return jsonify(error='validation-failed', fields=e.messages), 422 if 'email_address' in data: email = data.get('email_address') if email != g.user.email_address and User.exists(email_address=email): return jsonify(error='email-exists-already'), 422 g.user.email_address = email if 'first_name' in data: g.user.first_name = data.get('first_name') if 'last_name' in data: g.user.last_name = data.get('last_name') if 'distance_unit' in data: g.user.distance_unit = data.get('distance_unit') if 'speed_unit' in data: g.user.speed_unit = data.get('speed_unit')
if not current_user: return jsonify(error='invalid-token'), 401 json = request.get_json() if json is None: return jsonify(error='invalid-request'), 400 try: data = CurrentUserSchema(partial=True).load(json).data except ValidationError, e: return jsonify(error='validation-failed', fields=e.messages), 422 if 'email_address' in data: email = data.get('email_address') if email != current_user.email_address and User.exists(email_address=email): return jsonify(error='email-exists-already'), 422 current_user.email_address = email if 'first_name' in data: current_user.first_name = data.get('first_name') if 'last_name' in data: current_user.last_name = data.get('last_name') if 'distance_unit' in data: current_user.distance_unit = data.get('distance_unit') if 'speed_unit' in data: current_user.speed_unit = data.get('speed_unit')
if not g.flight.is_writable(g.current_user): return jsonify(), 403 json = request.get_json() if json is None: return jsonify(error='invalid-request'), 400 try: data = FlightSchema(partial=True).load(json).data except ValidationError, e: return jsonify(error='validation-failed', fields=e.messages), 422 if 'pilot_id' in data: pilot_id = data['pilot_id'] if pilot_id is not None and not User.exists(id=pilot_id): return jsonify(error='unknown-pilot'), 422 if g.flight.pilot_id != pilot_id: g.flight.pilot_id = pilot_id # update club if pilot changed if pilot_id is not None: g.flight.club_id = User.get(pilot_id).club_id if 'pilot_name' in data: g.flight.pilot_name = data['pilot_name'] if 'co_pilot_id' in data: co_pilot_id = data['co_pilot_id']
def update(): current_user = User.get(request.user_id) if not current_user: return jsonify(error="invalid-token"), 401 json = request.get_json() if json is None: return jsonify(error="invalid-request"), 400 try: data = CurrentUserSchema(partial=True).load(json).data except ValidationError as e: return jsonify(error="validation-failed", fields=e.messages), 422 if "email_address" in data: email = data.get("email_address") if email != current_user.email_address and User.exists( email_address=email): return jsonify(error="email-exists-already"), 422 current_user.email_address = email if "first_name" in data: current_user.first_name = data.get("first_name") if "last_name" in data: current_user.last_name = data.get("last_name") if "distance_unit" in data: current_user.distance_unit = data.get("distance_unit") if "speed_unit" in data: current_user.speed_unit = data.get("speed_unit") if "lift_unit" in data: current_user.lift_unit = data.get("lift_unit") if "altitude_unit" in data: current_user.altitude_unit = data.get("altitude_unit") if "tracking_callsign" in data: current_user.tracking_callsign = data.get("tracking_callsign") if "tracking_delay" in data: current_user.tracking_delay = data.get("tracking_delay") if "password" in data: if "currentPassword" not in data: return jsonify(error="current-password-missing"), 422 if not current_user.validate_password(data["currentPassword"]): return jsonify(error="wrong-password"), 403 current_user.password = data["password"] current_user.recover_key = None if "club_id" in data and data["club_id"] != current_user.club_id: club_id = data["club_id"] if club_id is not None and not Club.exists(id=club_id): return jsonify(error="unknown-club"), 422 current_user.club_id = club_id create_club_join_event(club_id, current_user) # assign the user's new club to all of his flights that have # no club yet flights = Flight.query().join(IGCFile) flights = flights.filter( and_( Flight.club_id == None, or_( Flight.pilot_id == current_user.id, IGCFile.owner_id == current_user.id, ), )) for flight in flights: flight.club_id = club_id db.session.commit() return jsonify()