Title: ACL (Access Control List) An access control list (ACL) is a list of permissions attached to an object. The list specifies who or what is allowed to access the object and what operations are allowed to be performed on the object. In a typical ACL, each entry in the list specifies a subject and an operation > In geoprisma ACL is use to check if a resource is available for a user or not. topic: Architecture Geoprisma ACL is architecture are made to permit many implementation of acl libreary. You can set Geoprisma to use , to use or your private acl (see acl.bmp) topic: Use Default ACL Class (driver) use in Geoprisma is org_opensafemap_acl_NoACL, > To change the driver use by Geoprisma use this code in your Geoprisma initialisation. (begin code) // org_opensafemap_SettingImpl::setACLClass('driver class name'); // Like org_opensafemap_SettingImpl::setACLClass('org_opensafemap_acl_BorealisACL'); (end) topic: Custom ACL Make custom ACL is very easy > 1 - Make a class witch extends org_opensafemap_acl_ACL (begin code) class you_custom_acl_driver extends org_opensafemap_acl_ACL { .... } (end) 2 - Implement the com_borealis_foundation_util_Singleton abstract function in your class. (begin code) class you_custom_acl_driver extends org_opensafemap_acl_ACL { private static $s_objInstance = null; private function __construct() { // Singleton DP } public static function getInstance() { if (is_null(self::$s_objInstance)) { self::$s_objInstance = new you_custom_acl_driver(); } return self::$s_objInstance; } } (end) 3 - Implement the isAuthorized function in your class. This function receive two parameters Ressource Name and Action Name. Your function check if the action in this recource is Authorized and return true or false. (begin code) class you_custom_acl_driver extends org_opensafemap_acl_ACL { public function isAuthorized($pstrRessource, $pstrAction) { .... return true; .... return false; } } (end) 4 - Set Geoprisma to use your driver (begin code) org_opensafemap_SettingImpl::setACLClass('you_custom_acl_driver'); (end) P.S: Your driver class nead to be loader before, or loaded in an autoload function like com_borealis_Autoload.php (begin code) requie 'you_custom_acl_driver.php' (end) 5 - Final result of you_custom_acl_driver.php (begin code) class you_custom_acl_driver extends org_opensafemap_acl_ACL { private static $s_objInstance = null; private function __construct() { // Singleton DP } public static function getInstance() { if (is_null(self::$s_objInstance)) { self::$s_objInstance = new you_custom_acl_driver(); } return self::$s_objInstance; } public function isAuthorized($pstrRessource, $pstrAction) { .... return true; .... return false; } } (end)