I don't think this is a good solution for two reasons:
1. It is coupled with the implementation details of roles (which btw is changing: https://github.com/edx/edx-platform/pull/3549).
2. It is bypassing the standard functions for changing authorization.