Yii2 авторизация и Роли

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Аватара пользователя
VaNnOrus
Сообщения: 96
Зарегистрирован: 2014.10.09, 12:50

Re: Yii2 авторизация и Роли

Сообщение VaNnOrus »

BrusSENS писал(а):
VaNnOrus писал(а): А вообще, не вижу проблемы написать скрипт, собирающий текстовый файл нужной структуры с использованием данных из базы.
Не проблема, спору нет.
Но сейчас столкнулся с другой неприятной штуковиной. Как можно заметить, при присвоении роли, она прописывается явно, не как в Yii1 можно это было делать. Так вот собственно вся некрасивость в том, что судя по всему, если будет 1000 000 пользователей, то файл раздуется до ненормальных размеров что ли?
Естественно нет. Роли должны храниться в таблице пользователей, это логично. Как сделать присвоения с использованием таблицы юзеров пока не думал, но явно не собираюсь вручную каждому пользователю роль давать через админку :D
BrusSENS писал(а):UPD:
VaNnOrus писал(а):В документации к модулю-то указать это, конечно, не нужно...пусть пользователи становятся экстрасенсами...
Когда ж разработчики начнут нормально документацию писать...
Это вы где такой модуль нашли? Yii2-start что ли?
Ох...не помню уже где нашел. Или тут, или нагуглено было. Сейчас уже думаю о том, что переписать его как раз убрав баг в круде прав и решив проблему с хранением ролей пользователей.
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Yii2 авторизация и Роли

Сообщение zelenin »

BrusSENS писал(а):
zelenin писал(а): если вы будете выгружать из БД, то да.
не надо этого делать.
Насколько я заметил, то и при описании в файле они тоже записываются для каждого пользователя
UPD: Получается, что вариант только один - хранение в БД? (Для более менее крупных проектов)
https://github.com/zelenin/yii2-rbac-module#phpmanager
вот так не записывается
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Yii2 авторизация и Роли

Сообщение zelenin »

VaNnOrus писал(а):Как сделать присвоения с использованием таблицы юзеров пока не думал
https://github.com/zelenin/yii2-rbac-module#phpmanager
Аватара пользователя
VaNnOrus
Сообщения: 96
Зарегистрирован: 2014.10.09, 12:50

Re: Yii2 авторизация и Роли

Сообщение VaNnOrus »

BrusSENS писал(а): UPD: Получается, что вариант только один - хранение в БД? (Для более менее крупных проектов)
А почему нет? Селект ролей занимает наносекунды, у Вас же их не миллион будет. (Да и с миллионом не намного дольше было бы).
К тому же кэш пока еще никто не отменял.
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Yii2 авторизация и Роли

Сообщение zelenin »

VaNnOrus писал(а):
BrusSENS писал(а): UPD: Получается, что вариант только один - хранение в БД? (Для более менее крупных проектов)
А почему нет? Селект ролей занимает наносекунды, у Вас же их не миллион будет. (Да и с миллионом не намного дольше было бы).
К тому же кэш пока еще никто не отменял.
там не один запрос получится, а больше. На маленьком проекте до пяти. На крупном - на десятки. Поэтому надо продумать этот момент изначально.
Аватара пользователя
BrusSENS
Сообщения: 565
Зарегистрирован: 2012.07.26, 06:51
Откуда: Новороссийск
Контактная информация:

Re: Yii2 авторизация и Роли

Сообщение BrusSENS »

zelenin писал(а): https://github.com/zelenin/yii2-rbac-module#phpmanager
вот так не записывается
О, а вот и решение :) Благодарствую :)
Native Web - небольшой блог о веб разработке (временно на ремонте)
Режим обслуживания сайта для Yii 2.x.x
Аватара пользователя
BrusSENS
Сообщения: 565
Зарегистрирован: 2012.07.26, 06:51
Откуда: Новороссийск
Контактная информация:

Re: Yii2 авторизация и Роли

Сообщение BrusSENS »

VaNnOrus писал(а): К тому же кэш пока еще никто не отменял.
Хранение таких данных, как роли в кэше довольно не тривиально, не для этого кэш придумали
Native Web - небольшой блог о веб разработке (временно на ремонте)
Режим обслуживания сайта для Yii 2.x.x
Аватара пользователя
VaNnOrus
Сообщения: 96
Зарегистрирован: 2014.10.09, 12:50

Re: Yii2 авторизация и Роли

Сообщение VaNnOrus »

