
Андрей
03.04.2018
08:10:57

Artur
03.04.2018
10:23:45
Привет всем
Есть следующая задача - в форме создания дефолтного юзера присваивать ему роль из списка ролей.
У меня есть уже actionAssign: https://pastebin.com/LMCf0xqV
Как посоветуете адекватно его интегрировать в форму создания пользователя?
https://pastebin.com/jtnX5TRH
По идеи, с помощью этого метода внедрить же?

SiZE
03.04.2018
10:44:57

Google

SiZE
03.04.2018
10:47:59
Посмотри как idParam устанавливается в первой версии
https://github.com/yiisoft/yii/blob/master/framework/web/auth/CWebUser.php#L718
Если указать схожие настройки сессиий в обоих версиях, то все должно завестись с полпинка. Единственный момент что с поддомена на домен авторизация работать не будет. Надо делать магию )
Сделай сервис:
try {
new AssignUserRole($userId, $role);
} catch () {
}

Denis
03.04.2018
10:57:01

SiZE
03.04.2018
10:57:48
Да, ниче такого )
Это чтобы гарантировано пустой результат вернуть
Т.е. бывает два вида поиска: вернуть все записи таблицы, ниче не возвращать

Александр
03.04.2018
10:58:56

Denis
03.04.2018
11:00:39
Ну лан
А как через params сделать подстановку полю из таблицы?
У меня просится поле status, а в моей таблице оно active
userTable.status=>active?

Artur
03.04.2018
11:07:11
Чтобы он вытаскивал роли dropdownlist input и потом присваивал роль ему сразу же при создании пользователя

Google

Artur
03.04.2018
11:07:11
А что ты хочешь? Избежать дублирования кода?
Сделай сервис:
try {
new AssignUserRole($userId, $role);
} catch () {
}
Понимаю, что в классе создания формы в методе надо следующее прописать
$auth = Yii::$app->authManager;
$ChoosedRole = $auth->getRole(роль из списка выбранного);
$auth->assign($ChoosedRole, $user->getId());
Но вот что-то проблема с вытаскиваением ролей и передачей их в getRole

SiZE
03.04.2018
11:34:48

Crestoff
03.04.2018
11:40:21
)))
может там какая-то форма должна быть?, понять бы о чём речь

Artur
03.04.2018
11:41:44
Проблема - не могу вытащить список ролей
view: https://pastebin.com/CxcXMhvu
FormModel: https://pastebin.com/V4A18fbG
Отрывок из User.php: https://pastebin.com/9kvd6CHR
P.S. Дисклеймер - знаю, что по-любому накосячил, вопрос, хочу понять - где просто

Алексей
03.04.2018
11:41:54
Привет всем

Андрей
03.04.2018
11:42:29

Алексей
03.04.2018
11:42:31
Раз уж заговорили про Роли, то можно ли restapi в yii2 как-то привязать к rbac?

Artur
03.04.2018
11:42:34
Да, форма должна быть
может там какая-то форма должна быть?, понять бы о чём речь

SiZE
03.04.2018
11:43:18

Андрей
03.04.2018
11:43:21

SiZE
03.04.2018
11:48:50
какой? не нашёл...
https://github.com/yiisoft/yii/blob/master/framework/web/auth/CWebUser.php#L51

Андрей
03.04.2018
11:49:56

SiZE
03.04.2018
11:53:25

Эд
03.04.2018
11:56:17
Ребят, никто не знает случаем какие нибудь статьи на тему "Лучшие практики авторизации на сайте"?

Андрей
03.04.2018
11:58:16

Google

SiZE
03.04.2018
11:58:54

Андрей
03.04.2018
11:59:16
Выходит, что в yii2 префикса просто нету

SiZE
03.04.2018
12:00:20
Соответствено или надо задать пустой префикс в yii1 или добавить его в idParam для yii2

Андрей
03.04.2018
12:31:13

SiZE
03.04.2018
12:31:23
еще не все )

Андрей
03.04.2018
12:31:51

Alexey
03.04.2018
12:39:09
@samdark а зачем в yii свой редис клиент написали, а не взяли phpredis нативный?

Антон
03.04.2018
12:39:45
yii вообще помоему ничего чужого не берет
и это печально

SiZE
03.04.2018
12:40:16
любой компонент взял и погнал

Alexander
03.04.2018
12:47:33
не помню, что как там с редисом было
на тему ничего не берёт — это не так
на очереди посмотрите или на http-client
и то и то — клиенты

