По поводу проверки прав и наиболее удобного способа: вот это очень и очень сложный момент. Можно даже почитать статью, которая была почти сразу написана после этой статьи, чтобы оценить это примерно. Так вот, в метод checkPolicy лучше не лезть вообще. Нет, в упрощенном варианте конечно можно по какому-либо условию сделать свою проверку, и либо сразу вернуть четкий результат, либо отдать дальше на выполнение родителю через return parent::checkPolicy(), но лучше все-таки этого не делать. Если у тебя все это дело будет использоваться во фронте, то лучше все это делать именно на процессорах, так как тебе довольно не сложно будет расширить базовые процессоры и просто в своих выполнить проверку на уровне нативных методов. Это получится дешево и сердито.
Я хочу, чтобы юзеры с фронта могли просматривать/создавать/редактировать/удалять/getlist своих/чужих
Вот это тоже очень интересный момент. Я не раз говорил (и Джейсону тоже), что у нас с политиками есть очень большой промах. У нас в принципе нет такого понятия сейчас как владелец. В моем понимании все создаваемые объекты должны иметь флаг владельца, чтобы можно было выставить исключительные права. Второй момент (тоже очень досадный), что все рассчитано на групповые политики. То есть, права выдаются на группы пользователей, но не выдаются на конкретного пользователя. В итоге получается, что чтобы дать индивидуальные права одному пользователю, надо создать для него группу и отнести его к этой группе. В итоге 1000 пользователей — 1000 групп. Вообще не кульно получается. В своем ModZilla я расширил этот механизм и добавил механизм индивидуальных прав для пользователей, но во-первых, там все равно все не идеально, во-вторых, это вряд ли будет включено в официальное ядро в обозримом будущем, а в третьих, это вообще становится все сложно :-)