[System] Detect offline database
This commit is contained in:
		
							parent
							
								
									1d36aa4033
								
							
						
					
					
						commit
						602e1bc941
					
				|  | @ -3,6 +3,7 @@ from flask import Flask, current_app | |||
| from flask_cors import CORS | ||||
| from datetime import datetime, date | ||||
| from flask.json import JSONEncoder, jsonify | ||||
| from sqlalchemy.exc import OperationalError | ||||
| from werkzeug.exceptions import HTTPException | ||||
| 
 | ||||
| from . import logger | ||||
|  | @ -93,6 +94,9 @@ def create_app(): | |||
|         if isinstance(e, HTTPException): | ||||
|             logger.debug(e.description, exc_info=True) | ||||
|             return jsonify({"error": e.description}), e.code | ||||
|         if isinstance(e, OperationalError): | ||||
|             logger.error(e, exc_info=True) | ||||
|             return {"error": "Database unavailable"}, 504 | ||||
|         logger.error(str(e), exc_info=True) | ||||
|         return jsonify({"error": "Internal server error occurred"}), 500 | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,4 +1,5 @@ | |||
| from flask import current_app | ||||
| from sqlalchemy.orm.exc import NoResultFound | ||||
| from werkzeug.exceptions import NotFound, BadRequest | ||||
| 
 | ||||
| from flaschengeist.utils.hook import Hook | ||||
|  | @ -9,8 +10,9 @@ from flaschengeist import logger | |||
| 
 | ||||
| def login_user(username, password): | ||||
|     logger.info("login user {{ {} }}".format(username)) | ||||
|     user = User.query.filter(User.userid == username).one_or_none() | ||||
|     if user is None: | ||||
|     try: | ||||
|         user = User.query.filter(User.userid == username).one() | ||||
|     except NoResultFound: | ||||
|         user = User(userid=username) | ||||
|         db.session.add(user) | ||||
|     if current_app.config["FG_AUTH_BACKEND"].login(user, password): | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue