@@ -191,3 +191,34 @@ def delete_user(user_id):
|
||||
|
||||
|
||||
|
||||
|
||||
@admin_bp.route('/api_keys')
|
||||
def api_keys():
|
||||
from app.models import ApiKey
|
||||
keys = ApiKey.query.order_by(ApiKey.created_at.desc()).all()
|
||||
return render_template('admin/api_keys.html', keys=keys)
|
||||
|
||||
@admin_bp.route('/api_key/add', methods=['POST'])
|
||||
def add_api_key():
|
||||
from app.models import ApiKey
|
||||
import secrets
|
||||
name = request.form.get('name')
|
||||
if not name:
|
||||
flash("Name is required", "danger")
|
||||
return redirect(url_for('admin.api_keys'))
|
||||
|
||||
key_value = secrets.token_urlsafe(32)
|
||||
new_key = ApiKey(name=name, key=key_value)
|
||||
db.session.add(new_key)
|
||||
db.session.commit()
|
||||
flash(f"API Key '{name}' created.", "success")
|
||||
return redirect(url_for('admin.api_keys'))
|
||||
|
||||
@admin_bp.route('/api_key/<int:key_id>/delete', methods=['POST'])
|
||||
def delete_api_key(key_id):
|
||||
from app.models import ApiKey
|
||||
key = ApiKey.query.get_or_404(key_id)
|
||||
db.session.delete(key)
|
||||
db.session.commit()
|
||||
flash(f'API Key {key.name} deleted.', 'success')
|
||||
return redirect(url_for('admin.api_keys'))
|
||||
|
||||
Reference in New Issue
Block a user