Ben genelde Rol ve yetkileri gruplayıp Backend tarafından gönderiyorum ve ona göre kontrol ediyorum. Frontend tarafında da bir json ile menü item değerlerini oluşturup permission
propertisi vererek kontrolü sağlıyorum. Yani şöyle;
- Backend tarafında rol ve yetki tanımlamaları yapıldı, bu rol ve yetkilere göre işlemler kontrol altına alındı
- Kullanıcı tarafından gelen istek tarafına yanıt olarak dönülen json içerisinde kullanıcıya ait rol ve yetkilere gruplanarak gönderildi
- Frontend tarafında istekten dönen yanıt içerisinde gruplanan rol ve yetkiler alındı ve
localStorage
içerisine yazıldı
- Menü içerisindeki değerler listelenirken kullanıcının yetkilerine göre gizleme veya gösterma olayları yapıldı
Örnek proje olarak Vue değil de Angular ile daha önce yazdığım bir projeyi paylaşıyorum. Daha farklı yöntemler de olabilir ama ben bunu kullanıyorum.
Örnek proje; https://github.com/mkeremcansev/ww-commerce-angular
Not: Router tarafında rol ve yetki durumuna göre de kontrol ederseniz layout ayağa kalktığında kullanıcı herhangi bir durumu manipüle ederse sayfada direkt 404 gösterebilirsiniz. (Backend tarafından zaten yetki hatası dönecektir ama sayfaya hiç erişememesi için bu yolu izleyebilirsiniz.)