feat: add email verification on register · IDTS-LAB/python-codebase@eb77776 · GitHub
Skip to content

Commit eb77776

Browse files
committed
feat: add email verification on register
1 parent 3c9c847 commit eb77776

46 files changed

Lines changed: 974 additions & 59 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎.env.example‎

Lines changed: 36 additions & 0 deletions

‎poetry.lock‎

Lines changed: 153 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎pyproject.toml‎

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,10 @@ dependencies = [
1919
"greenlet (>=3.5.1,<4.0.0)",
2020
"casbin (>=1.43.0,<2.0.0)",
2121
"fastapi-limiter (==0.1.6)",
22-
"redis (>=8.0.0,<9.0.0)"
22+
"redis (>=8.0.0,<9.0.0)",
23+
"jinja2 (>=3.1.6,<4.0.0)",
24+
"boto3 (>=1.43.34,<2.0.0)",
25+
"sendgrid (>=6.12.5,<7.0.0)"
2326
]
2427

2528
[tool.poetry]

‎src/core/authorization/domain/service.py‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
from datetime import datetime
33
from uuid import UUID
44

5-
from src.core.utils.cursor import CursorDirection
65
from src.modules.authorization.domain.entities.permission import Permission
76
from src.modules.authorization.domain.entities.role import Role
7+
from src.shared.utils.cursor import CursorDirection
88

99

1010
class AuthorizationService(ABC):

‎src/core/authorization/infrastructure/models/permission_model.py‎

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from uuid import UUID
22

3-
from sqlalchemy import ForeignKey, String, UniqueConstraint
3+
from sqlalchemy import String, UniqueConstraint
44
from sqlalchemy.orm import Mapped, mapped_column
55

66
from src.shared.database.mixin.timestamp import SoftDeleteMixin, TimeStampMixin
@@ -14,10 +14,7 @@ class PermissionModel(Base, TimeStampMixin, SoftDeleteMixin):
1414
)
1515

1616
key: Mapped[str] = mapped_column(String(255), unique=True, index=True)
17-
resource_id: Mapped[UUID] = mapped_column(
18-
ForeignKey("authorization_resources.id"),
19-
index=True,
20-
)
17+
resource_id: Mapped[UUID] = mapped_column(index=True)
2118
resource: Mapped[str] = mapped_column(String(100), index=True)
2219
action: Mapped[str] = mapped_column(String(100), index=True)
2320
description: Mapped[str | None] = mapped_column(String(255), nullable=True)

‎src/core/authorization/infrastructure/models/role_permission_model.py‎

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from uuid import UUID
22

3-
from sqlalchemy import ForeignKey, UniqueConstraint
3+
from sqlalchemy import UniqueConstraint
44
from sqlalchemy.orm import Mapped, mapped_column
55

66
from src.shared.database.model import Base
@@ -16,8 +16,5 @@ class RolePermissionModel(Base):
1616
),
1717
)
1818

19-
role_id: Mapped[UUID] = mapped_column(ForeignKey("roles.id"), index=True)
20-
permission_id: Mapped[UUID] = mapped_column(
21-
ForeignKey("permissions.id"),
22-
index=True,
23-
)
19+
role_id: Mapped[UUID] = mapped_column(index=True)
20+
permission_id: Mapped[UUID] = mapped_column(index=True)

‎src/core/authorization/infrastructure/models/user_has_role_model.py‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from uuid import UUID
22

3-
from sqlalchemy import ForeignKey, UniqueConstraint
3+
from sqlalchemy import UniqueConstraint
44
from sqlalchemy.orm import Mapped, mapped_column
55

66
from src.shared.database.model import Base
@@ -12,5 +12,5 @@ class UserHasRoleModel(Base):
1212
UniqueConstraint("user_id", "role_id", name="uq_user_has_roles_user_id_role_id"),
1313
)
1414

15-
user_id: Mapped[UUID] = mapped_column(ForeignKey("users.id"), index=True)
16-
role_id: Mapped[UUID] = mapped_column(ForeignKey("roles.id"), index=True)
15+
user_id: Mapped[UUID] = mapped_column(index=True)
16+
role_id: Mapped[UUID] = mapped_column(index=True)

‎src/core/authorization/infrastructure/repositories/casbin_policy_repository.py‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
from sqlalchemy import and_, delete, or_, select
55
from sqlalchemy.ext.asyncio import AsyncSession
66

7-
from src.core.utils.cursor import CursorDirection
87
from src.core.authorization.infrastructure.models.casbin_rule_model import (
98
CasbinRuleModel,
109
)
@@ -24,6 +23,7 @@
2423
from src.modules.authorization.domain.entities.permission import Permission
2524
from src.modules.authorization.domain.entities.resource import AuthorizationResource
2625
from src.modules.authorization.domain.entities.role import Role
26+
from src.shared.utils.cursor import CursorDirection
2727

2828

2929
class SQLAlchemyCasbinPolicyRepository:

‎src/core/authorization/infrastructure/services/casbin_authorization_service.py‎

Lines changed: 1 addition & 1 deletion

0 commit comments

Comments
 (0)