zelenin писал(а):
VaNnOrus писал(а):Как сделать присвоения с использованием таблицы юзеров пока не думал
https://github.com/zelenin/yii2-rbac-module#phpmanager
Это, естественно, только если Ваш модуль использовать?
Не нашел в Вашем модуле подобия accessControl. Получается нужно будет писать свой класс, который будет автоматом проверять права в бефоэкшен?
Аватара пользователя
VaNnOrus
Сообщения: 96
Зарегистрирован: 2014.10.09, 12:50

Re: Yii2 авторизация и Роли

Сообщение VaNnOrus »

BrusSENS писал(а):
VaNnOrus писал(а): К тому же кэш пока еще никто не отменял.
Хранение таких данных, как роли в кэше довольно не тривиально, не для этого кэш придумали
Я говорил о кэше запросов у бд.
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Yii2 авторизация и Роли

Сообщение zelenin »

VaNnOrus писал(а):
BrusSENS писал(а):
VaNnOrus писал(а): К тому же кэш пока еще никто не отменял.
Хранение таких данных, как роли в кэше довольно не тривиально, не для этого кэш придумали
Я говорил о кэше запросов у бд.
он об этом же
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Yii2 авторизация и Роли

Сообщение zelenin »

VaNnOrus писал(а):
zelenin писал(а):
VaNnOrus писал(а):Как сделать присвоения с использованием таблицы юзеров пока не думал
https://github.com/zelenin/yii2-rbac-module#phpmanager
Это, естественно, только если Ваш модуль использовать?
Не нашел в Вашем модуле подобия accessControl. Получается нужно будет писать свой класс, который будет автоматом проверять права в бефоэкшен?
это модифицированный PhpManager. Все остальное так же работает, кроме присвоения ролей.
Аватара пользователя
VaNnOrus
Сообщения: 96
Зарегистрирован: 2014.10.09, 12:50

Re: Yii2 авторизация и Роли

Сообщение VaNnOrus »

zelenin писал(а):
VaNnOrus писал(а):
BrusSENS писал(а): UPD: Получается, что вариант только один - хранение в БД? (Для более менее крупных проектов)
А почему нет? Селект ролей занимает наносекунды, у Вас же их не миллион будет. (Да и с миллионом не намного дольше было бы).
К тому же кэш пока еще никто не отменял.
там не один запрос получится, а больше. На маленьком проекте до пяти. На крупном - на десятки. Поэтому надо продумать этот момент изначально.
Откуда столько запросов-то? Вытащить все роли (если их нет в кэше или прошло много времени) и все. Один запрос. Запрос пользователя я не считаю, его фреймворк сделал уже.
Ваш модуль ведь так и делает, вроде.
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Yii2 авторизация и Роли

Сообщение zelenin »

VaNnOrus писал(а): Откуда столько запросов-то? Вытащить все роли (если их нет в кэше или прошло много времени) и все. Один запрос. Запрос пользователя я не считаю, его фреймворк сделал уже.
Ваш модуль ведь так и делает, вроде.
причем тут роли? rbac не так работает.
Делаете проверку на createPost (не роль, а permission) - запрос. И дальше по дереву прав поднимаемся, на каждое разрешение делая запрос.
На практике пробовали rbac на реальном проекте?
Аватара пользователя
VaNnOrus
Сообщения: 96
Зарегистрирован: 2014.10.09, 12:50

Re: Yii2 авторизация и Роли

Сообщение VaNnOrus »

zelenin писал(а):
VaNnOrus писал(а): Откуда столько запросов-то? Вытащить все роли (если их нет в кэше или прошло много времени) и все. Один запрос. Запрос пользователя я не считаю, его фреймворк сделал уже.
Ваш модуль ведь так и делает, вроде.
причем тут роли? rbac не так работает.
Делаете проверку на createPost (не роль, а permission) - запрос. И дальше по дереву прав поднимаемся, на каждое разрешение делая запрос.
На практике пробовали rbac на реальном проекте?
Так ведь вопрос-то был в хранении ролей не базе для сокращения нагрузки. Вот причем тут роли. Конкретно на выборку ролей один запрос идет, поэтому я и говорю, что выигрыша в использовании файла для хранения ролей никакого нет.
А с количеством запросов при использовании рбака ничего не сделать, это очевидно. Выход только не использовать его, но альтернативы, я по крайней мере, не вижу.
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Yii2 авторизация и Роли

Сообщение zelenin »