Rich
03.04.2018
12:48:11
главное что редис работает ок

Alexander
03.04.2018
12:48:15
да, с простой дефолтной имплементацией, но клиенты

Artur
03.04.2018
12:48:24
UPD: насчет списка ролей - решил вопрос следующим образом:
<?= $form->field($model, 'role')->dropDownList(ArrayHelper::map(Yii::$app->authManager->getRoles(), 'name', 'description'))->label('Choose a Role')
Очевидная фигня на самом деле, но если вдруг кому надо будет.
UPD: Насчет того, как присвоить роль - в методе добавления нового пользователя делаете следующее:
public function roleIdentity()
{
if($role=1){
return 'admin';
}elseif($role=2){
return 'manager';
}
}
в методе сreate:
$auth = Yii::$app->authManager;
$aRole = $auth->getRole($this->roleIdentity());
$auth->assign($aRole, $user->getId());
Проблема - не могу вытащить список ролей
view: https://pastebin.com/CxcXMhvu
FormModel: https://pastebin.com/V4A18fbG
Отрывок из User.php: https://pastebin.com/9kvd6CHR
P.S. Дисклеймер - знаю, что по-любому накосячил, вопрос, хочу понять - где просто

Google

Alexey
03.04.2018
12:59:35
и то и то — клиенты
когда реализуешь транспортный протокол на пхп - это вылезает боком на хайлоаде ?
сниму слепок в xdebug, покажу ?

Denis
03.04.2018
13:34:05
Kak-rbac кто использовал? Норм?


Artur
03.04.2018
13:41:54
Допил, но у меня там ошибка появилась, так что сейчас буду переделывать))
Это допил какого то пакета или собственное решение ?
Записывает только первую роль, почему-то при выборе менеджера он не проходит по правилу на менеджера
И записывает роль админа
Вопрос (из разряда для чайников, но все-таки туплю)
Как правильно записать в поле item_name : http://prntscr.com/j0a3tw то значение, которое выбрал со списка ролей: http://prntscr.com/j0a4hh при создании пользователя
А то вот этим "велосипедным методом, я, оказывается, просто записывал 1
public function roleIdentity()
{
if($role=1){
return 'admin';
}elseif($role=2){
return 'manager';
}
}
А уже здесь подставлял то, что возвращает в условии (админ, допустим)
$auth = Yii::$app->authManager;
$aRole = $auth->getRole($this->roleIdentity());
$auth->assign($aRole, $user->getId());

Евгений
03.04.2018
14:24:33
У меня тут прописаны роли пользователей

Artur
03.04.2018
14:25:23
У меня тоже, у меня такая же таблица
Просто при экшене создания мне туда надо передать item_name, но его он передать не может
Так как я его, к примеру, не записываю в таблицу профиля, а потом оттуда передаю в ту таблицу, которую ты скинул, допустим

Артур
03.04.2018
14:28:09
всем привет)
<?= $form->field($icon, "[{$index}]icon")->fileInput() ?>
почему прилетает пустая переменная ?((
<?php $form = ActiveForm::begin(['id' => 'dynamic-form','options' => ['enctype' => 'multipart/form-data']]); ?>
делаю в контроллере вар дамп поста
данные прилетают кроме картинки(

Google

Like
03.04.2018
14:33:28
Первый раз вижу такую ошибку
Юзай йода стиль лучше
Тебе будет полезно

Artur
03.04.2018
14:34:05
Так я об этом же написал

Артур
03.04.2018
14:34:06
ой сори) я думал это мне)
протупил(

Artur
03.04.2018
14:34:20
Это мне

Like
03.04.2018
14:34:37

Artur
03.04.2018
14:35:14
Короче говоря - кашу сделал
Вот теперь спрашиваю - как сделать по-нормальному, потому что понимаю, что не записываю я ничего в итоге
P.S. Как раз с помощью условия Йоды я понял, что не записывается в переменную ничего, когда идёт сравнение

Артур
03.04.2018
14:44:54
плиз)))
подскажите почему переменная пустая(
нажал добавить файл но пустая переменная прилетает(
array(1) { [0]=> array(2) { ["icon"]=> string(0) "" ["description"]=> string(4) "aaaa" } }
["icon"] тут должна быть инфа о файле только что добавленом(
кажись понял)
почему (

Katulos
03.04.2018
15:03:15
Больше скобок богу скобок
И смайликами смазать