mirror of
https://github.com/janeczku/calibre-web
synced 2024-11-16 14:54:55 +00:00
ebe7cd7ba4
Cookies are saved in database for better Invalidation Cookies expiry date is saved in database for further deletion (missing) Database conversion is missing
66 lines
1.5 KiB
Python
66 lines
1.5 KiB
Python
class UserMixin:
|
|
"""
|
|
This provides default implementations for the methods that Flask-Login
|
|
expects user objects to have.
|
|
"""
|
|
|
|
# Python 3 implicitly set __hash__ to None if we override __eq__
|
|
# We set it back to its default implementation
|
|
__hash__ = object.__hash__
|
|
|
|
@property
|
|
def is_active(self):
|
|
return True
|
|
|
|
@property
|
|
def is_authenticated(self):
|
|
return self.is_active
|
|
|
|
@property
|
|
def is_anonymous(self):
|
|
return False
|
|
|
|
def get_id(self):
|
|
try:
|
|
return str(self.id)
|
|
except AttributeError:
|
|
raise NotImplementedError("No `id` attribute - override `get_id`") from None
|
|
|
|
def __eq__(self, other):
|
|
"""
|
|
Checks the equality of two `UserMixin` objects using `get_id`.
|
|
"""
|
|
if isinstance(other, UserMixin):
|
|
return self.get_id() == other.get_id()
|
|
return NotImplemented
|
|
|
|
def __ne__(self, other):
|
|
"""
|
|
Checks the inequality of two `UserMixin` objects using `get_id`.
|
|
"""
|
|
equal = self.__eq__(other)
|
|
if equal is NotImplemented:
|
|
return NotImplemented
|
|
return not equal
|
|
|
|
|
|
class AnonymousUserMixin:
|
|
"""
|
|
This is the default object for representing an anonymous user.
|
|
"""
|
|
|
|
@property
|
|
def is_authenticated(self):
|
|
return False
|
|
|
|
@property
|
|
def is_active(self):
|
|
return False
|
|
|
|
@property
|
|
def is_anonymous(self):
|
|
return True
|
|
|
|
def get_id(self):
|
|
return
|