1. Было 2 задачи: а) Вывод списка текущих пользователей с ролями, их роли в админ.панели(АП). б) Возможность администратору назначать пользователя менеджером в АП.
Александр сделал страницу со всеми пользователями, на которой можно назначить менеджерскую роль. Но это не подходит для задачи "А" - на странице нельзя посмотреть только тех, кто с менеджерской ролью.
На примере: допустим, нужно посмотреть всех менеджеров. В системе 1000 пользователей, и чтобы собрать список менеджеров - нужно пересмотреть всех 1000 пользователей(50 страниц х 20 пользователей).
Я, просто, вежливо указал на проблему, на что получил негодование и грубость, мол: "в чём сакральный смысл работы, как будут назначаться роли тем у кого нет роли?". Да, текущее решение не решало поставленные задачи, но ведь решение не я же писал, а в ТЗ описаны требования.
Но чтобы избежать переписывания решения - я предложил пользователей с менеджерской ролью просто выводить в самом верху.
В чём моя вина - не понимаю:
1) В ТЗ требования описаны чётко.
2) Я вежливо и без грубостей просто указал, что не решается одна из задач.
3) После предложил альтернативное решение, которое позволило не переписывать существующее.
2. Претензии к коду проекта: "написана ахинея". Но не было конкретики, и проблемы наблюдаются у исполнителя...
1) На просьбу уточнить в чём проблема - ответ не был получен. Утверждение задевало urlManager, но он довольно "стандартный": [https://i.imgur.com/r12W2OH.png]
2) В задачах большая часть взаимодействий идёт с Yii'шным RBAC.
3) Примеры кода проекта были приложены. Я предлагал до начала сотрудничества осмотреть репозиторий.
Но ведь в самом коде Александра есть проблемы. Правда, в обычных случаях, я на это не обращаю внимание, ибо: это всё правится довольно просто, и отличный способ поучиться для программииста/ревьювера.
- DRY: для поиска пользователей с ролью был копирован метод, с добавление строчки orderBy. Статический анализатор IDE это подсветил: [https://i.imgur.com/wLahUe2.png] (но это было исправлено после замечаний)
- В сервисы был затянут Singeltone, хотя там используется контейнер зависимостей, и AuthManager конфигурируется, и мелочи от стат.анализатора IDE отображаются: https://i.imgur.com/d1w8dfs.png
- Из ТЗ: "У пользователя может быть только одна “менеджерская роль”(!) единовременно. " - текущий код Александра отвязывает не только менеджерскую роль, а и любую другую: https://i.imgur.com/1Q1Wbit.png
- Чтобы подгрузить JS для отправки команды роли - используется костыль: https://i.imgur.com/OJ8a783.png
Хотя есть решение из коробки: \yii\web\View::registerJsFile.
- Имена коммитов Git - неинформативны: "admin roles : in progress", "task : in progress", "small changes"
Жаль что так сложилось. Но считаю, что создал максимальные условия для комфортного решения задачи.