# Установка системы управления пользователями

## Быстрая установка

### 1. База данных
```bash
# Создайте базу данных и выполните SQL скрипт
mysql -u root -p < sql/script.sql
```

### 2. Настройка подключения
Отредактируйте `includes/db.php` с вашими параметрами БД.

### 3. Создание администратора
```bash
# Запустите скрипт настройки
php setup_admin.php
```

### 4. Удалите setup файл
```bash
# Удалите файл настройки для безопасности
rm setup_admin.php
```

### 5. Вход в систему
- URL: `http://your-domain/pages/login.php`
- Логин: `admin`
- Пароль: `admin123`

## Что изменилось

✅ **Новая система аутентификации** - пользователи хранятся в БД  
✅ **Роли пользователей** - admin и user  
✅ **Управление пользователями** - создание, редактирование, удаление  
✅ **Статус активности** - можно деактивировать пользователей  
✅ **Безопасность** - пароли хешируются, роли проверяются  
✅ **Отслеживание** - кто создал разрешение  
✅ **Умная модель разрешений** - пользователи управляют своими формами  

## Новые возможности

### Для администраторов:
- Управление пользователями
- Полный доступ ко всем функциям
- Создание новых учетных записей
- Редактирование и удаление любых разрешений

### Для обычных пользователей:
- Создание разрешений
- Просмотр только своих разрешений
- **Редактирование своих разрешений**
- **Удаление своих разрешений**
- Скачивание PDF
- НЕ могут редактировать чужие формы

## Модель разрешений

### Принцип "Владелец может все"
- Пользователи видят и управляют только своими формами
- Администраторы видят и управляют всеми формами
- Безопасность на уровне данных

### Пример:
- **User A** создает форму → может редактировать/удалять только её
- **User B** создает форму → может редактировать/удалять только её  
- **Admin** → может редактировать/удалять все формы

## Структура файлов

- `pages/users.php` - управление пользователями
- `sql/script.sql` - обновленная схема БД
- `setup_admin.php` - скрипт настройки
- Обновлены все существующие страницы

## Безопасность

- Пароли хешируются с `password_hash()`
- Роли проверяются на уровне сессий
- SQL-инъекции предотвращены
- XSS-атаки предотвращены
- Пользователи изолированы друг от друга
