o-log/php-auth

There is no license information available for the latest version (6.4) of this package.

User authentication and permission management.

Installs: 1 481

Dependents: 2

Suggesters: 0

Security: 0

Stars: 1

Watchers: 3

Forks: 1

Open Issues: 3

Language:JavaScript


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')
);
  1. Выполнить 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()

Если нужно - проставить владельцев для существующих моделей