VaNnOrus писал(а):
zelenin писал(а):
VaNnOrus писал(а): Откуда столько запросов-то? Вытащить все роли (если их нет в кэше или прошло много времени) и все. Один запрос. Запрос пользователя я не считаю, его фреймворк сделал уже.
Ваш модуль ведь так и делает, вроде.
причем тут роли? rbac не так работает.
Делаете проверку на createPost (не роль, а permission) - запрос. И дальше по дереву прав поднимаемся, на каждое разрешение делая запрос.
На практике пробовали rbac на реальном проекте?
Так ведь вопрос-то был в хранении ролей не базе для сокращения нагрузки. Вот причем тут роли. Конкретно на выборку ролей один запрос идет, поэтому я и говорю, что выигрыша в использовании файла для хранения ролей никакого нет.
А с количеством запросов при использовании рбака ничего не сделать, это очевидно. Выход только не использовать его, но альтернативы, я по крайней мере, не вижу.
нельзя хранить только роли в файле, а пермишны в базе. Все хранится в одном месте.
Поэтому запросов будет много.
Аватара пользователя
VaNnOrus
Сообщения: 96
Зарегистрирован: 2014.10.09, 12:50

Re: Yii2 авторизация и Роли

Сообщение VaNnOrus »

zelenin писал(а): нельзя хранить только роли в файле, а пермишны в базе. Все хранится в одном месте.
Поэтому запросов будет много.
Точно. Я что-то не о том уже думать начал. Вопрос был в том, что файл присвоений будет огромным.
Присваивать роли нужно не используя файл, как в Вашем модуле делается, вот и ответ :)
Тогда не понимаю о чем разговор был. Я немного неверно изложил свое мнение, видимо. Я хотел сказать, что хранение роли в таблице юзеров это очевидное решение :)
Аватара пользователя
BrusSENS
Сообщения: 565
Зарегистрирован: 2012.07.26, 06:51
Откуда: Новороссийск
Контактная информация:

Re: Yii2 авторизация и Роли

Сообщение BrusSENS »

VaNnOrus писал(а): Точно. Я что-то не о том уже думать начал. Вопрос был в том, что файл присвоений будет огромным.
Присваивать роли нужно не используя файл, как в Вашем модуле делается, вот и ответ :)
Тогда не понимаю о чем разговор был. Я немного неверно изложил свое мнение, видимо. Я хотел сказать, что хранение роли в таблице юзеров это очевидное решение :)
Решение то очевидное, но непонятно, почему из коробки php менеджер не умеет работать с полем role в БД :(
Native Web - небольшой блог о веб разработке (временно на ремонте)
Режим обслуживания сайта для Yii 2.x.x
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Yii2 авторизация и Роли

Сообщение zelenin »

BrusSENS писал(а):
VaNnOrus писал(а): Точно. Я что-то не о том уже думать начал. Вопрос был в том, что файл присвоений будет огромным.
Присваивать роли нужно не используя файл, как в Вашем модуле делается, вот и ответ :)
Тогда не понимаю о чем разговор был. Я немного неверно изложил свое мнение, видимо. Я хотел сказать, что хранение роли в таблице юзеров это очевидное решение :)
Решение то очевидное, но непонятно, почему из коробки php менеджер не умеет работать с полем role в БД :(
в yii1 тоже не умел. Да собственно это и не задача менеджера взаимодействовать с таблицей юзеров. По философии все сделано праивльно. Для обхода используем маленький хак.
Аватара пользователя
BrusSENS
Сообщения: 565
Зарегистрирован: 2012.07.26, 06:51
Откуда: Новороссийск
Контактная информация:

Re: Yii2 авторизация и Роли

Сообщение BrusSENS »

zelenin писал(а):
BrusSENS писал(а):
VaNnOrus писал(а): Точно. Я что-то не о том уже думать начал. Вопрос был в том, что файл присвоений будет огромным.
Присваивать роли нужно не используя файл, как в Вашем модуле делается, вот и ответ :)
Тогда не понимаю о чем разговор был. Я немного неверно изложил свое мнение, видимо. Я хотел сказать, что хранение роли в таблице юзеров это очевидное решение :)
Решение то очевидное, но непонятно, почему из коробки php менеджер не умеет работать с полем role в БД :(
в yii1 тоже не умел. Да собственно это и не задача менеджера взаимодействовать с таблицей юзеров. По философии все сделано праивльно. Для обхода используем маленький хак.
В yii1 через расширение CWebUser можно было получать роль юзера. Впринципе то тут тоже самое, просто ещё не привычно наверное :) Ну в любом случае время покажет :)
Native Web - небольшой блог о веб разработке (временно на ремонте)
Режим обслуживания сайта для Yii 2.x.x
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Yii2 авторизация и Роли

Сообщение zelenin »

BrusSENS писал(а): В yii1 через расширение CWebUser можно было получать роль юзера. Впринципе то тут тоже самое, просто ещё не привычно наверное :) Ну в любом случае время покажет :)
все аналогично. точно такой же хак
Ответить