o-log / php-auth
User authentication and permission management.
Installs: 1 490
Dependents: 2
Suggesters: 0
Security: 0
Stars: 1
Watchers: 3
Forks: 1
Open Issues: 3
Language:JavaScript
Requires
- php: >=7.2
- o-log/php-crud: 9.*
- o-log/php-layouts: 3.*
- o-log/php-model: 10.*
- o-log/php-router: 2.*
Requires (Dev)
- phpunit/phpunit: 5.5.*
- dev-master
- 6.4
- 6.3
- 6.2
- 6.1
- 6.0
- 5.0
- 4.3
- 4.2
- 4.1
- 4.0
- 3.3
- 3.2
- 3.1
- 3.0
- 2.71
- 2.70
- 2.69
- 2.68
- 2.67
- 2.66
- 2.65
- 2.64
- 2.63
- 2.62
- 2.61
- 2.60
- 2.59
- 2.58
- 2.57
- 2.56
- 2.55
- 2.54
- 2.53
- 2.52
- 2.50
- 2.49
- 2.48
- 2.47
- 2.46
- 2.45
- 2.44
- 2.43
- 2.42
- 2.41
- 2.40
- 2.39
- 2.38
- 2.37
- 2.36
- 2.35
- 2.34
- 2.33
- 2.32
- 2.31
- 2.30
- 2.29
- 2.28
- 2.27
- 2.26
- 2.25
- 2.24
- 2.23
- 2.22
- 2.21
- 2.20
- 2.19
- 2.18
- 2.17
- 2.16
- 2.15
- 2.14
- 2.13
- 2.12
- 2.11
- 2.10
- 2.9
- 2.8
- 2.7
- 2.6
- 2.5
- 2.4
- 2.3
- 2.2
- 2.1
- 2.0
- 1.5
- 1.4
- 1.3
- 1.2
- 1.1
- 1.0
- 0.3
- 0.2
- 0.1
- dev-sf_config_fix
- dev-mk-logger
- dev-mk-perm-to-user
- dev-email_requested_field
- dev-auth_11
- dev-auth_1
- dev-mk-type-hinting
- dev-imb_153_client
- dev-paa_2
- dev-mk-cookies3
- dev-mk-cookies2
- dev-mk-cookies
- dev-imb_880_collapsible
- dev-imb_844_2
- dev-imb_844_users
- dev-mk-user-to-group-admin
- dev-paa_1
- dev-mk-owner-filter
- dev-mk-owner-filter-sql
- dev-mk-has-permissions
- dev-mk-user-owns-obj
- dev-fix_filters
- dev-fix_forms
- dev-ololo
- dev-comment_field
- dev-admin-link
This package is auto-updated.
Last update: 2025-02-05 12:48:20 UTC
README
Подключить модуль в composer.json
"require": {
"o-log/php-auth": "2.*"
}
Выполнить composer update
Регистрируем роутинг для админки и страниц регистрации и авторизации: добавить в точку входа сайта строку
\OLOG\Auth\RegisterRoutes::registerRoutes();
Добавляем в конфиг сайта базу данных с идентификатором DB_NAME_PHPAUTH и указать для нее файл sql ...
DBConfig::setDBSettingsObj(
AuthConstants::DB_NAME_PHPAUTH,
new DBSettings('localhost', 'db_projectname', 'root', '1', 'vendor/o-log/php-auth/db_phpauth.sql')
);
- Выполнить cli.php в корне сайта чтобы создать таблицы для пользователей и записи пермишенов
После этого админка авторизации должна заработать по адресу /admin/auth
Изначально она будет недоступна, потому что нет ни одного пользователя, который имел бы к ней доступ. Чтобы создать такого пользователя выполняем команду:
php bin/pa_makeuser.php username password
Замечание: сейчас для хранения сессий используется только мемкеш, поэтому на компе должен быть рабочий мемкеш и в конфиге должна быть настройка такого вида:
CacheConfig::addServerSettingsObj(new MemcacheServerSettings('localhost', 11211));
Создание нового разрешения в другом модуле
Создаем константу в классе Модуль/Permissions (название класса можно использовать любое, это просто удобное соглашение)
<?php
namespace MODULENAME;
class Permissions
{
const PERMISSION_MODULENAME_ACCESS_ADMIN = 'PERMISSION_MODULENAME_ACCESS_ADMIN';
}
Имя константы примерно такое: PERMISSION_MODULENAME_MANAGE_NODES где MODULENAME - имя вашего модуля, а MANAGE_NODES - пример названия собственно разрешения.
Эта константа нужна для использования в коде для проверки разрешений.
Имя разрешения надо вставить в таблицу разрешений: руками добавить sql-запрос в файл sql-запросов модуля. Вот пример:
'insert into olog_auth_permission (title) values ("PERMISSION_MODULENAME_MANAGE_NODES") /* 364563456 */;',
Запись в таблице будет использоваться админкой для назначения разрешений операторам.
Инструкция по добавлению владельца к модели
Добавить поля владельцев с внешними ключами
- owner_user_id int nullable
- owner_group_id int nullable
Добавить в implements InterfaceOwner
Добавить в beforeSave модели инициализацию полей владельцев из текущего пользователя и его основной группы:
public function beforeSave()
{
OwnerAssign::assignCurrentUserAsOwnerToObj($this);
}
Добавить фильтры к спискам: CRUDTableFilterOwner
Добавить проверку прав в редакторы: OwnerCheck::currentUserOwnsObj()
Если нужно - проставить владельцев для существующих моделей