а какая разница между правами пользователя и статусом ресурса? и то и другое необходимо проверить, только одно это внешнее свойство а другое внутреннее
Я тебе абсолютно серьёзно и без тени троллинга говорю: тебе нужно несколько раз обдумать вопрос, прежде чем его задавать. Ты сейчас меня спрашиваешь в чём разница между яблоком и поленом. Допустим, я буду терпелив и скажу по каким примерно характеристикам они различаются. Но в чём суть вопроса, к чему это всё? Ты можешь задавать вопрос в контексте нашей дискуссии? Или как-то объяснить какое отношение твой вопрос имеет к нашему разговору?
Ну, права — это здорово, это контекст проверки прав, который имеет опосредованное отношение к контексту основного продукта. Разные bounded contexts, понимаешь? Допустим, центральная модель понимает, что есть некие админы, обычные пользователи, но к security-проверкам это не имеет отношения, я могу из консоли запускать команды без каких-то проверок, просто хочу посмотреть как поведёт себя модель, если пользователь якобы удалит сам себя, а потом ещё ему достанется от админа.
Я тебе попробую помочь вернуться в русло дискуссии, чтобы ты понимал в чём именно наш пойнт. Что если мы хотим предоставить админу выбор как совершить харакири — от имени администрации (объявить себя нарушителем; возможно, админ почувствовал, что его пароль могли скомпроментировать и ему нужно срочно удалить самого себя с концами) или от имени обычного пользователя (устал, но обещал вернуться: у него будет возможность себя восстановить, введя свой пароль; но админ не может воспользоваться этим вариантом, поскольку пароль-то мог быть скомпроментирован). Как ты в своём универсальном методе DELETE /users/42 отличишь эти два кейса? Возможно, ты передашь параметр, но то-то и оно, ты почувствуешь, что это принципиально разные бизнес-действия и их нужно чётко различать. CRUD тут мешает.