Compare commits

...

11 Commits

Author SHA1 Message Date
renovate[bot]
171ea78ac2 feat(deps): update stefanzweifel/git-auto-commit-action action to v7 (#61)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-08 14:12:14 +02:00
renovate[bot]
34f59bedbe feat(deps): update dependency stripe to v15.2.0 (#66)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-08 14:11:51 +02:00
renovate[bot]
8ce6ba5bf5 feat(deps): update paulhatch/semantic-version action to v6 (#64)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-08 14:11:34 +02:00
renovate[bot]
68f7bf2d6d feat(deps): update actions/setup-python action to v6 (#58)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-15 22:10:27 +00:00
renovate[bot]
500378e120 feat(deps): update actions/checkout action to v6 (#63)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-15 22:08:28 +00:00
renovate[bot]
998c5765bc feat(deps): update dependency stripe to v15 (#65)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-15 22:08:12 +00:00
5b74ed5620 fix: added name for primary key constraint 2025-07-24 23:10:46 +02:00
bb3a52295d feat: added LowerCaseString field 2025-07-24 22:53:26 +02:00
renovate[bot]
d471b86a25 feat(deps): update dependency stripe to v12.3.0 (#55)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-08 09:46:11 +02:00
creyD
aa99fc6226 Adjusted files for isort & autopep 2025-06-26 12:50:57 +00:00
vikynoah
30a5e417eb feat: User Password change ticket (#54) 2025-06-26 14:49:56 +02:00
6 changed files with 50 additions and 9 deletions

View File

@@ -19,7 +19,7 @@ jobs:
lint: lint:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v6
- uses: psf/black@stable - uses: psf/black@stable
with: with:
options: "-l 100 --exclude '/.venv/|/__init__.py'" options: "-l 100 --exclude '/.venv/|/__init__.py'"
@@ -27,7 +27,7 @@ jobs:
with: with:
no_commit: True no_commit: True
options: --in-place --remove-all-unused-imports -r --exclude **/__init__.py,**/db/models.py, options: --in-place --remove-all-unused-imports -r --exclude **/__init__.py,**/db/models.py,
- uses: stefanzweifel/git-auto-commit-action@v5 - uses: stefanzweifel/git-auto-commit-action@v7
with: with:
commit_message: Adjusted files for isort & autopep commit_message: Adjusted files for isort & autopep
@@ -35,8 +35,8 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
needs: lint needs: lint
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v6
- uses: actions/setup-python@v5 - uses: actions/setup-python@v6
with: with:
python-version: '3.13' python-version: '3.13'
- run: python -m pip install --upgrade pip - run: python -m pip install --upgrade pip
@@ -55,7 +55,7 @@ jobs:
contents: write # for the tags contents: write # for the tags
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v6
with: with:
fetch-tags: true fetch-tags: true
ref: ${{ github.ref_name }} ref: ${{ github.ref_name }}
@@ -76,7 +76,7 @@ jobs:
fi fi
- name: Git Version - name: Git Version
uses: PaulHatch/semantic-version@v5.4.0 uses: PaulHatch/semantic-version@v6.0.2
id: git_version id: git_version
with: with:
tag_prefix: "" tag_prefix: ""
@@ -91,7 +91,7 @@ jobs:
git push origin ${{ steps.git_version.outputs.version }} git push origin ${{ steps.git_version.outputs.version }}
- name: Set up Python - name: Set up Python
uses: actions/setup-python@v5 uses: actions/setup-python@v6
with: with:
python-version: '3.13' python-version: '3.13'

View File

@@ -1,3 +1,4 @@
from .fields import * # noqa
from .groups import * # noqa from .groups import * # noqa
from .i18n import * # noqa from .i18n import * # noqa
from .stripe import * # noqa from .stripe import * # noqa

17
creyPY/const/fields.py Normal file
View File

@@ -0,0 +1,17 @@
from sqlalchemy import types
class LowerCaseString(types.TypeDecorator):
"""Converts strings to lower case on the way in."""
impl = types.String
cache_ok = True
def process_bind_param(self, value, dialect):
if value is None:
return value
return value.lower()
@property
def python_type(self):
return str

View File

@@ -1,7 +1,7 @@
import uuid import uuid
from datetime import datetime from datetime import datetime
from sqlalchemy import Column, DateTime, String from sqlalchemy import Column, DateTime, PrimaryKeyConstraint, String
from sqlalchemy.dialects.postgresql import UUID from sqlalchemy.dialects.postgresql import UUID
from sqlalchemy.ext.declarative import declared_attr from sqlalchemy.ext.declarative import declared_attr
from sqlalchemy.orm import as_declarative from sqlalchemy.orm import as_declarative
@@ -23,6 +23,11 @@ class Base(AutoAnnotateMixin, AutoInitMixin):
# TODO: Add automated foreign key resolution # TODO: Add automated foreign key resolution
# Add name to primary key constraint to ensure alembic can pick it up later
@declared_attr
def __table_args__(cls):
return (PrimaryKeyConstraint("id", name=f"pk_{cls.__tablename__}"),)
# Generate __tablename__ automatically # Generate __tablename__ automatically
@declared_attr @declared_attr
def __tablename__(cls) -> str: def __tablename__(cls) -> str:

View File

@@ -145,3 +145,21 @@ def password_change_mail(email: str) -> bool:
if re.status_code != 200: if re.status_code != 200:
raise HTTPException(re.status_code, re.json()) raise HTTPException(re.status_code, re.json())
return True return True
def user_password_change_ticket(user_id: str) -> str:
re = requests.post(
f"https://{AUTH0_DOMAIN}/api/v2/tickets/password-change",
headers={"Authorization": f"Bearer {get_management_token()}"},
json={
"user_id": user_id,
"client_id": AUTH0_CLIENT_ID,
"ttl_sec": 0,
"mark_email_as_verified": False,
"includeEmailInRedirect": False,
},
timeout=5,
)
if re.status_code != 201:
raise HTTPException(re.status_code, re.json())
return re.json()["ticket"]

View File

@@ -1 +1 @@
stripe==12.2.0 # Stripe stripe==15.2.0 # Stripe