Use HashidMixin from flask_hashids

This commit is contained in:
Patrick Jentsch 2021-12-13 12:20:01 +01:00
parent 37c244b30c
commit 82543d883f

View File

@ -1,21 +1,26 @@
from datetime import datetime, timedelta
from flask import current_app, url_for
from flask_hashids import HashidMixin
from flask_login import UserMixin
from itsdangerous import BadSignature, TimedJSONWebSignatureSerializer
from time import sleep
from werkzeug.security import generate_password_hash, check_password_hash
import xml.etree.ElementTree as ET
from . import db, hashids, login
from . import db, login
import base64
import enum
import os
import shutil
class HashidMixin:
@property
def hashid(self):
return hashids.encode(self.id)
class Permission(enum.IntEnum):
'''
Defines User permissions as integers by the power of 2. User permission
can be evaluated using the bitwise operator &.
'''
ADMINISTRATE = 4
CONTRIBUTE = 2
USE_API = 1
class FileMixin:
@ -33,16 +38,6 @@ class FileMixin:
}
class Permission(enum.IntEnum):
'''
Defines User permissions as integers by the power of 2. User permission
can be evaluated using the bitwise operator &.
'''
ADMINISTRATE = 4
CONTRIBUTE = 2
USE_API = 1
class Role(HashidMixin, db.Model):
__tablename__ = 'roles'
# Primary key
@ -578,7 +573,7 @@ class CorpusFile(FileMixin, HashidMixin, db.Model):
os.remove(self.path)
except OSError:
current_app.logger.error(
'Removing {} led to an OSError!'.format(self.path)
f'Removing {self.path} led to an OSError!'
)
pass
db.session.delete(self)