def put(self, id): parser = reqparse.RequestParser() roles = ("Admin", "User") parser.add_argument('role', choices=roles, required=True, help='Invalid role!') parser.add_argument('first_name') parser.add_argument('last_name') data = parser.parse_args() try: email = get_jwt_identity() session_user = User.objects(email=email).first() user = User.objects(id=id, active=True).first() if user is None: return error_404() user.first_name = data['first_name'] user.last_name = data['last_name'] user.role = data['role'] user.updated_at = datetime.utcnow() user.save() response = user.serialize(excludes=['password']) return make_response(response, 200) except Exception as e: print(e) return error_500()
def login_user(): email = request.form['email'] password = request.form['password'] valid = User.valid_login(email, password) User.login(email) user = User.get_by_email(email) if valid: if user.designation == 'HQ Staff': return render_template('profile_HQ.html', user=user) else: return render_template('profile_blocks.html', user=user) else: return render_template('login_fail.html')
def put(self): parser = reqparse.RequestParser() parser.add_argument('email') parser.add_argument('first_name') parser.add_argument('last_name') data = parser.parse_args() try: email = get_jwt_identity() session_user = User.objects(email=email).first() if email == data['email']: session_user.update(first_name=data['first_name'], last_name=data['last_name'], updated_at=datetime.utcnow()) else: user = User.objects(email=data['email']).first() if user is not None: return error_409("Email already exist!") session_user.update(email=data['email'], first_name=data['first_name'], last_name=data['last_name'], updated_at=datetime.utcnow()) user = User.objects(email=data['email']).first() response = user.serialize(excludes=['password']) return make_response(response, 200) except Exception as e: print(e) return error_500()
def create_user(): request_body = request.get_json() if request_body.get('name') is None: return jsonify({'error': 'Name is required'}), 400 elif len(request_body['name']) < 4: return jsonify({'error': 'Name should be at least 4 characters'}), 400 elif request_body.get('email') is None: return jsonify({'error': 'Email is required'}), 400 elif not re.match(EMAIL_REGEX, request_body['email']): return jsonify({'error': 'Email is invalid'}), 400 elif request_body.get('password') is None: return jsonify({'error': 'Password is required'}), 400 elif request_body.get('password') != request_body.get('confirmPassword'): return jsonify({'error': 'Passwords do not match'}), 400 user = User(name=request_body['name'], email=request_body['email'], password=request_body['password'], cash=20000.0) db.session.add(user) db.session.commit() auth_token = encode_auth_token(user.id) return jsonify({ 'user': user.as_dict(), 'auth': { 'access_token': auth_token.decode() } }), 201
def register_user(): email = request.form['email'] password = request.form['password'] username = request.form['username'] designation = request.form['designation'] block = request.form['block'] User.register(email, password, username, designation, block, department=None) user = User.get_by_email(email) if user.designation == 'HQ Staff': return render_template('profile_HQ.html', user=user) else: return render_template('profile_blocks.html', user=user)
async def get_image_data_route(db_name: str, task_name: str, id: Optional[str] = None, user: User = Depends( fastapi_users.get_current_active_user)): try: if id is None: if user.can_get_image_data(db_name=db_name, task_name=task_name): ids = await get_image_data_ids(db_name, task_name) if ids: return ResponseModel( ids, "Image Data ids retrieved successfully") return ResponseModel([], "Image Data ids are empty") else: return ErrorResponseModel("An error occurred", 503, "User can't get Image Data.") else: if user.can_get_image_data(db_name=db_name, task_name=task_name): image_data = await get_image_data(db_name, task_name, id) if image_data: return ResponseModel(image_data, "Image Data retrieved successfully") return ResponseModel({}, "Image Data are empty") else: return ErrorResponseModel("An error occurred", 503, "User can't get Image Data.") except Exception as e: return ErrorResponseModel("An error occurred", 503, e.__str__())
def getBlogs(userId = None): if userId is not None: user = User.getById(userId) else: user = User.getByEmail(session['email']) blogs = user.getBlogs() return render_template('userBlogs.html',blogs=blogs,email=user.email)
def get_user(self, user_id): try: dbObject = User() return dbObject.get(user_id) except Exception as e: current_app.logger.debug(traceback.format_exc()) raise e
def register_user(): email = request.form['email'] password = request.form['password'] User.register(email, password) session["email"] = email return render_template("profile.html", email=session['email'])
def user_blogs(user_id): if user_id is not None: user = User.get_by_id(user_id) else: user = User.get_by_email(session['email']) blogs = user.get_blogs() return render_template("user_blogs.html", blogs=blogs)
def login_user(): email = request.form['email'] password = request.form['password'] if User.login_valid(email, password): User.login(email) else: session['email'] = None return render_template('profile.html', email=session['email'])
def loginValidate(): email = request.form['email'] password = request.form['password'] if User.loginValid(email,password): User.login(email) else: return jsonify(error='Invalid user name or password, Please try to login again') return render_template('profile.html',email=session['email'])
def deregister(): if request.method == 'POST': email = session['email'] password = request.form['password'] try: if User.is_login_valid(email, password): User.deregister(email) session['email'] = None flash("Your account has been removed!", 'warning') return render_template('home.html') except UserErrors.UserError as e: flash("Your password was incorrect", 'danger') return render_template('deregister.html', email=session['email'])
def post(self): parser = reqparse.RequestParser() parser.add_argument('email', required=True, help='Email required!') parser.add_argument('password', required=True, help='Password required!') data = parser.parse_args() try: user = User.objects(email=data['email']).first() if user is None: return error_404("User not found!") if verify_hash(data['password'], user.password): response = { 'access_token': create_access_token(identity=data['email']), 'refresh_token': create_refresh_token(identity=data['email']) } return make_response(response, 200) else: return error_400("Invalid password!") except Exception as e: print(e) return error_500()
def preview_image(_id): URI = os.environ['MONGODB_URI'] client = pymongo.MongoClient(Database.URI) DATABASE = client['heroku_thg5d5x0'] email = session['email'] user = User.get_by_email(email) # URI = "mongodb://127.0.0.1:27017" # client = pymongo.MongoClient(URI) # DATABASE = client['Dindugul'] fid = "" fs = gridfs.GridFS(DATABASE) print(DATABASE['road_images'].find({'fileid': _id})) for output_data1 in DATABASE['road_images'].find({'stageid': _id}): fid = output_data1["fileid"] output_data = fs.get(fid).read() base64_data = codecs.encode(output_data, 'base64') image = base64_data.decode('utf-8') if user.designation == 'HQ Staff': return render_template('road_image_display.html', images=image, user=user) else: return render_template('road_image_display_blocks.html', images=image, user=user)
def deletework(work_id): email = session['email'] user = User.get_by_email(email) Work.deletefrom_mongo(work_id=work_id) return render_template('deleted.html', user=user)
def registerNewUser(): email = request.form['email'] password = request.form['password'] if User.register(email,password) is not False: return render_template('profile.html', email=session['email']) else: return 'User already present in the App, Please login'
def Overall_Summary(): email = session['email'] user = User.get_by_email(email) if email is not None: if request.method == 'GET': return render_template('between_dates_overall.html', user=user) else: start_date = request.form['startdate'] end_date = request.form['enddate'] return render_template('overall_summary_sheet.html', user=user, start_date=start_date, end_date=end_date) else: return render_template('login_fail.html', user=user)
async def signup(signup: UserSignup): user = UserManager() user_data = User(**signup.dict()) u = user.create_user(user_data) if u: return signup else: return {"message": "failed"}
def delete(self, id): try: email = get_jwt_identity() session_user = User.objects(email=email).first() user = User.objects(id=id, active=True).first() if user is None: return error_404() user.active = False user.save() response = {'message': 'User deleted'} return make_response(response, 204) except Exception as e: print(e) return error_500()
def scheme_form(user_id): email = session['email'] if email is not None: if request.method == 'GET': user = User.get_by_id(user_id) return render_template('add_scheme.html', user=user) else: user = User.get_by_id(user_id) scheme_group_name = request.form['schemegroupname'] scheme_name = request.form['schemename'] work_group_name = request.form['workgroupname'] work_type = request.form['worktype'] scheme = Scheme(scheme_group_name=scheme_group_name, scheme_name=scheme_name, work_group_name=work_group_name, work_type=work_type) scheme.save_to_mongo() if user.designation == 'HQ Staff': return render_template('application_added.html', scheme=scheme, user=user) else: return render_template('application_added_blocks.html', scheme=scheme, user=user) else: return render_template('login_fail.html')
def log_out(): email = session['email'] user = User.get_by_email(email) if email is not None: user.logout() return render_template('logged_out.html', user=user.username) else: return render_template('login_fail.html')
def setUp(self): app.config['TESTING'] = True app.config['WTF_CSRF_ENABLED'] = False app.config['DEBUG'] = False db.init_app(app) with app.app_context(): db.create_all() example_user = User(id=1, email="*****@*****.**", username="******") example_user.set_password("111") db.session.merge(example_user) db.session.commit() self.app = app.test_client()
def createNewBlog(): if request.method == 'GET': return render_template('newBlog.html') else: title = request.form['title'] description = request.form['description'] author = User.getByEmail(session['email']) blog = Blog(author.email,title,description,author._id) blog.saveToMongo() return make_response(getBlogs(author._id))
def createNewPost(blogId): if request.method == 'GET': return render_template('newPost.html',blogId=blogId) else: title = request.form['title'] content = request.form['content'] author = User.getByEmail(session['email']) blog = Blog.getFromMongo(blogId) blog.newPost(title,content) return make_response(getPostsForBlog(blogId))
def get(self): query_prop = request.args.get("q", None) if query_prop is None: results = User.query.all() else: q = f"%{query_prop}%" query = User.query.filter( or_(User.name.ilike(q), User.email.ilike(q))) results = query.all() return User.serialize_list(results), HTTPStatus.OK
async def add_image_data_route( db_name: str, task_name: str, id: Optional[str] = None, image_data: Union[ImageDataSchema, UpdateImageDataModel] = Body(...), user: User = Depends(fastapi_users.get_current_active_user)): try: image_data = jsonable_encoder(image_data, exclude_none=True) if id is None and image_data.get("_id", None) is None: if user.can_add_image_data(db_name=db_name, task_name=task_name): result = await add_image_data(db_name=db_name, task_name=task_name, image_data=image_data) if result: return ResponseModel(result, "Image Data added successfully.") return ErrorResponseModel("An error occurred", 404, "Can't add Image Data") else: return ErrorResponseModel("An error occurred", 503, "User can't update Image Data") else: can_edit_protected = user.can_edit_protected_image_data( db_name=db_name, task_name=task_name) if user.can_edit_image_data( db_name=db_name, task_name=task_name) or can_edit_protected: result = await update_image_data( db_name=db_name, task_name=task_name, id=id, image_data=image_data, check_protected=can_edit_protected) if result: return ResponseModel(result, "Image Data updated successfully.") return ErrorResponseModel("An error occurred", 404, "Can't update Image Data") else: return ErrorResponseModel("An error occurred", 503, "User can't update Image Data") except Exception as e: return ErrorResponseModel("An error occurred", 503, e.__str__())
def register(): if request.method == 'POST': email = request.form['email'] password = request.form['password'] try: User.register(email, password) session['email'] = email flash("You just registered!", "success") return redirect(url_for('.index')) except UserErrors.UserError: flash("The current email is invalid or it has been registered.", "danger") except MailgunException: session['email'] = email flash(f"You just registered but not opted in to receive email from Mailgun. Please contact the " f"administrator.", "warning") return redirect(url_for('.index')) return render_template('register.html')
def get(self, id): try: user = User.objects(id=id, active=True).first() if user is None: return error_404() response = user.serialize(excludes=['password']) return make_response(response, 200) except Exception as e: print(e) return error_500()
def get(self): email = get_jwt_identity() try: user = User.objects(email=email).first() if user is None: return error_404() response = user.serialize(excludes=['password']) return make_response(response, 200) except Exception as e: print(e) return error_500()