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-страниц для настройки контроля доступа. Во-первых необходимо настроить содержимое базы данных, используя эти страницы.