Вы должны определить, что вы имеете в виду с наивысшим. В случае наследования разрешений один из них без родителя имеет наименьшие разрешения. Но это работает только тогда, когда они связаны. Итак, если они связаны как admin
->user
->guest
, где стрелка может быть прочитана как «наследует разрешения от», то очень вероятно (запретить правила, не учтенные), что у admin
больше всего прав, поскольку у пользователя нет была назначена другая роль, которая наследуется от admin
.
Когда f.e. admin
наследует разрешение от user
и guest
вообще не связано с user
или admin
, то оно будет более сложным.
Чтобы определить, какой из них имеет больше прав (называние роли очевидна, но не приложения), вы должны сравните разрешения guest
с разрешениями admin
.
Это непросто сделать, и я сомневаюсь, что это то, что вы хотите, поскольку возможно, что у родителя может быть больше разрешений. F.E. когда правило отказа было применено к наследнику.
Я знаю, что я мог бы создать метод, чтобы найти роль без родителя, поскольку я использую наследование. Это сработало бы, но это было слишком сложно, как вы заметили. Будет ли BjyAuthorize работать, если я ставлю только одну роль для каждого пользователя? Самый высокий, очевидно. –