What are the differences between these three methods?
Connor Leech
1

Hey Connor!

Despite the similarity, each of them are responsible for a single task. authorizeRoles() is just responsible for checking; hasAnyRole() contain the logic to verify if the Role is an array or string; and hasRole() have the single task of query the database. 
For sure you can refactor and merge all in one method that do these three tasks if you want. But better to keep it as simple as possible.

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.