Phalcon 3 - Acl\Adapter\Memory

فئة Phalcon \ Acl \ Adapter \ Memory




phalcon

يمتد الطبقة المجردة 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 الافتراضي