@yii2ru

Страница 72 из 1721
Stanislav
11.02.2017
07:49:34
А есть готовые интернет-магазины на yii2?
Сделай свой магазин с блекджеком и шлюхами

yii, модели знаю по большому счету. рилейшены знаю пока только один ко многим. RBAC сложно усвоить, но я постараюсь.)
RBAC на ютубе уже каждый школьник объясняет, не вижу препятствий взять пару кружек кофе и за денёк разобрать полностью что и как там.

Konstantin
11.02.2017
08:20:10
на ютубе все видосы однотипные, как устанавливать где что лежит, кароче ничего путного нет

мало видосов где бы объясняли зачем они здесь пишут это а в другом файле другое, и не объясняют например что будет если другое указать. вот тупо с мануала читают, здесь так поставьте там вот так, т.е. не включая размышление

Google
Konstantin
11.02.2017
08:23:13
на англоязычных вроде неплохие видосы но там чисто по интуиции понимать приходится)))

Stanislav
11.02.2017
08:38:48
Как бы так сказать.. для начального понимания на ютубе достаточно, а потом просто открываешь документацию, включаешь IDE и смотришь как там что устроено

Ведь магии никакой нет, и там такой же php код как и везде

А вот если вы в PHP еще не разумны и лезете уже во фреймворки, ставите rbac по беспределу - это уже другой разговор)

lxShaDoWxl
11.02.2017
09:04:29
Если вам rbac нужен только для разделения на админ и пользователь, то проще всего сделать 2 авторизации, и отделить в базе админов и пользователь по разным таблицам

Artur
11.02.2017
13:06:49
Если вам rbac нужен только для разделения на админ и пользователь, то проще всего сделать 2 авторизации, и отделить в базе админов и пользователь по разным таблицам
Зачем отделять? Можно использовать одну таблицу, в котором будет поле "is_admin" => true or false И создать метод типа Yii::$app->user->identity->isAdmin(), который будет возвращать нужный ответ

Так будет правильнее, мне кажется

Ну это чисто мое мнение, 17 летнего школьника

SiZE
11.02.2017
13:56:57
не пойдет. identity может и не быть

Andrey
11.02.2017
13:59:28
Не обязательно вызвать через identity

Google
Andrey
11.02.2017
14:00:22
Статического метода модели User вполне бы хватило.

Artur
11.02.2017
14:08:08
Не обязательно вызвать через identity
Так я как пример это привел

ivphpan
11.02.2017
14:23:42
вопрос есть в рест использую HttpBearerAuth обрашаюсь с другого домена /user/info браузер сначала отправлет OPTIONS запрос на что получает 401 не авторизован может кто сталкивался?

SiZE
11.02.2017
14:28:09
мало данных

но вообще смотри что у тебя вперед чего вызывается

ivphpan
11.02.2017
14:38:06
OPTIONS но он заголовки авторизации не посылает

Почему то

SiZE
11.02.2017
14:39:50
смотри в браузере что у тебя там

ivphpan
11.02.2017
14:56:22
$behaviors['authenticator'] = [ 'class' => HttpBearerAuth::className(), 'only' => $authAction, 'except'=>['options','option'] ];



SiZE
11.02.2017
14:59:13
так это самое. причем тут yii ?

кто у тебя запрос отправляет?

ivphpan
11.02.2017
14:59:58
в смысле кто

я с одного домена обращаюсь на другой домен путем $.ajax

jQuery

SiZE
11.02.2017
15:00:33
ну

