mirror of
https://github.com/codl/forget
synced 2024-12-14 17:34:34 +01:00
50 lines
1.2 KiB
Python
50 lines
1.2 KiB
Python
|
from app import app, db
|
||
|
from lib.auth import require_auth_api, get_viewer
|
||
|
from flask import jsonify, redirect, make_response, request
|
||
|
from model import Account
|
||
|
import lib.settings
|
||
|
import lib.json
|
||
|
|
||
|
|
||
|
@app.route('/api/settings', methods=('PUT',))
|
||
|
@require_auth_api
|
||
|
def api_settings_put():
|
||
|
viewer = get_viewer()
|
||
|
data = request.json
|
||
|
updated = dict()
|
||
|
for key in lib.settings.attrs:
|
||
|
if key in data:
|
||
|
setattr(viewer, key, data[key])
|
||
|
updated[key] = data[key]
|
||
|
db.session.commit()
|
||
|
return jsonify(status='success', updated=updated)
|
||
|
|
||
|
|
||
|
@app.route('/api/viewer')
|
||
|
@require_auth_api
|
||
|
def api_viewer():
|
||
|
viewer = get_viewer()
|
||
|
resp = make_response(lib.json.account(viewer))
|
||
|
resp.headers.set('content-type', 'application/json')
|
||
|
return resp
|
||
|
|
||
|
|
||
|
@app.route('/api/reason', methods={'DELETE'})
|
||
|
@require_auth_api
|
||
|
def delete_reason():
|
||
|
get_viewer().reason = None
|
||
|
db.session.commit()
|
||
|
return jsonify(status='success')
|
||
|
|
||
|
|
||
|
@app.route('/api/badge/users')
|
||
|
def users_badge():
|
||
|
count = (
|
||
|
Account.query.filter(Account.policy_enabled)
|
||
|
.filter(~Account.dormant)
|
||
|
.count()
|
||
|
)
|
||
|
return redirect(
|
||
|
"https://img.shields.io/badge/active%20users-{}-blue.svg"
|
||
|
.format(count))
|