fix: can_user_edit теперь учитывает default_can_edit

Проблема: даже после включения default_can_edit=True обычные
пользователи не могли создавать события в календаре.

Причина: метод Calendar.can_user_edit() проверял только:
- is_superuser/is_staff
- is_owner()
- subscription.can_edit
НО НЕ проверял default_can_edit для случая когда подписки нет.

Решение: добавлена проверка default_can_edit после проверки подписки.
Теперь если подписки нет, но default_can_edit=True, пользователь
может редактировать.

Это позволяет создавать публичные календари, где ВСЕ пользователи
могут создавать события без явных подписок.
This commit is contained in:
admin i 2026-02-23 12:38:14 +03:00
parent 2c70730a17
commit 8825434b7a

View File

@ -251,6 +251,11 @@ class Calendar(models.Model):
if subscription:
return subscription.can_edit
# Если подписки нет, проверяем default_can_edit
# (для публичных календарей, где пользователь может видеть, но не подписан)
if self.default_can_edit:
return True
return False
def can_user_manage(self, user):