Вот и мне показалось что запиливать в один клиент весь код это не очень красиво.
Есть клиент, делает запрос на сервер с токеном. Сервер по этому токену достаёт юзера. У юзера есть права и роли. Сервер идёт в базу и смотрит что может этот пользователь. Если можно отвечать - отвечает.
Это классическая RBAC модель. Разумеется, такой код нужно явно писать что мол isUserPermitted(action), в тех местах, где нужно закрыться