If authorization is about who has permission to be allowed to do what you want to do. Then Roles are common patterns of authorization across users - reducing the administrative overhead.
Some bugs can only be seen for users with specific roles. You will need to change the role to reproduce a problem.
A new user starts without a any roles and there is no administrative way of adding roles to users yet. To assign a user a role you will have to run commands at the console.
test_user_nameis missing the
prorole we proceed to add it and then verify the role has been added:
1 2 3 4 5 6 7 8 9 10 11 12
> user = User.find_by(username: "test_user_name") > user.has_role? :pro => false > user.add_role :pro => #<Role: ... name: "pro" .. > > user.has_role? :pro => true
Another common requirement is changing to the administrative role and an example of this is found on the admin page.
A more complex query to list all the users and their roles:
User.joins(:roles).order(:id).group(:id).pluck(:id, :username, Arel.sql("array_agg(roles.name)"))