README.md

    custom_permissions.json Этот файл содержит конфигурацию пользовательских разрешений для ролей в системе. В нем хранятся данные о кастомных правах доступа, таких как POSIX-права (например, rwx) и связанные с ними директории. Используется серверной частью (routes.py) для применения пользовательских прав доступа к файлам и директориям.

    init_db.py Скрипт для инициализации ролей в базе данных SQLite. Он загружает данные о ролях из файла roles_permissions.json, проверяет, существуют ли роли в базе, и если их нет, создает новые записи с помощью модели Role. Используется для начальной настройки ролей при запуске приложения.

    auth.py Модуль отвечает за аутентификацию пользователей. Содержит функции для хеширования паролей с использованием библиотеки bcrypt, проверки паролей и выполнения входа в систему. Функция login ищет пользователя по имени, проверяет пароль и возвращает данные пользователя при успешной аутентификации.

    main.py Основной скрипт для запуска HTTP-сервера. Использует HTTPServer из модуля http.server для обработки запросов через класс RequestHandler (определён в routes.py). Инициализирует базу данных и запускает сервер на порту 8080. Это точка входа для серверной части приложения.

    models.py Модуль определяет модели данных User и Role для работы с базой данных SQLite. Класс User управляет информацией о пользователях (имя, хеш пароля, роль, срок действия). Класс Role хранит данные о ролях и их разрешениях. Также содержит функцию initialize_db для создания таблиц пользователей и ролей в базе данных.

    routes.py Модуль реализует обработку HTTP-запросов для REST API. Класс RequestHandler обрабатывает GET, POST, PUT и DELETE запросы для управления пользователями, ролями, директориями и кастомными разрешениями. Включает функции для создания/удаления пользователей в системе, управления правами доступа (через chmod и chown), а также взаимодействия с файлом custom_permissions.json.

    permissions.py Модуль реализует декоратор permission_required, который проверяет, имеет ли пользователь необходимые права для выполнения определённых действий. Проверяет роль пользователя и её разрешения, возвращая ошибку, если прав недостаточно. Используется для защиты функций, требующих определённых привилегий.

    roles_permissions.json Файл конфигурации, содержащий список ролей и их стандартные и пользовательские разрешения. Определяет, какие действия (например, управление пользователями, доступ к логам) разрешены для каждой роли. Используется скриптом init_db.py для начальной загрузки ролей в базу данных.

    gui.py Модуль реализует графический интерфейс на основе PyQt5 для управления пользователями и ролями. Включает главное окно (RBACApp) с таблицами для отображения пользователей и ролей, а также диалоговые окна для добавления и редактирования пользователей (AddUserDialog, EditUserDialog) и ролей (AddRoleDialog, EditRoleDialog). Поддерживает поиск, добавление пользовательских разрешений и взаимодействие с сервером через REST API.

    Конвейеры
    0 успешных
    0 с ошибкой