def get(self): user = users.get_current_user() authz = Authorize() if not authz.authorize(): self.error(403) return class_id = self.request.get('class_id') class_key = ndb.Key('Class', int(class_id)) the_class = class_key.get() the_class.id = the_class.key.id() date_ordinal = self.request.get('date') errmsg = self.request.get('errmsg') today_as_ordinal = self.today_as_ordinal(the_class.timezone) if not date_ordinal: date_ordinal = today_as_ordinal if int(date_ordinal) == today_as_ordinal: today = True else: today = False date_struct = datetime.date.fromordinal(int(date_ordinal)) attendance_key = ndb.Key('Class', int(class_id), 'Attendance', int(date_ordinal)) attendance = attendance_key.get() students = ndb.get_multi(the_class.enrolled) students.sort(key= lambda x: x.first_name, reverse=False) for student in students: student.present = False student.hours = the_class.default_hours student.id = student.key.id() if attendance: for student_present in attendance.attending: if student_present.student == student.key: student.present = True student.hours = student_present.hours break school = namespace_manager.google_apps_namespace() if not school: school = 'Test school' template_values = { 'students': students, 'date_ordinal': date_ordinal, 'today': today, 'class': the_class, 'school': school, 'date_struct': date_struct, 'username': authz.get_name(), 'errmsg': errmsg } path = os.path.join(os.path.dirname(__file__), 'templates/students.html') self.response.out.write(template.render(path, template_values))
def get(self): authz = Authorize() if not authz.authorize(): self.error(403) return query = Class.query() # Max classes that can be handled is 50 per school classes = query.fetch(50) for the_class in classes: the_class.id = the_class.key.id() school = namespace_manager.google_apps_namespace() if not school: school = 'Test school' template_values = { 'classes': classes, 'school': school, 'username': authz.get_name(), 'logout': users.create_logout_url("/") } path = os.path.join(os.path.dirname(__file__), 'templates/classes.html') self.response.out.write(template.render(path, template_values))
def get(self): user = users.get_current_user() authz = Authorize() if not authz.authorize(): self.error(403) return self.response.headers['Content-Type'] = 'text/plain' class_id = self.request.get('class_id') class_key = ndb.Key('Class', int(class_id)) the_class = class_key.get() enrolled = the_class.enrolled all_students = {} self.response.out.write(',') for student_key in enrolled: if student_key not in all_students: the_student = student_key.get() all_students[student_key] = the_student self.response.out.write('%s %s,' % (the_student.first_name, the_student.last_name)) self.response.out.write('\n') qry = Attendance.query(ancestor=class_key).order(Attendance.key) attendance = qry.fetch(200) for the_attendance in attendance: the_attendance_key = the_attendance.key date_ordinal = the_attendance_key.id() date_struct = datetime.date.fromordinal(int(date_ordinal)) date_str = date_struct.isoformat() self.response.out.write('%s,' % (date_str)) students = the_attendance.attending attending_students = {} for student in students: student_key = student.student attending_students[student_key] = student.hours for the_enrolled in enrolled: if the_enrolled in attending_students: output = attending_students[the_enrolled] if not output: output = 1 self.response.out.write('%s,' % (output)) else: self.response.out.write(',') self.response.out.write('\n')
def get_all_details(): try: if request.method == "POST": jwt_token = request.headers["token"] driver_number = request.headers["number"] stat, tok = Authorize.verify_jwt(driver_number, jwt_token) if stat == 0: raise ValueError("Not authorized") logging.debug("incoming POST request: " + str(request.form)) response = Details.get_all(driver_number) logging.debug("getalldetails returned:\n" + str(response)) return response except RuntimeError as e: logging.critical("failure in v1/getalldetails with error: " + str(e)) return default_error
def update_vehicle(): try: if request.method == "POST": jwt_token = request.headers["token"] driver_number = request.headers["number"] stat, tok = Authorize.verify_jwt(driver_number, jwt_token) if stat == 0: raise ValueError("Not authorized") logging.debug("incoming POST request: " + str(request.form)) driver_vehicle = request.form["vehicle"] response = Vehicle.update_vehicle(driver_number, driver_vehicle) logging.debug("updateVehicle returned:\n" + str(response)) return response except RuntimeError as e: logging.critical("failure in v1/updateVehicle with error: " + str(e)) return default_error
def get_distance(): try: if request.method == "GET": jwt_token = request.headers["token"] stat, tok = Authorize.verify_jwt(jwt_token) if stat == 0: raise ValueError("Not authorized") if len(tok) > 0: logging.critical( "failure in v1/bookingPath with token expired: ") return token_expiry_error user_number = request.args["number"] response = Book.path(user_number) response = json.dumps(response) response = make_response(response) return response except RuntimeError as e: logging.critical("failure in v1/bookingPath with error: " + str(e)) return default_error
def reject(): try: jwt_token = request.headers["token"] stat, tok = Authorize.verify_jwt(jwt_token) if stat == 0: raise ValueError("Not authorized") if request.method == "POST": driver_number = request.args["number"] response = Book.reject(driver_number) if len(tok) > 0: response["data"]["tokenStatus"] = "new" response["data"]["token"] = tok else: response["data"]["tokenStatus"] = "same" response["data"]["token"] = jwt_token response = json.dumps(response) return response except RuntimeError as e: logging.critical("failure in v1/reject with error: " + str(e)) return default_error
def cancel(): try: if request.method == "POST": jwt_token = request.headers["token"] stat, tok = Authorize.verify_jwt(jwt_token) if stat == 0: raise ValueError("Not authorized") if len(tok) > 0: logging.critical("failure in v1/cancel with token expired: ") return token_expiry_error user_number = request.form["number"] booking_id = request.form["bookingId"] response = Book.cancel_booking(user_number, booking_id) response = json.dumps(response) with app.app_context(): response = make_response(response) return response except RuntimeError as e: logging.critical("failure in v1/cancel with error: " + str(e)) return default_error
def book(): try: if request.method == "POST": jwt_token = request.headers["token"] stat, tok = Authorize.verify_jwt(jwt_token) if stat == 0: raise ValueError("Not authorized") if len(tok) > 0: logging.critical("failure in v1/book with token expired: ") return token_expiry_error if "fromLatitude" in request.form: user_number = request.form["number"] from_latitude = request.form["fromLatitude"] from_longitude = request.form["fromLongitude"] to_latitude = request.form["toLatitude"] to_longitude = request.form["toLongitude"] seats = request.form["seats"] response, s = Book.find_drivers(user_number, from_longitude, from_latitude, to_longitude, to_latitude, seats) response = json.dumps(response) if s == 1: t = threading.Thread(name="create booking", target=Book.create_booking, args=( user_number, from_longitude, from_latitude, to_longitude, to_latitude, seats, )) t.setDaemon(True) t.start() with app.app_context(): response = make_response(response) return response except RuntimeError as e: logging.critical("failure in v1/book with error: " + str(e)) return default_error
def __init__(self, league_id, year, username=None, password=None, swid=None, espn_s2=None): self.league_id = league_id self.year = year if username and password and not (swid or espn_s2): client = Authorize(username, password) self.swid = client.swid self.espn_s2 = client.espn_s2 else: self.username = username self.password = password self.swid = swid self.espn_s2 = espn_s2 buildLeague(self) return
def start_trip(): try: jwt_token = request.headers["token"] stat, tok = Authorize.verify_jwt(jwt_token) if stat == 0: raise ValueError("Not authorized") if request.method == "POST": user_number = request.args["userNumber"] booking_id = request.args["bookingId"] response = Book.start_trip(user_number, booking_id) if len(tok) > 0: response["data"]["tokenStatus"] = "new" response["data"]["token"] = tok else: response["data"]["tokenStatus"] = "same" response["data"]["token"] = jwt_token response = json.dumps(response) return response except RuntimeError as e: logging.critical("failure in v1/startTrip with error: " + str(e)) return default_error
import predict import predict_info import precisao from hasher import digest, hash_all from authorize import Authorize app = Flask(__name__) app.config['SECRET_KEY'] = os.urandom(12) app.config['JWT_BLACKLIST_ENABLED'] = True app.config['JWT_BLACKLIST_STORE'] = simplekv.memory.DictStore() app.config['JWT_BLACKLIST_TOKEN_CHECKS'] = 'all' app.config['JWT_ACCESS_TOKEN_EXPIRES'] = datetime.timedelta(minutes=5) jwt = JWTManager(app) auth = Authorize("INSA") completion = False #CORS headers @app.after_request def add_headers(response): response.headers.add('Access-Control-Allow-Origin', '*') response.headers.add( 'Access-Control-Allow-Headers', 'Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With' ) return response #Authentication
import consulta_db import os from authorize import Authorize from hasher import hash_all app = Flask(__name__) app.config['SECRET_KEY'] = os.urandom(12) app.config['JWT_BLACKLIST_ENABLED'] = True app.config['JWT_BLACKLIST_STORE'] = simplekv.memory.DictStore() app.config['JWT_BLACKLIST_TOKEN_CHECKS'] = 'all' app.config['JWT_ACCESS_TOKEN_EXPIRES'] = datetime.timedelta(days=365) jwt = JWTManager(app) realm = "DESCUBRA" auth = Authorize(realm) completion = False #CORS headers @app.after_request def add_headers(response): response.headers.add('Access-Control-Allow-Origin', '*') response.headers.add( 'Access-Control-Allow-Headers', 'Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With' ) return response #Authentication
import aux_actions_db import api_riso from hasher import digest, hash_all from authorize import Authorize app = Flask(__name__) app.config['SECRET_KEY'] = os.urandom(12) app.config['JWT_BLACKLIST_ENABLED'] = True app.config['JWT_BLACKLIST_STORE'] = simplekv.memory.DictStore() app.config['JWT_BLACKLIST_TOKEN_CHECKS'] = 'all' app.config['JWT_ACCESS_TOKEN_EXPIRES'] = datetime.timedelta(minutes=5) jwt = JWTManager(app) auth = Authorize("RISO") completion = False #CORS headers @app.after_request def add_headers(response): response.headers.add('Access-Control-Allow-Origin', '*') response.headers.add( 'Access-Control-Allow-Headers', 'Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With' ) return response #Authentication
def get(self): # authorize web requests user = users.get_current_user() authz = Authorize() if not authz.authorize(): self.error(403) return # get the form input yes = int(self.request.get('yes')) class_id = self.request.get('class_id') student_id = self.request.get('student_id') if student_id: student_key = ndb.Key('Student', int(student_id)) student = student_key.get() date_ordinal = self.request.get('date') date_struct = datetime.date.fromordinal(int(date_ordinal)) class_key = ndb.Key('Class', int(class_id)) the_class = class_key.get() hours = self.request.get('hours') today_as_ordinal = self.today_as_ordinal(the_class.timezone) # can only edit attendance for today attendance = None if int(date_ordinal) == today_as_ordinal: attendance_key = ndb.Key('Class', int(class_id), 'Attendance', int(date_ordinal)) attendance = attendance_key.get() attendance_already_exists = False try: if attendance: attendance_already_exists = True if yes: if student_id: self.add_student(student_key, hours, attendance.attending) else: students = ndb.get_multi(the_class.enrolled) for student in students: self.add_student(student.key, hours, attendance.attending) else: self.remove_student(student_key, attendance.attending) else: if yes: attendance = Attendance(key=attendance_key, attending=[]) if student_id: self.add_student(student_key, hours, attendance.attending) else: students = ndb.get_multi(the_class.enrolled) for student in students: self.add_student(student.key, hours, attendance.attending) except ValueError: # hours was not a float self.redirect('/students?class_id=%s&date=%s&errmsg=Invalid%%20value%%20for%%20hours' % (class_id, date_ordinal)) return if attendance: if yes: status = "present" else: status = "absent" logging.info('Change by %s: %s %s marked as %s for %s (hours: %s)' % (authz.get_name(), student.first_name, student.last_name, status, the_class.name, hours)) attendance.put() elif attendance_already_exists: attendance_key.delete() self.redirect('/students?class_id=%s&date=%s' % (class_id, date_ordinal))