mirror of
https://github.com/PostHog/posthog.git
synced 2024-11-25 11:17:50 +01:00
34d0da70d9
Also remove type annotations for Django fields, due to updates to the stubs and possibly to mypy they are actively unhelpful now.
31 lines
1.1 KiB
Python
31 lines
1.1 KiB
Python
from django.db import models
|
|
|
|
from posthog.models.dashboard import Dashboard
|
|
from posthog.models.utils import UUIDModel, sane_repr
|
|
|
|
|
|
# We call models that grant a user access to some resource (which isn't a grouping of users) a "privilege"
|
|
class DashboardPrivilege(UUIDModel):
|
|
dashboard = models.ForeignKey(
|
|
"posthog.Dashboard",
|
|
on_delete=models.CASCADE,
|
|
related_name="privileges",
|
|
related_query_name="privilege",
|
|
)
|
|
user = models.ForeignKey(
|
|
"posthog.User",
|
|
on_delete=models.CASCADE,
|
|
related_name="explicit_dashboard_privileges",
|
|
related_query_name="explicit_dashboard_privilege",
|
|
)
|
|
level = models.PositiveSmallIntegerField(choices=Dashboard.RestrictionLevel.choices)
|
|
added_at = models.DateTimeField(auto_now_add=True)
|
|
updated_at = models.DateTimeField(auto_now=True)
|
|
|
|
class Meta:
|
|
constraints = [
|
|
models.UniqueConstraint(fields=["dashboard", "user"], name="unique_explicit_dashboard_privilege")
|
|
]
|
|
|
|
__repr__ = sane_repr("dashboard", "user", "level")
|