from main import db from sqlalchemy import Sequence from flask import request, redirect, make_response, jsonify from flask_login import UserMixin, login_required from main import db, app, ma from sqlalchemy.exc import SQLAlchemyError # pylint: disable=no-member ################################################################################ # Class describing Person in the database and DB via sqlalchemy # id is unique id in DB # dn is ldap distinguised name # any entry in this DB is effectively a record you already authed successfully # so acts as a session marker. If you fail ldap auth, you dont get a row here ################################################################################ class PAUser(UserMixin,db.Model): __tablename__ = "pa_user" id = db.Column(db.Integer, db.Sequence('pa_user_id_seq'), primary_key=True) dn = db.Column(db.String) default_import_noo = db.Column(db.String) default_storage_noo = db.Column(db.String) default_search_noo = db.Column(db.String) default_grouping = db.Column(db.String) default_how_many = db.Column(db.Integer) default_size = db.Column(db.Integer) default_import_folders = db.Column(db.Boolean) default_storage_folders = db.Column(db.Boolean) def __repr__(self): str=f"<{self.__class__.__name__}(" for k, v in self.__dict__.items(): str += f"{k}={v!r}, " str=str.rstrip(", ") + ")>" return str def get_id(self): return self.dn ################################################################################ # /change_defaults -> POST only -> changes defaults in DB, states.html reloads # /states once its successful ################################################################################ @app.route("/change_defaults", methods=["POST"]) @login_required def change_defaults(): user=PAUser.query.filter(PAUser.dn==request.form['dn']).one() user.default_size = request.form['default_size'] user.default_import_noo = request.form['default_import_noo'] user.default_storage_noo = request.form['default_storage_noo'] user.default_search_noo = request.form['default_search_noo'] user.default_how_many = request.form['default_how_many'] user.default_grouping = request.form['default_grouping'] if request.form['default_import_folders'] == 'True': user.default_import_folders = True else: user.default_import_folders = False if request.form['default_storage_folders'] == 'True': user.default_storage_folders = True else: user.default_storage_folders = False db.session.add(user) db.session.commit() return make_response( jsonify( status="success" ) )