Files
photoassistant/user.py

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"