def login(req): email = req.get_form_var("email", '').rstrip() if req.get_method() == 'POST': password = req.get_form_var("password", '') error = None if not is_validate_email(email): error = "请输入合法的邮箱" if not password: error = "请输入密码" elif len(password) < 4 or not password.isalnum(): error = "密码请用长于4位的字母数字组合" if not error: u = User.get_by_email(email) if req.get_form_var("login", None): if not u: error = "该邮箱还未注册" else: u = User.login(email, password) if u: set_session(req, u) return req.redirect("/") else: error = "邮箱和密码不匹配" elif req.get_form_var("register", None): if u: error = "该邮箱已经注册,请直接登录" else: u = User.register(email, password) if u: set_session(req, u) return req.redirect("/") else: error = "注册失败..." return st("/login.html", **locals())
def delete(self, user_id): try: User.remove_by_id(user_id) except Exception as e: print(e) return {'msg': 'unable to delete user'} return {'msg': 'user deleted'}, 204
def init_data(): from webapp.models.user import User from webapp.models.question import Question, Tag, Answer # Role.insert_roles() User.generate_fake(100) Tag.generate_fake(20) Question.generate_fake(1000) Answer.generate_fake(100)
def get(self, user_id): # Get suer from db print(user_id) user = User.find_by_id(user_id) if not user: return {'error': f'User with id {user_id} not found '}, 400 return {'data': userSchema.dump(user)}
def oauth_callback(provider): if not current_user.is_anonymous: return redirect(url_for('index')) oauth = OAuthSignIn.get_provider(provider) result = oauth.callback() if result.get('error'): # Need a valid email address for user identification return redirect( url_for('index', error=result['error'] + ": " + result['error_description'])) app.user = User.find_or_create_by_email(result['email']) app.user.username = result['name'] app.user.family_name = result['family_name'] app.user.nickname = result['nickname'] app.user.preferred_username = result['preferred_username'] # Log in the user, by default remembering them for their next visit # unless they log out. login_user(app.user, remember=True) return redirect(result['next_page'])
def post(self): # Validate json body fields = 'email', 'password' json_payload = request.get_json(silent=True) if not json_payload or not validate_body(fields, json_payload): return {'error': f'Must specify: {fields}'}, 400 # Get user auth_user = User.find_by_email(json_payload['email']) if not auth_user: return {'error': 'User does not exist'}, 401 # Verify password if not auth_user.verify_password(json_payload['password']): return {'error': 'Incorrect password'}, 401 # Create token for user return { 'data': { 'msg': 'successfully signed in', 'user_id': auth_user.id, 'access_token': create_access_token(identity=auth_user.id), 'refresh_token': create_refresh_token(identity=auth_user.id), } }
def post(self, user_id, course_code): try: user = User.find_by_id(user_id) user.add_course(course_code) except Exception as e: print(e) return {'error': 'unable to add course to user'}, 500 return {'msg': 'Added course to user'}
def delete(self, user_id): try: req_json = request.get_json() user = User.find_by_id(user_id) user.remove_rating(**req_json) except Exception as e: print(e) return {'error': 'Unable to get delete rating for article'}, 500 return {}, 204
def get(self, user_id): try: user = User.find_by_id(user_id) user_articles = articleRatingsSchema.dump(user.get_articles()) except Exception as e: print(e) return {'error': 'Unable to get user rating for article'}, 500 return {'data': user_articles}
def delete(self, user_id, course_code): try: user = User.find_by_id(user_id) user.remove_course(course_code) except Exception as e: print(e) return {'error': 'unable to remove course from user'}, 500 return {'msg': f'removed course {course_code}'}
def get(self, user_id): try: user = User.find_by_id(user_id) courses = user.get_courses() courses_json = coursesSchema.dump(courses) except Exception as e: print(e) return {'error': f'unable to get courses for user {user_id}'}, 500 return {'data': courses_json}
def post(self, user_id): try: req_json = request.get_json() user = User.find_by_id(user_id) print(req_json) user.add_rating(**req_json) except Exception as e: print(e) return {'error': 'Unable to get user rating for article'}, 500 return {'msg': 'Rating added'}, 201
def check_session(req): cookie = req.get_cookie(SITE_COOKIE) print "check session", cookie if cookie: email, user_id, session = cookie.split(':') user = User.get(user_id) if user and user.session == session: req.user = user req.email = email print "session user", req.user
def post(self): # Validate json body fields = 'email', 'password', 'firstname', 'lastname' json_payload = request.get_json(silent=True) print(json_payload) if not json_payload or not validate_body(fields, json_payload): return {'error': f'Must specify: {fields}'}, 400 if not validate_body_values(fields, json_payload): return {'error': f'Must specify values for {fields}'}, 400 # Check if user with email already exists if User.find_by_email(json_payload['email']) is not None: return {'error': f'{json_payload["email"]} already exists'}, 401 # Create user & save new_user = User(**json_payload) new_user.save() return { 'data': { 'msg': 'user was successfully created', 'user_id': f'{new_user.id}', 'access_token': create_access_token(identity=new_user.id), 'refresh_token': create_refresh_token(identity=new_user.id), } }
def put(self, user_id): # Editable fields req_body = request.get_json(silent=True) try: user_changes = userSchema.load(req_body) except Exception as e: print(e) return {'error': 'invalid fields to change'}, 400 # Get the user user = User.find_by_id(user_id) if not user: return {'error': f'User with id {user_id} does not exist'}, 400 for field, value in user_changes.items(): setattr(user, field, value) user.save() return {'msg': 'user details updated'}
def admin(req): if not req.user: return req.redirect('/login') if req.user.email == "*****@*****.**": if req.get_method() == "POST": name = req.get_form_var("name", None) os = req.get_form_var("os", None) w = req.get_form_var("w", 0) h = req.get_form_var("h", 0) iw = req.get_form_var("iw", 0) ih = req.get_form_var("ih", 0) vk = req.get_form_var("vk", None) if name and os: id = Screen.new(name, os, w, h, iw, ih, vk == 'Y') if id: return req.redirect("/admin") user_count = User.count() app_count = App.count() screens = Screen.gets() return st("/admin.html", **locals()) raise AccessError("not admin")
def get(self, user_id): ''' Get all sesssions belonging to a user optional query parameter of course_code ''' try: user = User.find_by_id(user_id) if 'course_code' in request.args: #! Find a single session print('*'*30) req_sessions = user.get_sessions(request.args['course_code']) sessions_json = sessionsSchema.dump(req_sessions) else: sessions_json = sessionsSchema.dump(user.get_sessions()) except Exception as e: print(e) return {'error': 'Unable to get sessions'}, 500 return {'data': sessions_json }
def get(self): # get all users users = User.get_users() print(users) return {f'data': usersSchema.dump(users)}
def create_user(username, password): user = User(username, password) db.session.add(user) db.session.commit() return user
def load_user(user_id): return User.find_by_id(user_id)