ALBIREO CMS
version: 2025.11.01

Регистрация пользователей в Albireo CMS

Админ-панель доступна по адресу ваш-сайт/admin. Для входа требуется авторизация, которую можно пройти по адресу ваш-сайт/login.

В Lite-версии Albireo CMS нет админ-панели, поэтому работа с юзерами имеет смысл только, если вы хотите использовать разные уровни доступа к контенту.

Способы регистрации пользователей в Albireo CMS

Система поддерживает два вида регистрации пользователей:

  • вручную админом через конфигурационный файл,
  • самостоятельная регистрация пользователей сайта.

В первом случае нужно использовать конфигурационный файл, во втором всё работает автоматически (если разрешена регистрация).

Учитывайте, что пользователи, заданные через конфигурацию имеют более высокий приоритет перед теми, кто зарегистрируется самостоятельно.

Задайте секретную фразу

Перед регистрацией укажите секретный ключ в website/config/config.php (поле secretKey). По умолчанию система создаёт ключ, основанный на адресе текущего сайта, но намного лучше, если вы придумаете его самостоятельно. Также вы можете воспользоваться адресом ваш-сайт/generate-user-hash где будет предложен случайный секретный ключ — его можно скопировать в файл конфигурации.

// Секретная фраза - «соль» для шифрования данных
'secretKey' => 'c62fa302a734964329d44e31baf4277314ad320e2e74440673104953eb646cc7', 

Если поменять секретный ключ, то он сделает все хэши паролей пользователей недействительными (им придётся заново регистрироваться или указывать новые пароли).

Первый пользователь - админ

Пока на сайте нет зарегистрированных пользователей, откройте страницу ваш-сайт/generate-user-hash.

Генерация хэша пароля

Введите желаемый логин и пароль, после чего нажмите один или несколько раз кнопку «Generate hash».

Скопируйте файл system/config/users.php как website/config/users.php.

В нём будет закомментированный пример добавления юзера. Уберите комментарий, чтобы получилось примерно так:

return [
    [ 
        'login' => 'admin', // логин для входа
        'nickname' => 'Admin', // ник для сайта
        'level' => 'admin, reader', // разрешения через запятую
        'expiration' => mktime(0, 0, 0, 1, 1, 2031), // время действия h  m  s  month day year
        'email' => 'my@gmail.com', // емайл
        'emoji' => '⭐', // эмодзи для вывода
        
        'created_at' => '2025-01-01 00:00:00', // дата регистрации YYYY-MM-DD HH:MM:SS
        'is_verified' => 1, // подтвержденный email-адрес/аккаунт

        // первый хэш для LOCALHOST, второй для Интернета (нужно сгенерировать код на нём и вставить сюда)
        // 'hash' => (LOCALHOST ? 'хэш для LOCALHOST' : 'хэш с сайта'),
        
        // или один хэш для сайта и LOCALHOST
        'hash' => 'хэш',
        
        // любые дополнительные данные
        'meta' => [
            'my1' => 'текст',
            'my2' => 'текст',
        ],
    ],
];

Укажите логин и хэш, который нужно скопировать со страницы генерации. После этого сохраните файл.

Теперь вы можете проверить корректность входа на сайт через форму логина ваш-сайт/login. Если всё нормально, то вы получите доступ к странице профиля ваш-сайт/user.

Эта процедура необходима для того, чтобы не хранить пароли пользователей в открытом виде. Albireo CMS использует современное шифрование с помощью password_verify(), что гарантирует безопасность данных, даже в случае утечки.

Обратите внимание, что страницу ваш-сайт/generate-user-hash нужно открыть до того, как будет зарегистрирован первый пользователь. Как только вы зарегистрируете первого пользователя, доступ к странице будут иметь только те, кто имеет разрешение admin (то есть админу нужно залогиниться на сайте).

Регистрация других пользователей

После того, как создан админ сайта, можно регистрировать и других пользователей.

Первый способ: добавить данные в файл website/config/users.php. В этом случае админ должен придумать логин и пароль пользователя сам.

Второй способ: разрешить самостоятельную регистрацию пользователей. Для этого в config.php используйте ключ registerUsers:

// разрешить самостоятельную регистрацию юзеров через сайт
'registerUsers' => true,

После этого в форме логина появится ссылка на страницу регистрации ваш-сайт/register. Заполнив форму, любой посетитель сможет зарегистрироваться на вашем сайте.

По умолчанию у таких пользователей устанавливается разрешение reader. Сами пользователи сохраняются в базе users.sqlite. Если удалить этот файл, то все регистрации будут утеряны. Полное управление пользователями будет доступно в админ-панели.
❗️ ВАЖНО! В текущей версии Albireo CMS, полный цикл работы с пользователями ещё не до конца доделан. Поэтому регистрацию посетителей нужно рассматривать как начальный каркас для будущих работ. Если текущего функционала достаточно для вашего сайта, то вы можете его использовать без ограничений.

Система разрешений в Albireo CMS

Разрешения пользователя указываются в ключе level через запятую. Каждый элемент — это некий уровень доступа для этого пользователя. Система использует только одно предопределенное разрешение — «admin», остальные уровни вы можете придумать самостоятельно.

Уровень доступа используется для ограничений доступа к странице целиком или отдельных её частей. Например нужно ограничить доступ к странице только для зарегистрированных пользователей с доступом «reader». Для этого у страницы указываем доступ:

...
user-level: reader 
...

if (noUserAccess(message: '<h2>Access denied</h2>')) return;

?>

Функция noUserAccess() проверит уровень доступа и выдаст соответствующее предупреждение.

Если нужно скрыть только часть текста, то делается это так:

открытый текст
<?php if (noUserAccess(snippet: 'access4')) goto end; ?>
закрытый текст
<?php end: ?>

Если страница должна быть доступна для разных разрешений, то их следует указать через запятую:

user-level: reader, admin, subscribe

Фактически функция noUserAccess() только сверяет разрешения, указанные на странице с теми, что прописаны у пользователя. Если убрать эту функцию, то страница будет доступна всем пользователям сайта.

Генерации хэша сторонними посетителями

Вы можете разрешить посетителям генерировать хэш пароля на странице generate-user-hash. Например для того, чтобы они сами придумывали пароль. Для этого нужно открыть файл website/pages/specific/auth/generate-user-hash.php и закомментировать поле user-level:

# было
user-level: admin

# станет
# user-level: admin

Таким образом пользователь может сам сгенерировать хэш пароля, который отправит админу для внесения в файл конфигурации users.php (то есть админ не будет знать пароль).

Важно! Страница generate-user-hash — это просто генератор случайных данных, который не имеет никакого отношения к данным сайта. Поэтому даже, если он останется открытым, то это никак не сказывается на безопасности данных. Каждая генерация и обновление страницы просто создаёт случайны набор данных и не более того.

Если на сайте не нужны пользователи

Возможна ситуация, когда сайту не требуются пользователи. В этом случае вам не нужно создавать конфигурационный файл users.php, а файл website/pages/specific/auth/generate-user-hash.php можно удалить или переименовать в _generate-user-hash.php, что сделает его недоступным.