Could you consider using accessible_by? I feel the code would be more elegant that way