|
|
|
@ -1,5 +1,4 @@
|
|
|
|
|
from datetime import date
|
|
|
|
|
from flask import flash
|
|
|
|
|
from flask_login import UserMixin
|
|
|
|
|
from sqlalchemy import func as SQLfunc
|
|
|
|
|
from os.path import isfile
|
|
|
|
@ -10,12 +9,10 @@ from app.models.privs import SpecialPrivilege, Group, GroupMember, \
|
|
|
|
|
from app.models.trophies import Trophy, TrophyMember, Title
|
|
|
|
|
from app.models.notification import Notification
|
|
|
|
|
import app.utils.unicode_names as unicode_names
|
|
|
|
|
from app.utils.notify import notify
|
|
|
|
|
import app.utils.ldap as ldap
|
|
|
|
|
from config import V5Config
|
|
|
|
|
|
|
|
|
|
import werkzeug.security
|
|
|
|
|
import re
|
|
|
|
|
import math
|
|
|
|
|
import app
|
|
|
|
|
import os
|
|
|
|
@ -78,8 +75,7 @@ class Member(User):
|
|
|
|
|
|
|
|
|
|
# Primary attributes (needed for the system to work)
|
|
|
|
|
name = db.Column(db.Unicode(User.NAME_MAXLEN), index=True)
|
|
|
|
|
norm = db.Column(db.Unicode(User.NAME_MAXLEN), index=True,
|
|
|
|
|
unique=True)
|
|
|
|
|
norm = db.Column(db.Unicode(User.NAME_MAXLEN), index=True, unique=True)
|
|
|
|
|
email = db.Column(db.Unicode(120), index=True, unique=True)
|
|
|
|
|
email_confirmed = db.Column(db.Boolean)
|
|
|
|
|
password_hash = db.Column(db.String(255))
|
|
|
|
@ -107,7 +103,7 @@ class Member(User):
|
|
|
|
|
|
|
|
|
|
# Displayed title, if set
|
|
|
|
|
title_id = db.Column(db.Integer, db.ForeignKey('title.id'), nullable=True)
|
|
|
|
|
title = db.relationship('Title', foreign_keys=title_id)
|
|
|
|
|
title = db.relationship('Title', foreign_keys=title_id)
|
|
|
|
|
|
|
|
|
|
# Settings
|
|
|
|
|
newsletter = db.Column(db.Boolean, default=False)
|
|
|
|
@ -158,7 +154,7 @@ class Member(User):
|
|
|
|
|
if SpecialPrivilege.query.filter_by(mid=self.id, priv=priv).first():
|
|
|
|
|
return True
|
|
|
|
|
return db.session.query(Group, GroupPrivilege).filter(
|
|
|
|
|
Group.id.in_([ g.id for g in self.groups ]),
|
|
|
|
|
Group.id.in_([g.id for g in self.groups]),
|
|
|
|
|
GroupPrivilege.gid==Group.id,
|
|
|
|
|
GroupPrivilege.priv==priv).first() is not None
|
|
|
|
|
|
|
|
|
|