PHP Generic Access Control List is a PHP class designed for creating Access Control Lists with versatility and applicability to various contexts.
The software is split into two classes and a separate administration interface. The GACL class is designed to be small yet efficient, with only 517 lines of clean and concise code. This class takes care of the permission checks. In contrast, the GACL_API class is intended to be more robust and flexible, catering to the creation, editing, and deleting of objects, groups, and ACLs.
The phpGACL Administration Interface is a set of scripts that are designed to provide easy administration of the entire GACL universe, all through your browser. One of the primary benefits of this software is that it isn't limited to traditional "read/write/execute" permissions, as is typical with some flavors of *nix.
The software allows for user-definable "Access Control Objects," or ACO, to control what access is available to "requesters," which are defined as users seeking access. There are several examples of ACOs available, such as Projects, System down for Maintenance, and View - The letter "e" ;)
You can also define User-definable "Access Request Objects," or ARO which are objects used to request access from an ACO. Examples include Users/Accounts, IP Addresses, and Browsers/Browser capabilities like JS/Flash/DHTML. The software also allows for creating User-definable "Access eXtension Objects" or AXO. These objects help extend permissions to a third layer, and allow you to set fine-grained permissions on each item in your application, even down to individual rows in your database.
The software contains several other features such as tree-based ARO/AXO object grouping with inheritance, functionality for program add-ons, and one function application integration (acl_check()).
This software is incredibly scalable. A real-world working version supports over 60,000 accounts, 200 groups, and 300 ACO's.
Requirements for the software include PHP 4.x or greater and an SQL database (MySQL 3x/4.0.15+, PostgreSQL 7.2+, Oracle 9i+, MS-SQL 2000+).
The latest release contains a few minor bug fixes and a major fix for the del_object() function. Furthermore, it has a slightly improved installer with Informix support, less possibility of conflicting code with other applications, and upgraded ADODB and Smarty packages.
Version 3.3.7: N/A