- requests_app/rules.py: 8 предикатов + 10 правил * Предикаты: is_request_author, is_request_assignee, can_manage_requests и др. * Правила: view/change/delete/assign/approve requests, комментирование, статистика - communications/rules.py: 9 предикатов + 15 правил * Предикаты: is_chat_member, is_chat_owner, is_chat_admin, is_message_author и др. * Правила: view/send/change/delete чаты и сообщения, управление участниками, закрепление * Включены примеры для WebSocket consumers - calendar_app/rules.py: 9 предикатов + 12 правил * Предикаты: is_calendar_owner, is_personal_calendar, has_calendar_access и др. * Правила: view/change/delete календари и события, подписки, экспорт iCal, приглашения - procurement/rules.py: 8 предикатов + 13 правил * Предикаты: is_procurement_manager, is_purchase_request_author, can_approve_purchases и др. * Правила: view/change/delete заявки на закупку, управление поставщиками и договорами - feed/rules.py: 8 предикатов + 11 правил * Предикаты: is_post_author, can_publish_posts, can_moderate_posts и др. * Правила: view/create/change/delete посты, публикация, закрепление, комментирование, реакции Во всех apps.py добавлен импорт rules для автозагрузки правил при старте Django
20 lines
747 B
Python
20 lines
747 B
Python
# backend\communications\apps.py
|
|
from django.apps import AppConfig
|
|
|
|
|
|
class CommunicationsConfig(AppConfig):
|
|
default_auto_field = "django.db.models.BigAutoField"
|
|
name = "communications"
|
|
|
|
def ready(self):
|
|
import communications.signals
|
|
import communications.notification_signals # Подключаем signals уведомлений
|
|
import communications.rules # django-rules: регистрация предикатов и правил доступа
|
|
|
|
def create_main_global_chat(sender, **kwargs):
|
|
from communications.models import Chat
|
|
|
|
if not Chat.objects.filter(type="global", is_main=True).exists():
|
|
Chat.objects.create(type="global", is_main=True)
|
|
|