def login(): # retrieves both the username and the password from # the flask request form, these are the values that # are going to be used in the username validation username = quorum.get_field("username") password = quorum.get_field("password") try: account = models.Account.login(username, password) except quorum.OperationalError as error: return flask.render_template( "signin.html.tpl", username = username, error = error.message ) # updates the current user (name) in session with # the username that has just be accepted in the login flask.session["username"] = account.username flask.session["cameras"] = account.cameras and account.cameras.list() flask.session["tokens"] = account.tokens # makes the current session permanent this will allow # the session to persist along multiple browser initialization flask.session.permanent = True return flask.redirect( flask.url_for("index") )
def login_api(): # retrieves both the username and the password from # the flask request form, these are the values that # are going to be used in the username validation username = quorum.get_field("username") password = quorum.get_field("password") account = models.Account.login(username, password) # updates the current user (name) in session with # the username that has just be accepted in the login flask.session["username"] = account.username flask.session["cameras"] = account.cameras and account.cameras.list() flask.session["tokens"] = account.tokens # makes the current session permanent this will allow # the session to persist along multiple browser initialization flask.session.permanent = True # tries to retrieve the session identifier from the current # session but only in case it exists sid = hasattr(flask.session, "sid") and flask.session.sid or None return dict( sid = sid, session_id = sid, username = username )
def import_do(): # retrieves the import file values (reference to the # uploaded file) and then validates if it has been # defined, in case it fails prints the template with # the appropriate error variable set import_file = quorum.get_field("import_file", None) if import_file == None or not import_file.filename: return flask.render_template( "settings/import.html.tpl", link="settings", sub_link="import", error="No file defined" ) # creates a temporary file path for the storage of the file # and then saves it into that directory fd, file_path = tempfile.mkstemp() import_file.save(file_path) # retrieves the database and creates a new export manager for # the currently defined entities then imports the data defined # in the current temporary path adapter = quorum.get_adapter() manager = quorum.export.ExportManager(adapter, single=SINGLE_ENTITIES, multiple=MULTIPLE_ENTITIES) try: manager.import_data(file_path) finally: os.close(fd) os.remove(file_path) return flask.redirect(flask.url_for("import_a", message="Database file imported with success"))