Couldn't be CanCan used for this? Maybe you could use this https://github.com/ryanb/cancan/wiki/authorizing-controller-actions in conjunction with the rescue we already do in the ChairsController. I think this would highly increase the readability since all the permissions would be in one single place (the ability.rb).
To maintain the different redirects on permission violation you implemented you can access the action attribute of the exception that is raised by CanCan and thereby differentiate between them.

https://github.com/ryanb/cancan/wiki/Controller-Authorization-Example