ivphpan
11.02.2017
15:01:00
$.ajax({ type: 'get', url: '<URL>', headers:{'Authorization':'Bearer <TOKEN>'}, contentType: 'application/json;', dataType: 'json', success: function(result) { data = result; }, // use success? complete: function(result) { data = result; } // or use complete? });

почему то в postman без проблем все получаю

SiZE
11.02.2017
15:02:00
Тебе надо или отключить авторизацию для OPTIONS запросов или передавать заголовок

ivphpan
11.02.2017
15:02:22
ivphpan, [11.02.17 19:56] $behaviors['authenticator'] = [ 'class' => HttpBearerAuth::className(), 'only' => $authAction, 'except'=>['options','option'] ];

Google
ivphpan
11.02.2017
15:02:29
так я тут же указал except

SiZE
11.02.2017
15:04:15
в контроллере в методе behaviors выведи список всех поведений

ivphpan
11.02.2017
15:04:16
видимо это роли не играет

решилось по другому

$authAction = $this->authAction(); if ($authAction && !$this->isOptions()) { $behaviors['authenticator'] = [ 'class' => HttpBearerAuth::className(), 'only' => $authAction, 'except'=>['options','option'] ]; }

просто смысл тогда в except?

except идет экшенов

но не типов запросов

Aleksandr
11.02.2017
15:09:11
при preflight авторизация не отправляется по спеке

ivphpan
11.02.2017
15:12:14
а по русски?

SiZE
11.02.2017
15:14:08
а по русски?
в options не отправляется Authorization

хотя тоже не очень по-русски

ivphpan
11.02.2017
15:14:34
$.ajax({ type: 'get', url: '<URL>', headers:{'Authorization':'Bearer <TOKEN>'}, contentType: 'application/json;', dataType: 'json', success: function(result) { data = result; }, // use success? complete: function(result) { data = result; } // or use complete? });

перед ним браузер отправляет свой запрос

OPTIONS

а потом уже гет

но в опшн запрос он не добавляет headers:{'Authorization':'Bearer <TOKEN>'},

SiZE
11.02.2017
15:16:14
тебе всего то надо продебажить пару методово и понять, где ты ошибся

я тебе предложил посмотреть список behaviors в конечном контроллере

Aleksandr
11.02.2017
15:16:51
options, который отрпавляется перед запросом, называется preflight-запрос - его цель проверить разрешен ли доступ в контексте cors. По спецификации в этот запрос НЕ ДОЛЖНА включать авторизационная информация. т.е. поведение верное

Google
Aleksandr
11.02.2017
15:17:39
почему у тебя не работает except тебе ответит 5 минут дебага. больше тут обсуждатьнечего если речь идет о трех строчках из документации

ivphpan
11.02.2017
15:20:01
я решил вопрос просто из коробки видимо except не предусматривает OPTIONS запрос

Aleksandr
11.02.2017
15:20:43
примеры в issue гитхаба говорят об обратном

https://github.com/yiisoft/yii2/issues/6254

ivphpan
11.02.2017
15:22:32
так у меня except options прописан был $behaviors['authenticator'] = [ 'class' => HttpBearerAuth::className(), 'only' => $authAction, 'except'=>['options','option'] ];

Admin
ERROR: S client not available

Denis
11.02.2017
15:33:27
Ребят такой вопрос мне нужно сменить конфиг приложения после завершения парсинга url manager'a. Url manager кастомный и пихать в него код как то не очень. Короче мне нужно изменить параметр приложения а в ul manger'e инциализируется язык сайта, куда это лучше впихнуть?

Artur
11.02.2017
15:48:46
Ребят. Есть ссылка вида site.ru/site/apps/index Нужно сделать только site.ru/apps В urlManager добавляю правило ['pattern' => 'apps', 'route' => 'site/apps/index'] При переходе на site.ru/apps получаю 404

Почему так?

Nurik
11.02.2017
16:14:55
Ребят такой вопрос мне нужно сменить конфиг приложения после завершения парсинга url manager'a. Url manager кастомный и пихать в него код как то не очень. Короче мне нужно изменить параметр приложения а в ul manger'e инциализируется язык сайта, куда это лучше впихнуть?
Ты что-то делаешь не так. Надо искать другое решение. Не конфиг нужно менять, а сам UrlManager вопрос где и как —зависит от задач. А вот уже логику смены можно описать в конфиге.

Denis
11.02.2017
16:18:02
Смотрите у меня url manager меняет язык системы исходя из запроса /ru /en /de и т.д. И ставит yii app language en, данный url manager нашел на гитхабе, и в чем суть мне валюту нужно подстраивать под язык а валюта берется из yii app params currency

ме нужно менять этот параметр взависимости от языка, язык меняется в url manager'e во время handleRequest

Посмотрю пока в сторону событий

Nurik
11.02.2017
16:22:12
Конфиг на то и конфиг - что не должен меняться динамически и тем более неявно привязываясь к urlManager'у. Ты что значение валюты хранишь в конфиге ?

А вообще почему нельзя сделать так: 'ru_RU'=>'RU', 'en_EN'=>'USD'

Denis
11.02.2017
16:24:09
ну вообще получается что так, просто доступ из layout'a к контроллеру как сделать, вот я самое простое и прокинул через params

хотя нет фигню написал только что там другая логика вообще

Валюта хранится в парметрах потому что нужна во вьюхах и в моделях для подсчета цены, а в моделях смотрит по этому параметру какую запись из бд брать, а во вью символ цены ставится уже исходя из этого параметра, просто не камельфо возвращать из модели 12$ сразу, поэтому в конфиг закинул

Google
Artur
11.02.2017
16:28:46
Парни, вопрос такой. юзаю swiftmailer, отправляю через smtp яндекса. можно как то поменять конфиг так, что бы отправка шла не через smtp, а через дефолтный пхпшный mail() ?

Artur
11.02.2017
16:31:39
http://php.net/manual/ru/function.mail.php через вот это

Nurik
11.02.2017
16:32:20
http://php.net/manual/ru/function.mail.php через вот это
Так ты знаешь как работает оно ?

Копай в сторону MTA — mail transfer agent, там разберешься как все устроено и что нужно именно тебе.

И читай внизу твоей ссылки

Замечание: Реализация функции mail() в Windows во многом отличается от реализации в Unix. Во-первых, она не использует локальную программу для составления писем, а работает непосредственно с сокетами, что означает что необходим почтовый агент (MTA), ожидающий соединений на сокете (может быть как на локальном так и на удаленном сервере). Во-вторых, дополнительные заголовки вроде: From:, Cc:, Bcc: и Date: интерпретируются в первую очередь не, MTA, а PHP. Поэтому параметр to не должен быть адресом вида "Something <someone@example.com>". Команда mail может неправильно интерпретировать этот адрес во время передачи данных MTA.

Artur
11.02.2017
16:36:18
спасибо, шас гляну

Nurik
11.02.2017
16:40:56
Валюта хранится в парметрах потому что нужна во вьюхах и в моделях для подсчета цены, а в моделях смотрит по этому параметру какую запись из бд брать, а во вью символ цены ставится уже исходя из этого параметра, просто не камельфо возвращать из модели 12$ сразу, поэтому в конфиг закинул
Первое что приходит в голову:. 1. Валюты хранишь в таблице в БД - и задаёшь им там время актуальности, когда тяшешь из API. 2. На это же время кэшируешь. 3. В конфиге прописываешь: ["ru_RU"=>'RU',"en_EN"=>"USD"] //Ну или вообще код валюты 4. Пишешь геттер в модели (валюты) 4.1 В нем Yii::$app->params['currency'][<твой_язык_в_данный_момент>] 5. Там где надо делаешь вызов геттера 6. ???? 7. Profit!!!

lxShaDoWxl
11.02.2017
16:54:27
Nurik
11.02.2017
18:49:23

Страница 72 из 1721