Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk Melaksanakan Senarai Kawalan Akses (ACL) dan Akses Berasaskan Peranan dalam Aplikasi MVC Web?

Bagaimana untuk Melaksanakan Senarai Kawalan Akses (ACL) dan Akses Berasaskan Peranan dalam Aplikasi MVC Web?

DDD
Lepaskan: 2024-12-18 12:02:13
asal
425 orang telah melayarinya

How to Implement Access Control Lists (ACLs) and Role-Based Access in a Web MVC Application?

Bagaimanakah saya boleh melaksanakan Senarai Kawalan Akses dalam aplikasi Web MVC saya dan cara mengendalikan akses berasaskan peranan pengguna?

Pelaksanaan ACL

Corak penghias ialah cara yang berkesan untuk melaksanakan ACL tanpa melanjutkan kelas Pengawal. Begini caranya:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

class SecureContainer

{

    protected $target;

    protected $acl;

 

    public function __construct($target, $acl)

    {

        $this->target = $target;

        $this->acl = $acl;

    }

 

    public function __call($method, $arguments)

    {

        if (method_exists($this->target, $method)

            && $this->acl->isAllowed(get_class($this->target), $method))

        {

            return call_user_func_array([$this->target, $method], $arguments);

        }

    }

}

Salin selepas log masuk

Anda boleh menggunakan ini seperti berikut:

1

2

3

4

5

6

$currentUser = ...;

$controller = ...;

$acl = new AccessControlList($currentUser);

 

$controller = new SecureContainer($controller, $acl);

$controller->actionIndex(); // ACL-protected controller methods

Salin selepas log masuk

Akses Berasaskan Peranan Pengguna

Untuk akses berasaskan peranan , pertimbangkan perkara berikut:

Menyemak Pemilik sebuah Sumber:

  • Lepaskan objek itu sendiri kepada ACL untuk semakan kebenaran.
  • Jika objek kekurangan butiran yang diperlukan, berikannya dengan jelas.

Contohnya:

1

2

3

4

$this->acl->isAllowed(

    $this->target->getPermissions(), // Get object permissions

    [$getter, $method] // Command

);

Salin selepas log masuk

Menguatkuasakan Akses Sekatan:

  • Pertimbangkan untuk menggunakan lapisan perkhidmatan untuk mengabstraksi akses objek dan semakan ACL.
  • Perkhidmatan boleh berinteraksi dengan objek domain untuk mengumpulkan butiran yang diperlukan.

Nota Tambahan pada MVC:

  • Model merujuk kepada lapisan, bukan kelas tertentu.
  • Logik Perniagaan Domain mengendalikan pengiraan dan syarat tanpa mengambil kira storan data.
  • Akses dan Storan Data mengurus pernyataan SQL atau mekanisme pengambilan data.
  • Perkhidmatan menyediakan abstraksi dan kemudahan untuk komponen boleh guna semula.

Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Senarai Kawalan Akses (ACL) dan Akses Berasaskan Peranan dalam Aplikasi MVC Web?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan