|
|
@@ -1,4 +1,5 @@
|
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
|
+<!-- EN-Revision: 20763 -->
|
|
|
<!-- Reviewed: no -->
|
|
|
<sect1 id="zend.acl.advanced">
|
|
|
|
|
|
@@ -15,16 +16,16 @@
|
|
|
позволяет создавать административные инструменты под управлением
|
|
|
<classname>Zend_Acl</classname> с относительной простотой и гибкостью.
|
|
|
Многие ситуации требуют некоторой интерактивной поддержки от <acronym>ACL</acronym>, и
|
|
|
- <classname>Zend_Acl</classname> предоставляет методы для настройки, произведения запросов,
|
|
|
- контроля доступа приложением.
|
|
|
+ <classname>Zend_Acl</classname> предоставляет методы для настройки, произведения
|
|
|
+ запросов, контроля доступа приложением.
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
Тем не менее, хранение данных <acronym>ACL</acronym> остается задачей разработчика,
|
|
|
т.к. случаи использования могут сильно варьироваться в различных
|
|
|
ситуациях. Поскольку <classname>Zend_Acl</classname> доступен для сериализации, то можно
|
|
|
- сериализовать объекты <acronym>ACL</acronym> через PHP-функцию
|
|
|
- <ulink url="http://php.net/serialize"><code>serialize()</code></ulink>,
|
|
|
+ сериализовать объекты <acronym>ACL</acronym> через <acronym>PHP</acronym>-функцию
|
|
|
+ <ulink url="http://php.net/serialize"><methodname>serialize()</methodname></ulink>,
|
|
|
и результаты можно хранить там, где пожелает разработчик - например,
|
|
|
в файле, базе данных или с помощью механизма кэширования.
|
|
|
</para>
|
|
|
@@ -49,7 +50,7 @@
|
|
|
<classname>Zend_Acl</classname> предоставляет поддержку условных правил с помощью
|
|
|
интерфейса <classname>Zend_Acl_Assert_Interface</classname>.
|
|
|
Чтобы использовать интерфейс утверждений, разработчик должен
|
|
|
- написать класс, который реализует метод <code>assert()</code>
|
|
|
+ написать класс, который реализует метод <methodname>assert()</methodname>
|
|
|
интерфейса:
|
|
|
</para>
|
|
|
|
|
|
@@ -75,7 +76,7 @@ class CleanIPAssertion implements Zend_Acl_Assert_Interface
|
|
|
После объявления класса утверждения разработчик должен передавать
|
|
|
экземпляр этого класса при определении условных правил. Правило,
|
|
|
которое создается с утверждением, применяется
|
|
|
- только тогда, когда метод утверждения возвращает true.
|
|
|
+ только тогда, когда метод утверждения возвращает <constant>TRUE</constant>.
|
|
|
</para>
|
|
|
|
|
|
<programlisting language="php"><![CDATA[
|
|
|
@@ -94,14 +95,14 @@ $acl->allow(null, null, null, new CleanIPAssertion());
|
|
|
Тем не менее, это особый случай, и следует понимать, что во всех
|
|
|
других случаях (например, когда для правила были указаны роль,
|
|
|
ресурс, или привилегия), невыполнение утверждения приводит к тому,
|
|
|
- что правило не применяется, и для определения того, реазрешить ли
|
|
|
+ что правило не применяется, и для определения того, разрешить ли
|
|
|
доступ или запретить, могут использоваться другие правила.
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
- Методу <code>assert()</code> объекта утверждения передаются ACL,
|
|
|
- роль, ресурс и привилегия, к которым применяется запрос на
|
|
|
- авторизацию (например, <code>isAllowed()</code>). Это нужно для
|
|
|
+ Методу <methodname>assert()</methodname> объекта утверждения передаются
|
|
|
+ <acronym>ACL</acronym>, роль, ресурс и привилегия, к которым применяется запрос на
|
|
|
+ авторизацию (например, <methodname>isAllowed()</methodname>). Это нужно для
|
|
|
предоставления контекста классу утверждения и определения его
|
|
|
условий там, где это нужно.
|
|
|
</para>
|