RBAC и Oracle

Всё про контроль доступа пользователей: фильтры, RBAC, проверки
Ответить
Maick
Сообщения: 40
Зарегистрирован: 2018.01.04, 12:06

RBAC и Oracle

Сообщение Maick » 2018.01.05, 14:45

Есть база данных Oracle 11g(так как миграция бд не проходила нормально из yii2(в базе создавались имена таблиц и имена столбцов в нижнем регистре и Oracle на это реагирует плохо), пришлось создать таблицы в ручном режиме и назвать все в верхнем регистре). Однако когда пытаешься подключиться из RBAC, то опять же проблема с верхним регистром, так как в yii все переменные в нижнем регистре (пробовал задать в oracle имя столбцов в нижнем регистре, тогда все работает, однако тогда oracle не дает создавать первичные ключи и связи). Так как перевести все переменные в верхний регистр весьма затратно по времени, возник вопрос есть ли возможность как-то решить данную проблему по другому (RBAC устанавливал через composer "yii2-admin"). Использование oracle обязательно.

Nex-Otaku
Сообщения: 563
Зарегистрирован: 2016.07.09, 21:07

Re: RBAC и Oracle

Сообщение Nex-Otaku » 2018.01.07, 16:03

Известный "косяк" ActiveRecord, жёсткое соответствие столбцов свойствам модели.

Можно расширить ActiveRecord и делать в нём преобразование регистра. Но если ты не знаешь этот класс досконально, вылавливание и исправление всех нюансов займёт приличное время. Без автоматических тестов, я бы такому "переделанному коду" не доверял, рискованно.

Я бы на твоём месте переименовал свойства, пусть это займёт много времени, зато проще и надёжнее.

Если же будешь переделывать AR, то советую присмотреться ко всем обращениям к схеме:

Код: Выделить всё

static::getTableSchema()->columns
и в этом месте как раз преобразовывать регистр в ту или другую сторону при необходимости.

Maick
Сообщения: 40
Зарегистрирован: 2018.01.04, 12:06

Re: RBAC и Oracle

Сообщение Maick » 2018.01.08, 18:02

А нет ли какого-нибудь расширения оптимизированного под Oracle?

Nex-Otaku
Сообщения: 563
Зарегистрирован: 2016.07.09, 21:07

Re: RBAC и Oracle

Сообщение Nex-Otaku » 2018.01.08, 19:24

Под твой случай, я бы поставил на то, что нет расширения. Но попробуй поискать )

Maick
Сообщения: 40
Зарегистрирован: 2018.01.04, 12:06

Re: RBAC и Oracle

Сообщение Maick » 2018.01.12, 11:36

Может в PHPStorm есть возможность рендеринга кода (возможность отслеживания переменных)?

Nex-Otaku
Сообщения: 563
Зарегистрирован: 2016.07.09, 21:07

Re: RBAC и Oracle

Сообщение Nex-Otaku » 2018.01.12, 17:58

Обычно "отслеживание переменных" называется отладкой.

Maick
Сообщения: 40
Зарегистрирован: 2018.01.04, 12:06

Re: RBAC и Oracle

Сообщение Maick » 2018.01.15, 15:35

Вопрос не как называется, а вопрос в том смогу ли я в PHPStorm, проверить где используется переменная (в каких моделях, представлениях, контроллерах)

Nex-Otaku
Сообщения: 563
Зарегистрирован: 2016.07.09, 21:07

Re: RBAC и Oracle

Сообщение Nex-Otaku » 2018.01.16, 09:33

Поиск использования? Конечно, должен быть. Что мешает проверить?

Maick
Сообщения: 40
Зарегистрирован: 2018.01.04, 12:06

Re: RBAC и Oracle

Сообщение Maick » 2018.01.17, 16:35

Практически все перевел в верхний регистр, однако не могу разобраться с назначениями:

Код: Выделить всё

     * Displays a single Assignment model.
     * @param  integer $id
     * @return mixed
     */
    public function actionView($id =2)
    {
        $model = $this->findModel($id);

        return $this->render('view', [
                'model' => $model,
                'idField' => $this->idField,
                'usernameField' => $this->usernameField,
                'fullnameField' => $this->fullnameField,
        ]);
    }
Когда ставлю параметр $id = 2, то все отрабатывает хорошо, однако когда оставляю его по умолчанию, то не схватывает id записи, то есть основная менюшка выбора грузиться, а когда хочу посмотреть конкретного выдает id не указан, но никак не могу найти откуда он схватывает данный параметр. Все остальные пункты меню работаю

Nex-Otaku
Сообщения: 563
Зарегистрирован: 2016.07.09, 21:07

Re: RBAC и Oracle

Сообщение Nex-Otaku » 2018.01.18, 17:50

id не указан, но никак не могу найти откуда он схватывает данный параметр
Из GET-параметров запроса.

В документацию лень заглядывать? )
http://stuff.cebe.cc/yii2docs-ru/guide- ... parameters

Maick
Сообщения: 40
Зарегистрирован: 2018.01.04, 12:06

Re: RBAC и Oracle

Сообщение Maick » 2018.01.19, 16:31

Не в этом суть вопроса, суть в том что я не могу понять где этот запрос формируеться

Nex-Otaku
Сообщения: 563
Зарегистрирован: 2016.07.09, 21:07

Re: RBAC и Oracle

Сообщение Nex-Otaku » 2018.01.20, 11:18

Гм. GET-запрос формируется браузером, когда ты нажимаешь на ссылку.

Ответить