Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import json
- import os
- from flask import Flask, session, g
- from flask import render_template
- from flask import request
- from flask import url_for, send_from_directory
- from werkzeug.utils import secure_filename, redirect
- UPLOAD_FOLDER = 'storage'
- ALLOWED_EXTENSIONS = set(['txt', 'pdf', 'png', 'jpg', 'jpeg', 'gif'])
- app = Flask(__name__)
- app.secret_key = b'0293jr i(UHoiawu hft923XDdededededededekakademonaXD'
- app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER
- # json data
- user_data = [];
- with open('static/userdata/userlist.json') as json_data:
- user_data = json.load(json_data)
- user_data = user_data['users']
- def allowed_file(filename):
- return '.' in filename and \
- filename.rsplit('.', 1)[1].lower() in ALLOWED_EXTENSIONS
- @app.route('/kolendom/login', methods=["GET", "POST"])
- def login():
- if request.method == 'POST':
- login = request.form.get('username')
- password = request.form.get('password')
- if login not in user_data:
- return render_template('login.html', login=True)
- if user_data[login] == password:
- session['user'] = login
- return redirect(url_for('user_panel'))
- else:
- return render_template('login.html', password=True)
- else:
- return render_template('login.html')
- @app.route('/kolendom/userpanel', methods=["GET"])
- def user_panel():
- if 'user' in session:
- filenames = [f for f in os.listdir('storage/' + session['user']) if
- os.path.isfile(os.path.join('storage/' + session['user'], f))]
- if len(filenames) == 5:
- return render_template('index.html', filenames=filenames, storage_full=True)
- return render_template('index.html', filenames=filenames)
- @app.route('/kolendom/upload', methods=['POST'])
- def upload_file():
- file = request.files['file']
- if file and allowed_file(file.filename):
- filename = secure_filename(file.filename)
- directory = app.config['UPLOAD_FOLDER'] + '/' + session['user'] + '/' + filename
- file.save(directory)
- return redirect(url_for('user_panel'))
- else:
- return redirect(url_for('user_panel'))
- @app.route('/kolendom/download/<path:filename>', methods=['GET'])
- def download(filename):
- if 'user' in session:
- directory = app.config['UPLOAD_FOLDER'] + '/' + session['user']
- return send_from_directory(directory, filename=filename, as_attachment=True)
- return redirect(url_for('login'))
- # @app.before_request
- # def before_request():
- # g.user = None
- # if 'user' in session:
- # g.user = session['user']
- # logout
- @app.route("/kolendom/logout")
- def logout():
- session.pop(session['user'], None)
- resp = app.make_response(render_template('logout.html'))
- resp.set_cookie('token', expires=0)
- return resp
- if __name__ == '__main__':
- app.run(host='127.0.0.1', port=6387, debug=True)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement