This same line of code is repeated five times. I suggest making a helper function

`_is_staff_for_article(article, user)` 

that returns `user.is_staff or user.is_superuser or user_is_article_course_staff(user, article)`, then each of these five permissions just `return _is_staff_for_article(article, user)`  . This makes maintaining and updating this code much easier (to read and to edit)