Skip to content

Latest commit

 

History

History
39 lines (34 loc) · 3.79 KB

TODO-SERVICES.md

File metadata and controls

39 lines (34 loc) · 3.79 KB

Сервисы являются основой бизнес-логики : Сервисы будут содержать всю важную логику взаимодействия между моделями, базой данных и внешними компонентами. Без них ваше приложение не сможет полноценно работать, даже если будет реализована система аутентификации. Аутентификация и авторизация — это "обёртка" над бизнес-логикой : Система разграничения прав нужна для того, чтобы контролировать доступ к функциональности, но сам функционал должен быть уже реализован. Например, если у вас нет метода для создания устройства (create_device), то ограничение доступа к этому методу не имеет смысла. Приоритетность задач : На данном этапе важно сосредоточиться на ключевых функциях вашего приложения (например, управление устройствами, зонами, пользователями). Аутентификация и авторизация могут быть добавлены稍 позже, когда основная логика будет готова.

Определите основные операции для каждой модели : Для User: регистрация, аутентификация, изменение пароля, получение списка пользователей. Для Storage: создание, удаление, обновление, получение списка хранилищ. Для Device: добавление нового устройства, получение списка устройств, связь с зонами. Для Sensor/Regulator: управление параметрами, получение данных с датчиков. Разработайте интерфейсы сервисов : Создайте классы или функции для каждой операции. Например, UserService, StorageService, DeviceService. Используйте принцип единой ответственности : Каждый сервис должен заниматься только своей областью (например, UserService работает только с пользователями).

Тестируйте сервисы : Напишите юнит-тесты для каждого метода сервиса. Убедитесь, что они работают корректно.

======================= Когда добавлять Flask-Login? Добавьте Flask-Login после того, как основные сервисы будут готовы. Вот план действий:

Инициализируйте Flask-Login : Подключите LoginManager и настройте его. Определите функцию загрузки пользователя (load_user). Добавьте аутентификацию : Используйте декоратор @login_required для защиты маршрутов. Реализуйте маршруты /login и /logout. Разграничьте права доступа : Если вам нужно разграничение ролей, используйте дополнительные поля в модели User (например, role). Реализуйте проверку ролей через кастомные декораторы или интегрируйте Flask-Principal.