From 73785faebf1c9d33b94801983084339315176b0d Mon Sep 17 00:00:00 2001 From: Brian Wiborg Date: Sat, 27 Sep 2025 14:09:14 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=93=9D=20Add=20model-level=20permissions?= =?UTF-8?q?=20example?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index d670cc5..d42fb1d 100644 --- a/README.md +++ b/README.md @@ -225,7 +225,7 @@ ohmyapi createsuperuser ## Permissions -### API-Level +### API-Level Permissions Use FastAPI's `Depends` pattern to implement API-level access-control. @@ -255,3 +255,23 @@ async def list(user: auth.User = Depends(permissions.require_authenticated)): ... ``` +### Model-Level Permissions + +Use Tortoise's `Manager` to implement model-layer permissions. + +```python +from ohmyapi.db import Manager +from typing import Callable + + +class TeamManager(Manager): + async def for_user(self, user): + return await self.filter(members=user).all() + + +class Team(Model): + [...] + + class Meta: + manager = TeamManager() +```