Added roles and used CanCan to deal with authorization, note that there'e workarounds on cancan 1.6.1 incompatiblity with rails 4