Учетная запись пользователей - UserManagement

Аккаунт пользователей важен для безопасности и управлением над WEBCMS.

UserManagement - выполняет работу по управлению учетными записями пользователй.

В него входят функции:

  • Создание пользователя.
  • Создание супер пользователя.
  • Управление пользователем.
  • Подробнее о каком то пользователе.
  • Список пользователей которые зарегистрированы.
  • Хранение информации о пользователе.
  • Проверка заргистрирован ли пользователь.
  • Аутентикация пользователя. Верификация пароля и логина.

Документация по UserManagement

Простой пример по создании нового пользователя:

from core.managers.user import UserManagement
from core.logging import Log

# Объявляем класс UserManagement
user_manager = UserManagement()

# Создаем пользователя методом UserManagement.create_user()
create_user = user_manager.create_user(username="Zahcoder34", email="example@gmail.com", password="qwerty123", group=None)

# Делаем проверку. Если пользователь создан успешно. То метод create_user() возвращает True. Если нет, то False
if create_user:

    # Отображаем в консоль о том что наш пользователь создан успешно
    Log("Пользователь Zahcoder34 успешно создан!", 3)
    # В консоли: [success (timestamp)] Пользователь Zahcoder34 успешно создан!

Создание нового пользователя (Регистрация)

UserManagement уже обладает функциональностью для создании пользователя.

Для начало необходимо импортировать UserManagement

from core.managers.auth.user import UserManagement

# Если вы вызываете UserManagement с директории core:
from .managers.auth.user import UserManagement

# Если вы вызываете UserManagement с директории managers:
from .auth.user import UserManagement

так-же необходимо объявить его в переменную. Если вам нужен доступ к UserManagement с класса. То можно объявить переменную класса.

Метод для создании нового пользователя:

UserManagement.create_user(username: str, email: str, password: str, group: int = None)

Аргументы:

  • username: string - Новая имя пользователя
  • email: string - Почта нового пользователя
  • password: string - Пароль нового пользователя. UserManagement автоматически зашифрует пароль в bcrypt
  • group: int (по умолчанию: None) - ID идентификатор группы которой пользователь будет унаследован. Если не указать или указать в значение None то пользователь не будет наследоваться никакой группы.

Возвращает:

  • True (bool) - Пользователь успешно создан.
  • False (bool) - Не получилось создать нового пользователя.

Примеры

from core.managers.auth.user import UserManagement
from core.logging import Log

# Объявляем класс UserManagement
user_manager = UserManagement()

# Создаем пользователя методом UserManagement.create_user()
create_user = user_manager.create_user(username="Zahcoder34", email="example@gmail.com", password="qwerty123", group=None)

# Делаем проверку. Если пользователь создан успешно. То метод create_user() возвращает True. Если нет, то False
if create_user:

    # Отображаем в консоль о том что наш пользователь создан успешно
    Log("Пользователь Zahcoder34 успешно создан!", 3)
    # В консоли: [success (timestamp)] Пользователь Zahcoder34 успешно создан!

Создание пользователя в классе

from core.managers.auth.user import UserManagement
from core.logging import Log

class ClassA:

    # Данная функция вызывается при инициализации класса
    def __init__(cls):
        # Объявляем переменную пользователя
        cls.user_manager = UserManagement()

    # Какая-то нужная функция
    def some_function(cls):
        # Создание пользователя
        create_user = cls.user_manager.create_user(username="Zahcoder34", email="example@gmail.com", password="qwerty123")

        # Делаем проверку создался ли пользователь.
        if create_user:
            # Отображаем в консоль о том что наш пользователь создан успешно
            return Log("Пользователь Zahcoder34 успешно создан!", 3)

# Объявляем класс. После этого вызывается функция __init__()
class_a = ClassA()

# Вызываем функцию
class_a.some_function()

Создание супер пользователя

При необходимсти. Необходимо создать супер пользователя у которого есть * в Permissions.

UserManagement обладает таким методом как create_super_user() при помощи которого, можно быстро создать супер пользователя. У которого будут все права.

Для начало необходимо импортировать UserManagement

from core.managers.auth.user import UserManagement

# Если вы вызываете UserManagement с директории core:
from .managers.auth.user import UserManagement

# Если вы вызываете UserManagement с директории managers:
from .auth.user import UserManagement

Так-же необходимо объявить его в переменную. Если вам нужен доступ к UserManagement с класса. То можно объявить переменную класса.

Метод для создании нового пользователя:

UserManagement.create_superuser(username: str, email: str, password: str)

Аргументы:

  • username: string - Имя пользователя нового супер пользователя
  • email: string - Почта нового супер пользователя
  • password: string - Пароль нового супер пользователя, в последствии он будет автоматически зашифрован UserManagement

Возвращает:

  • True: boolean - Пользователь успешно создан и к нему присвоена * в Permissions.
  • False: boolean - Не удалось создать пользователя.
  • None - Не удалось создать пользователя.

Примеры:

from core.managers.auth.user import UserManagement

# Объявляем класс UserManagement
user_manager = UserManagement()

# Создаем супер пользователя методом UserManagement.create_super_user()
create_user = user_manager.create_super_user(username="Zahcoder34", email="example@gmail.com", password="qwerty123")

Пример с классом:

from core.managers.auth.user import UserManagement
from core.managers.logging import Log

class ClassA:
    # Вызов при инициализации класса
    def __init__(cls):

        # Объявляем класс UserManagement
        cls.user_manager = UserManagement()

    def some_func(cls):
        # Создаем пользователя
        create_user = cls.user_manager.create_super_user("Zahcoder34", "example@gmail.com", "qwerty123")

        return create_user

# Тестируем
class_a = ClassA()

# Выводим в консоль результат. Как правило если пользователь создан успешно, ответ положительный. Если нет = None
Log(class_a.some_func(), 0)