Приложение Users, системы Карта Успеха — различия между версиями

Материал из m6a
Перейти к: навигация, поиск
(Новая страница: «== 1. Общее описание == Приложение `users` отвечает за управление пользователями системы, вклю…»)
 
(6.2 Функциональные представления)
 
(не показаны 3 промежуточные версии этого же участника)
Строка 24: Строка 24:
  
 
=== 3.1 Формы ===
 
=== 3.1 Формы ===
* (Перечислите формы, используемые в приложении, например: `UserCreationForm`, `AuthenticationForm`, `UserProfileForm`)
+
  class CustomUserCreationForm:
 +
    fields = ['username', 'email', 'password']
 +
 
 +
  class CustomUserChangeForm:
 +
    fields = ['username', 'first_name', 'last_name', 'email']
  
 
=== 3.2 Валидация ===
 
=== 3.2 Валидация ===
Строка 32: Строка 36:
  
 
== 4. URL маршруты ==
 
== 4. URL маршруты ==
* (Перечислите основные URL маршруты приложения и их соответствие представлениям:
+
  /users/
** `/login/` - `login_view`
+
  ├── profile/         # Профиль пользователя
** `/register/` - `RegisterView`
+
  ├── login/           # Вход в систему
** `/profile/` - `UserProfileView`
+
  ├── register/       # Регистрация
** `/password_reset/` - `CustomPasswordResetView`
+
  ├── logout/         # Выход
)
+
  └── password_reset/ # Восстановление пароля
 +
      └── done/        # Страница после запроса сброса
  
 
== 5. Шаблоны ==
 
== 5. Шаблоны ==
Строка 57: Строка 62:
  
 
=== 6.1 Классовые представления ===
 
=== 6.1 Классовые представления ===
* (Перечислите и опишите классовые представления, используемые в приложении, например:
+
  class UserProfileView(LoginRequiredMixin, View):
** `RegisterView` - Класс для регистрации пользователей.
+
    # Управление профилем
** `LogoutView` - Класс для выхода из системы.
+
 
** `UserProfileView` - Класс для отображения и редактирования профиля пользователя.
+
  class RegisterView(View):
)
+
    # Регистрация пользователей
 +
 
 +
  class CustomPasswordResetView(auth_views.PasswordResetView):
 +
    # Сброс пароля
  
 
=== 6.2 Функциональные представления ===
 
=== 6.2 Функциональные представления ===
* (Перечислите и опишите функциональные представления, используемые в приложении, например:
+
  def login_view(request):
** `login_view` - Функция для аутентификации пользователя.
+
    # Обработка входа
)
+
  
 
== 7. Особенности реализации ==
 
== 7. Особенности реализации ==

Текущая версия на 13:51, 30 марта 2025

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

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