Приложение Users, системы Карта Успеха
Материал из m6a
Содержание
1. Общее описание
Приложение `users` отвечает за управление пользователями системы, включая регистрацию, аутентификацию, управление профилем и восстановление пароля.
2. Функциональность
2.1 Аутентификация
- Вход в систему (`login_view`)
- Регистрация новых пользователей (`RegisterView`)
- Выход из системы (`LogoutView`)
- Восстановление пароля (`CustomPasswordResetView`)
2.2 Управление профилем
- Просмотр профиля (`UserProfileView`)
- Редактирование профиля
- Обновление личных данных
2.3 Безопасность
- Валидация email
- Проверка уникальности email
- Безопасное хранение паролей
- Защита от CSRF
3. Модели и формы
3.1 Формы
class CustomUserCreationForm: fields = ['username', 'email', 'password']
class CustomUserChangeForm: fields = ['username', 'first_name', 'last_name', 'email']
3.2 Валидация
- Проверка уникальности email
- Валидация паролей
- Проверка обязательных полей
4. URL маршруты
/users/ ├── profile/ # Профиль пользователя ├── login/ # Вход в систему ├── register/ # Регистрация ├── logout/ # Выход └── password_reset/ # Восстановление пароля └── done/ # Страница после запроса сброса
5. Шаблоны
5.1 Основные шаблоны
- `login.html` - форма входа
- `register.html` - форма регистрации
- `profile.html` - профиль пользователя
5.2 Шаблоны восстановления пароля
- `password_reset.html` - запрос сброса
- `password_reset_done.html` - подтверждение отправки
- `password_reset_confirm.html` - установка нового пароля
- `password_reset_complete.html` - завершение сброса
- `password_reset_email.html` - шаблон email
- `password_reset_subject.txt` - тема email
6. Представления (Views)
6.1 Классовые представления
class UserProfileView(LoginRequiredMixin, View): # Управление профилем
class RegisterView(View): # Регистрация пользователей
class CustomPasswordResetView(auth_views.PasswordResetView): # Сброс пароля
6.2 Функциональные представления
def login_view(request): # Обработка входа
7. Особенности реализации
7.1 Аутентификация
- Использование email как username
- Кастомная форма входа
- Сообщения об ошибках
7.2 Профиль пользователя
- Отображение даты регистрации
- Редактирование личных данных
- Валидация изменений
7.3 Восстановление пароля
- Отправка email
- Временные ссылки
- Подтверждение сброса
8. Безопасность
8.1 Защита
- CSRF токены
- Хеширование паролей
- Проверка прав доступа
8.2 Валидация
- Проверка email
- Валидация паролей
- Проверка уникальности
9. Интерфейс
9.1 Формы
- Стилизованные поля ввода
- Валидация на стороне клиента
- Сообщения об ошибках
9.2 Навигация
- Ссылки между формами
- Редиректы после действий
- Информативные сообщения
10. Интеграция
10.1 С системой
- Интеграция с Django Auth
- Использование стандартных компонентов
- Кастомизация шаблонов
10.2 С другими приложениями
- Связь с основными моделями
- Использование в других приложениях
- Общий контекст пользователя