Production ware Acl - energy-coresky/air GitHub Wiki

Код Coresky содержит базовый функционал для внедрения пользователей в приложение. А продакшн продукт Acl, расширяет этот код типичным функционалом для управления правами доступа.

Установка

Продукт предназначен для управления правами доступа к объектам приложения. Может использоваться большинством SKY-приложений, в которых требуется подобный функционал. В Acl используется один контроллер c_acl.php. Продукт можно использовать с измененной адресацией и без изменения. В первом случае, потребуется настроить адрес доступа tune и применить реврайт. Адрес tune можно выбрать произвольно, например ctrl:

if ($cnt && 'ctrl' == $surl[0]) {
    common_c::$tune = array_shift($surl);
    $cnt--;
}

В этом случае, доступ к действиям контроллера, будет осуществляться по адресу с префиксом ctrl/acl?.., и без использования tune, соответственно acl?...

Необходимо импортировать класс ACM (access control manager) в код приложения, чтобы реализовать функционал прав доступа к объектам приложения. Каждый объект, доступ к которому может быть органичен, должен иметь прототип-имя в таблице acl_object. Продукт ACL имеет весь необходимый функционал, чтобы сделать это.

Заглушка ACM

Если продукт Acl был установлен, а позже деинсталлирован, обращения к несуществующему классу ACM произведут фатальные ошибки в приложении. Поэтому можно поместить класс-заглушку в папку w3 приложения, примерно так:

<?php

class ACM # fictitious class used when ACL ware do not installed
{
    static function __callStatic($name, $args) {
        global $user;
        return 1 == $user->pid;
    }
}

Использование

Продукт Acl содержит реализацию множества web-страниц для настройки контроля доступа. Во-первых необходимо настроить содержимое базы данных, используя эти страницы.