Phalcon 3 - Acl\Adapter\Memory
فئة Phalcon \ Acl \ Adapter \ Memory

يمتد الطبقة المجردة Phalcon\Acl\Adapter
تنفذ Phalcon\Events\EventsAwareInterface ، Phalcon\Events\EventsAwareInterface Phalcon\Acl\AdapterInterface
يدير قوائم ACL في الذاكرة
$acl = new \Phalcon\Acl\Adapter\Memory(); $acl->setDefaultAction( \Phalcon\Acl::DENY ); // Register roles $roles = [ "users" => new \Phalcon\Acl\Role("Users"), "guests" => new \Phalcon\Acl\Role("Guests"), ]; foreach ($roles as $role) { $acl->addRole($role); } // Private area resources $privateResources = [ "companies" => ["index", "search", "new", "edit", "save", "create", "delete"], "products" => ["index", "search", "new", "edit", "save", "create", "delete"], "invoices" => ["index", "profile"], ]; foreach ($privateResources as $resourceName => $actions) { $acl->addResource( new \Phalcon\Acl\Resource($resourceName), $actions ); } // Public area resources $publicResources = [ "index" => ["index"], "about" => ["index"], "session" => ["index", "register", "start", "end"], "contact" => ["index", "send"], ]; foreach ($publicResources as $resourceName => $actions) { $acl->addResource( new \Phalcon\Acl\Resource($resourceName), $actions ); } // Grant access to public areas to both users and guests foreach ($roles as $role){ foreach ($publicResources as $resource => $actions) { $acl->allow($role->getName(), $resource, "*"); } } // Grant access to private area to role Users foreach ($privateResources as $resource => $actions) { foreach ($actions as $action) { $acl->allow("Users", $resource, $action); } }
أساليب
عامة __construct ()
Phalcon \ Acl \ Adapter \ منشئ الذاكرة
public addRole ( RoleInterface | string $ role، [ array | string $ accessInherits])
يضيف دورًا إلى قائمة ACL. تسمح المعلمة الثانية بتوارث بيانات الوصول من دور موجودة أخرى مثال:
$acl->addRole( new Phalcon\Acl\Role("administrator"), "consultant" ); $acl->addRole("administrator", "consultant");
public addInherit ( مختلطة $ roleName ، اختلاف $ roleToInherit)
القيام بدور يرث من دور آخر موجود
isRole عام (اسم دور مختلط $)
تحقق من وجود دور في قائمة الأدوار
public isResource ( mixed $ resourceName)
تحقق من وجود الموارد في قائمة الموارد
public addResource ( Phalcon Phalcon\Acl\Resource | string $ resourceValue، array | string $ accessList)
إضافة مورد إلى قائمة ACL يمكن أن تكون أسماء الوصول عبارة عن إجراء معين ، من خلال البحث على سبيل المثال ، أو التحديث ، أو الحذف ، إلخ ، أو قائمة بها مثال:
// Add a resource to the the list allowing access to an action $acl->addResource( new Phalcon\Acl\Resource("customers"), "search" ); $acl->addResource("customers", "search"); // Add a resource with an access list $acl->addResource( new Phalcon\Acl\Resource("customers"), [ "create", "search", ] ); $acl->addResource( "customers", [ "create", "search", ] );
public addResourceAccess ( مختلط $ resourceName، array | string $ accessList)
يضيف الوصول إلى الموارد
dropResourceAccess العامة ( مختلطة $ resourceName ، صفيف | سلسلة $ accessList)
يزيل الوصول من مورد
محمي _allowOrDeny ($ roleName مختلطة ، مختلط $ resourceName ، وصول $ مختلط ، عمل $ مختلط ، [$ $ func مختلطة ])
يتم التحقق مما إذا كان الدور لديه حق الوصول إلى أحد الموارد
السماح العام (اختصار $ roleName ، اختصار $ resourceName ، وصول $ مختلط ، [$ $ func])
السماح بالوصول إلى دور ما على مورد يمكنك استخدام "*" كحرف بدل مثال:
//Allow access to guests to search on customers $acl->allow("guests", "customers", "search"); //Allow access to guests to search or create on customers $acl->allow("guests", "customers", ["search", "create"]); //Allow access to any role to browse on products $acl->allow("*", "products", "browse"); //Allow access to any role to browse on any resource $acl->allow("*", "*", "browse");
رفض عام (اختصار $ roleName ، اختصار $ resourceName ، وصول $ مختلط ، [$ $ func])
رفض الوصول إلى دور على مورد يمكنك استخدام "*" كحرف بدل مثال:
//Deny access to guests to search on customers $acl->deny("guests", "customers", "search"); //Deny access to guests to search or create on customers $acl->deny("guests", "customers", ["search", "create"]); //Deny access to any role to browse on products $acl->deny("*", "products", "browse"); //Deny access to any role to browse on any resource $acl->deny("*", "*", "browse");
publicAllowed ( RoleInterface | RoleAware | string $ roleName ، ResourceInterface | ResourceAware | string $ resourceName ، وصول $ مختلط ، [معلمات $ array ])
تحقق مما إذا كان الدور مسموحًا له بالوصول إلى إجراء من مورد
//Does andres have access to the customers resource to create? $acl->isAllowed("andres", "Products", "create"); //Do guests have access to any resource to edit? $acl->isAllowed("guests", "*", "edit");
public setNoArgumentsDefaultAction ( مختلط $ accessAccess)
لتعيين مستوى الوصول الافتراضي (Phalcon \ Acl :: ALLOW أو Phalcon \ Acl :: DENY) بدون أي وسيطات يتم تقديمها في الإجراء isAllowed في حالة وجود func لـ accessKey
public getNoArgumentsDefaultAction ()
إرجاع مستوى وصول ACL الافتراضي لأي وسائط مقدمة في الإجراء isAllowed إذا كان هناك func لـ accessKey
getRoles العامة ()
إرجاع صفيف مع كل دور مسجل في القائمة
getResources العامة ()
إرجاع صفيف مع كل مورد مسجل في القائمة
public getActiveRole () الموروثة من Phalcon Phalcon\Acl\Adapter
الدور الذي تتحقق منه القائمة إذا كان مسموحًا له ببعض الموارد / الوصول
العامة getActiveResource () الموروثة من Phalcon Phalcon\Acl\Adapter
المورد الذي تتحقق القائمة إذا كان هناك دور يمكنه الوصول إليه
العامة getActiveAccess () الموروثة من Phalcon Phalcon\Acl\Adapter
الوصول النشط الذي تتحقق القائمة إذا كان هناك دور يمكن الوصول إليه
public setEventsManager ( Phalcon Phalcon\Events\ManagerInterface $ eventsManager) الموروثة من Phalcon Phalcon\Acl\Adapter
يعين مدير الأحداث
العامة getEventsManager () الموروثة من Phalcon Phalcon\Acl\Adapter
إرجاع مدير الحدث الداخلي
public setDefaultAction ( مختلطة $ accessAccess) الموروثة من Phalcon Phalcon\Acl\Adapter
لتعيين مستوى الوصول الافتراضي (Phalcon \ Acl :: ALLOW أو Phalcon \ Acl :: DENY)
public getDefaultAction () الموروثة من Phalcon Phalcon\Acl\Adapter
لعرض مستوى وصول ACL الافتراضي