Authentication establishes who the user is; authorization decides what that user is allowed to do. They are separate systems and are routinely confused, which is how data ends up visible to the wrong people.
Almost every serious data leak in web products comes from a missing authorization check rather than a broken password system: the user is logged in legitimately and simply asks for someone else's record.
We check permissions on the server for every request, never rely on a hidden interface element as protection, model roles around real responsibilities, and test access rules as explicitly as we test features.