|
|
|
@ -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 |
|
|
|
|
|
|
|
|
|