Приложение Users, системы Карта Успеха

Материал из m6a
Версия от 13:51, 30 марта 2025; Vshpagin (обсуждение | вклад) (6.2 Функциональные представления)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

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 С другими приложениями

  • Связь с основными моделями
  • Использование в других приложениях
  • Общий контекст пользователя