Регистрация пользователей в Albireo CMS
Админ-панель доступна по адресу ваш-сайт/admin. Для входа требуется авторизация, которую можно пройти по адресу ваш-сайт/login.
Первый вход. Регистрация админа
Перед тем, как осуществлять вход, следует настроить пользователей системы. Для этого скопируйте файл system/config/users.php
как website/config/users.php
.
return [ 'admin' => [ // логин 'username' => 'admin', // совпадает с логином = ключ массива 'nik' => 'Admin', 'hash' => 'сюда нужно разместить сгенерированный хэш пароля', 'level' => ['admin', 'reader'], 'expiration' => mktime(0, 0, 0, 1, 1, 2031), ], ];
Придумайте логин, который указывается как ключ массива и поле username
(поэтому он уникальный). Укажите время действия записи в поле expiration
. Уровень доступа указывается как разрешения в виде массива. Разрешение admin
— это предопределенное разрешение для админа. Разрешение reader
вы можете использовать для зарегистрированных читателей сайта (или поменять на любое другое).
Поле hash
должно содержать хэш пароля. Хэш генерируется по особому алгоритму и зависит от конфигурационного ключа secretKey
в config.php
. Если поменять этот секретный ключ, то он сделает все хэши пользователей недействительными. По умолчанию секретный ключ зависит от адреса вашего сайта, но для большей безопасности вы можете его поменять.
После этого наберите в браузере адрес ваш-сайт/generate-user-hash, введите свой логин и пароль, а потом нажмите кнопку «Получить hash». Появится строчка, которую и нужно скопировать в hash
.
Проверьте корректность входа в админ-панель.
Все эти операции нужны для того, чтобы обеспечить качественную защиту вашего сайта.
Регистрация других пользователей
После того, как создан админ сайта, можно регистрировать и других пользователей. Для этого нужно добавить данные в файл website/config/users.php
и попросить пользователя создать хэш по адресу ваш-сайт/generate-user-hash. Пароль в Albireo CMS нигде не хранится, поэтому это действие может сделать только сам владелец пароля (либо вы можете сами его придумать за него).
Запрет генерации хэша
Вы можете запретить генерацию хэша сторонними пользователями. Для этого достаточно переименовать файл website/pages/specific/auth/generate-user-hash.php
в website/pages/specific/auth/_generate-user-hash.php
. Другой вариант — это открыть этот файл и убрать комментарий, как написано там же в инструкции. В этом случае страница станет доступна только админу.
Система разрешений в 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()
только сверяет разрешения, указанные на странице с теми, что прописаны у пользователя. Если убрать эту функцию, то страница будет доступна всем пользователям сайта.