Posts

Showing posts with the label Voter

Menggunakan User Roles dari Database dengan Voter

Image
Roles Ketika user melakukan login, Symfony memanggil method getRoles() dari object User entity yang digunakan untuk menentukan hak akses yang dimiliki oleh user. Pada User class roles adalah array yang tersimpan di database (atau kadang array harcoded dalam berbagai tutorial supaya cepat saja), dan setiap user selalu memiliki setidaknya satu role yaitu: ROLE_USER ( sumber ). src/Entity/User.php /** * @ORM\Column(type="json") */ private $roles = []; public function getRoles () : array { $roles = $this -> roles ; // guarantee every user at least has ROLE_USER $roles [] = 'ROLE_USER' ; // bila null dari db maka at least ini akan ada return array_unique ( $roles ); }     Berikut ini panduan yang harus dipatuhi bila kita menginginkan untuk dapat menentukan roles untuk tiap-tiap user dalam applikasi kita. Setiap role harus diawali dengan prefix ROLE_ (bila tidak maka akan terjadi masalah dalam penggunaan roles ini). ...

Otorisasi akses user menggunakan Voters pada Symfony 4

Image
Perkenalan Voters adalah fitur penting dari mekanisme otorisasi yang diterapkan pada Symfony. Voters memberikan kemampuan pada aplikasi Symfony untuk dapat melakukan pengecekan terhadap permission (misalnya: "Bisakah si user ini melakukan/mengakses ini?"). Dalam rangka mengecek boleh atau tidaknya user mengakses suatu fitur, semua keputusan dari voters ditentukan oleh apa yang disebut sebagai Access Decision Manager . Maka akses yang dimiliki user terhadap suatu fitur adalah tergantung konfig dari aplikasi kita, permission bisa diberikan bila semua voters yang ada berkata "Ya" (unanimous), atau mayoritas dari voters yang ada mengatakan "Ya" (consensus), atau jika ada setidaknya satu voter yang berkata "Ya" (affirmative).  Tapi kadang-kadang saat logic security yang kita terapkan sangat komplek maka kita perlu tau dengan jelas kenapa sebuah permission diberikan. untuk itu Symfony profiler memiliki kemampuan untuk menunjukan beberapa de...