Function to upload site in ftp or sftp

This commit is contained in:
2026-05-21 13:02:20 +02:00
committed by kitoy
parent 50829e9f60
commit 5c17b65820
142 changed files with 288 additions and 933 deletions

View File

@@ -21,7 +21,7 @@ csrf = CSRFProtect(app)
app.secret_key = 'your_secret_key'
app.config.from_pyfile('config.py')
THEMES_FOLDER = './themes/'
THEMES_FOLDER = './templates/themes/'
USERS_FOLDER = app.config['USERS_FOLDER']
bcrypt = Bcrypt(app)
@@ -108,8 +108,7 @@ def editPhoto(page, image, bloc):
else:
return redirect ('/#'+bloc)
else:
return render_template(THEMES_FOLDER+theme+'/blocs/edit/_image-edit'+'.html', form=form, image=myblocs[bloc][image], bloc=myblocs[bloc])
return render_template(THEMES_FOLDER+theme+'/blocs/edit/_image-edit'+'.html', form=form, image=myblocs[bloc][image], bloc=myblocs[bloc])
@app.route('/upload-gallery/<bloc>', methods=['POST'], defaults={'page': ''})
@app.route('/<page>/upload-gallery/<bloc>', methods=['POST'])
@@ -169,7 +168,6 @@ def delImage(page, bloc, image):
return make_response(('Image removed', 200))
@app.route('/imgs_list/<blocname>', methods=['GET'], defaults={'page': ''})
@app.route('/<page>/imgs_list/<blocname>', methods=['GET'])
@login_required
@@ -186,7 +184,6 @@ def imagesList(page, blocname):
return render_template(THEMES_FOLDER+theme+'/blocs/edit/images_list.html',page=page,
bloc=bloc)
@app.route('/edit/<blocname>', methods=['GET', 'POST'], defaults={'page': ''})
@app.route('/<page>/edit/<blocname>', methods=['GET', 'POST'])
@login_required
@@ -298,7 +295,6 @@ def addBloc(page):
else:
return redirect(url_for('edit'))
@app.route('/addPage', methods=['POST'])
@login_required
def addPage():
@@ -340,10 +336,6 @@ def rmPage(pageName):
return redirect(url_for('edit'))
@app.route('/sortblocs', methods=['POST'], defaults={'page': ''})
@app.route('/<page>/sortblocs', methods=['POST'])
@@ -393,14 +385,14 @@ def editMenu():
flash (u'Le menu a bien été modifier', 'success');
return redirect(url_for('edit'))
@app.route('/public/img/<filename>')
@app.route('/img/<filename>')
@login_required
def myimgs(filename):
user = '%s' % escape(session['username'])
return send_from_directory(
os.path.join(USERS_FOLDER, user, 'public', 'img'), filename )
@app.route('/public/img/thumbnails/<filename>')
@app.route('/img/thumbnails/<filename>')
@login_required
def mythumbnails(filename):
user = '%s' % escape(session['username'])
@@ -414,7 +406,7 @@ def favicon():
@app.route('/publish', methods=['GET'])
@app.route('/publish', methods=['POST'])
@login_required
def publish():
user = '%s' % escape(session['username'])
@@ -422,6 +414,15 @@ def publish():
listPages = db.getPages()
theme = db.datas['config']['theme']
menu = db.datas['menu']
test_alphanum = "^[A-Za-z0-9/_-]*$"
serverAddress = str(request.form['serverAddress'])
serverPort = str(request.form['serverPort'])
username = str(request.form['username'])
password = str(request.form['password'])
folder = str(request.form['folder'])
for page in listPages:
myblocs = db.getBlocs(page)['blocs']
@@ -442,6 +443,23 @@ def publish():
page='/',
myblocs=myblocs)
db.writeHTML(theme, 'index', htmlExport)
db.writeHTML(theme, '/', htmlExport)
if serverPort == '' or serverPort.isdigit() == False :
serverPort = '22'
if folder == '' :
folder = '/'
elif(bool(re.match(test_alphanum, folder)) == False):
folder = '/'
if db.publish(username, password, serverAddress, serverPort, folder) == False:
return make_response(('Impossible de publier le site ', 500))
return redirect(url_for('edit'))