[Improvement - LOW] More minor changes and refactorings

I won't be creating pull requests for a long while, so I thought on pushing the last changes I had in my local repo.

The one that might be worth commenting is the refactoring of `qa_permit_value_error`. I've mostly applied De Morgan's laws so it shouldn't be a big deal. So I guess I haven't modified the logic. However, I wanted to. I noticed I didn't like why you might get a `level` error when the user is not logged in. IMO, if you're not logged in you should always get the `login` error. Then, if and only if you're logged in, the `level` check should be performed. This will simplify the code of that function even more. Just my 2 cents.

Good luck!