Just looking for advise on properly setting up an application.
To keep things simple, say I’m building a IT ticketing system, I want to allow users to login and access certain views (but not all) and only have access to their specific data. On the other hand, I want admins to be able to have access to everything.
Am I better customizing on app backend for this or create separate app (back-end for users, and another for admins) for each role?
It depends on what admins can do and how it’s different from normal users. If the views are common and few views for admins then you can control them with RBAC.
If it’s not very huge system then we can do it in single app. No separation required.
I don’t think there is a right or wrong answer here.
I would probably approach by setting up an admin environment (as backend) and the users (as frontend).
Why, you may ask …
Simply to keep things well organized and simple if your applications begins to scale up.
I normally use the advanced template even for small projects just to keep things well separeted.
As mentioned by @InsaneSkull you do not have to separate the app for small use-cases since with yii refactoring the code to separate modules or apps is easy anyway when the scaling issues arise.
See a starter kit with builtin RBAC both via CLI and UI, as well as other handy tools like Data Import, DB backup and SMTP integration here https://github.com/logicent/yii2-crudle