def login(): if request.method == 'POST': session['username'] = request.form['username'] session['password'] = request.form['password'] db = DynamoDB(region=cfg['region']) user_table = cfg['db_tbl']['user'] if not db._isTable_exists(user_table): db.create_table(table_name=user_table, attr_dict={'hash_name': "username"}) try: user = db.get_item(user_table, {'username': session['username']}) if user and user['password'] == session['password']: return redirect(url_for('home', user=session['username'])) except: flash('Username or Password does not exist') return redirect(request.url) return render_template('login.html')
def signup(): if request.method == 'POST': username = request.form['username'] password = request.form['password'] email = request.form['email'] db = DynamoDB(region=cfg['region']) user_table = cfg['db_tbl']['user'] if not db._isTable_exists(user_table): db.create_table(table_name=user_table, attr_dict={'hash_name': "username"}) user_info = { 'username': username.strip(), 'password': password.strip(), 'email': email.strip() } db.insert_item(user_table, user_info) return redirect(url_for('login')) return render_template('signup.html')
def upload_file(user): if request.method == 'POST': if 'image' not in request.files: flash('No file part') return redirect(url_for('home', user=session['username'])) img_file = request.files['image'] if img_file.filename == '': flash('No selected file') return redirect(request.url) elif not allowed_file(img_file.filename): flash('Wrong format. Not in ' + ', '.join(list(ALLOWED_EXTENSIONS))) return redirect(url_for('home', user=user)) else: local_img_path = os.path.join(app.config['UPLOAD_FOLDER'], secure_filename(img_file.filename)) img_file.save(local_img_path) if os.path.exists(local_img_path): logger.debug('Image saved. %s', local_img_path) try: filename = secure_filename(img_file.filename) session = S3(aws_key=cfg['aws_key'], aws_secret=cfg['aws_secret'], region=cfg['region']) url = session.upload_file_to_s3(local_img_path, cfg['bucket'], filename) db = DynamoDB(region=cfg['region']) photo_table = cfg['db_tbl']['album'] if not db._isTable_exists(photo_table): db.create_table(table_name=photo_table, attr_dict={ 'hash_name': 'owner', 'range_name': 'group' }) if url: db.insert_item( photo_table, { 'owner': user, 'group': cfg['group']['pub'], 'filename': filename, 'url': url, 'upload_date': datetime.now().date().strftime('%Y-%m-%d'), }) flash('Uploading finished.') return redirect(url_for('home', user=user)) else: logger.error("URL not returned") except Exception as err: logger.error(str(err)) return redirect(url_for('home', user=user)) else: logger.error('Save to local folder failed') flash('Upload failed. Try again') return redirect(url_for('home', user=user)) return redirect(request.url)