67 lines
2.6 KiB
Python
67 lines
2.6 KiB
Python
from main import db
|
|
from sqlalchemy import Sequence
|
|
from flask import request, redirect
|
|
from flask_login import UserMixin, login_required
|
|
from main import db, app, ma
|
|
from sqlalchemy.exc import SQLAlchemyError
|
|
from status import st, Status
|
|
|
|
|
|
# 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
|
|
|
|
################################################################################
|
|
# /changedefaults -> POST only -> changes defaults in DB, states.html reloads
|
|
# /states once its successful
|
|
################################################################################
|
|
@app.route("/changedefaults", methods=["POST"])
|
|
@login_required
|
|
def changedefaults():
|
|
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 "done"
|