Fix #14
This commit is contained in:
parent
991717687b
commit
0fa7cc3be2
4 changed files with 6 additions and 5 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -1,4 +1,5 @@
|
||||||
.ruff-cache
|
.ruff-cache
|
||||||
|
.ruff_cache
|
||||||
/.vscode
|
/.vscode
|
||||||
__pycache__
|
__pycache__
|
||||||
/instance
|
/instance
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@ def _ensure_at_least_one_admin(db: SQLAlchemy) -> Either[Exception, None]:
|
||||||
).filter(
|
).filter(
|
||||||
SignUpCode.grants_admin
|
SignUpCode.grants_admin
|
||||||
).filter(
|
).filter(
|
||||||
SignUpCode.created_by == -1
|
SignUpCode.created_by == None # noqa: E711
|
||||||
).one_or_none()
|
).one_or_none()
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
log.error(f'Error while querying the database for admin sign-up codes: {e}!')
|
log.error(f'Error while querying the database for admin sign-up codes: {e}!')
|
||||||
|
|
@ -35,7 +35,7 @@ def _ensure_at_least_one_admin(db: SQLAlchemy) -> Either[Exception, None]:
|
||||||
).filter(
|
).filter(
|
||||||
SignUpCode.grants_admin
|
SignUpCode.grants_admin
|
||||||
).filter(
|
).filter(
|
||||||
SignUpCode.created_by == -1
|
SignUpCode.created_by == None # noqa:E711
|
||||||
).delete()
|
).delete()
|
||||||
log.warning(f'Deleted {delete_count} admin sign-up keys.')
|
log.warning(f'Deleted {delete_count} admin sign-up keys.')
|
||||||
return None
|
return None
|
||||||
|
|
@ -66,7 +66,7 @@ def _ensure_at_least_one_admin(db: SQLAlchemy) -> Either[Exception, None]:
|
||||||
code=token_hex(16), # pyright:ignore[reportCallIssue]
|
code=token_hex(16), # pyright:ignore[reportCallIssue]
|
||||||
created=now(), # pyright:ignore[reportCallIssue]
|
created=now(), # pyright:ignore[reportCallIssue]
|
||||||
expires=now() + timedelta(hours=1), # pyright:ignore[reportCallIssue]
|
expires=now() + timedelta(hours=1), # pyright:ignore[reportCallIssue]
|
||||||
created_by=-1, # pyright:ignore[reportCallIssue]
|
created_by=None, # pyright:ignore[reportCallIssue]
|
||||||
grants_admin=True # pyright:ignore[reportCallIssue]
|
grants_admin=True # pyright:ignore[reportCallIssue]
|
||||||
)
|
)
|
||||||
db.session.add(code)
|
db.session.add(code)
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@ class SignUpCode(db.Model):
|
||||||
expires: Mapped[datetime] = mapped_column(DateTime(timezone=False))
|
expires: Mapped[datetime] = mapped_column(DateTime(timezone=False))
|
||||||
grants_admin: Mapped[bool] = mapped_column(Boolean, default=False)
|
grants_admin: Mapped[bool] = mapped_column(Boolean, default=False)
|
||||||
|
|
||||||
created_by: Mapped[int] = mapped_column(Integer, ForeignKey('user.id', ondelete='CASCADE'))
|
created_by: Mapped[int|None] = mapped_column(Integer, ForeignKey('user.id', ondelete='CASCADE'), nullable=True)
|
||||||
|
|
||||||
class NamespaceInviteCode(db.Model):
|
class NamespaceInviteCode(db.Model):
|
||||||
id: Mapped[int] = mapped_column(Integer, primary_key=True)
|
id: Mapped[int] = mapped_column(Integer, primary_key=True)
|
||||||
|
|
|
||||||
|
|
@ -68,7 +68,7 @@ def code_valid(_: Form, field: Field):
|
||||||
f_data: str|None = field.data # pyright:ignore[reportAny]
|
f_data: str|None = field.data # pyright:ignore[reportAny]
|
||||||
|
|
||||||
def _check_user_perms(code: SignUpCode) -> Either[Exception, SignUpCode]:
|
def _check_user_perms(code: SignUpCode) -> Either[Exception, SignUpCode]:
|
||||||
if code.created_by == -1:
|
if code.created_by is None:
|
||||||
# codes created by the system have UID -1. Bypass checks on these codes.
|
# codes created by the system have UID -1. Bypass checks on these codes.
|
||||||
return Right(code)
|
return Right(code)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue