43 lines
1.3 KiB
Python
43 lines
1.3 KiB
Python
from flask import Flask, request, jsonify, render_template
|
|
import json
|
|
import os
|
|
from datetime import datetime
|
|
import secrets
|
|
import string
|
|
import auth
|
|
|
|
|
|
# Secret alphabet
|
|
ALPHABET = string.ascii_letters + string.digits
|
|
|
|
|
|
@auth.require_admin
|
|
def folder_secret_config_editor():
|
|
return render_template('folder_secret_config_editor.html', alphabet=ALPHABET, admin_enabled=auth.is_admin())
|
|
|
|
@auth.require_admin
|
|
def folder_secret_config_action():
|
|
p = request.get_json()
|
|
data = auth.return_folder_config()
|
|
action = p.get('action')
|
|
if action == 'delete':
|
|
data = [r for r in data if r['secret'] != p['secret']]
|
|
elif action == 'update':
|
|
old = p['oldSecret']; new = p['newSecret']
|
|
for i, r in enumerate(data):
|
|
if r['secret'] == old:
|
|
r['secret'] = new
|
|
r['validity'] = datetime.strptime(p['validity'], '%Y-%m-%d').strftime('%d.%m.%Y')
|
|
r['folders'] = p['folders']
|
|
break
|
|
else:
|
|
# append if not found
|
|
data.append({
|
|
'secret': new,
|
|
'validity': datetime.strptime(p['validity'], '%Y-%m-%d').strftime('%d.%m.%Y'),
|
|
'folders': p['folders']
|
|
})
|
|
auth.save_folder_config(data)
|
|
return jsonify(success=True)
|
|
|