• Как правильно использовать RBAC с разными моделями?

    myks92
    @myks92 Куратор тега Yii
    bezdealnick, в auth_users у вас хранится только те, кто пользуются системой. Если у кого-то ещё нет данных, то он регистрируется или регистрируете его вы.

    Подозреваю вы меня не поняли видимо. Auth Users это единая система для авторизации.

    Все остальное это информационные таблицы для работы системы.

    Авторизовывать клиента по паспорту очень странно) Как минимум это персональные данные.
  • Как правильно использовать RBAC с разными моделями?

    myks92
    @myks92 Куратор тега Yii
    Таблица auth_users имеет не только id и хэш. Она так же имеет логин и пароль. Или другие данные для аутенфикации.
    - id
    - login
    - password
    - status
    ....

    В таблице crm_employees
    - id
    - user_id
    - name
    - gender
    ...

    В таблице crm_clients
    - id
    - user_id
    - name
    - passport
    - gender
    ....
  • Правильно ли реализованы классы?

    myks92
    @myks92 Куратор тега PHP
    4sadly, Дак вы перейдите и посмотрите. Я же вам выслал код исходник.
  • Как восстановить пароль в yii2?

    myks92
    @myks92 Куратор тега Yii
    kanly, может в хостинге, может в настройках сервера, может в настройках фреймворка, может в коде, может в базе, может, может, может, может... Этих может будет куча. Отсекайте лишнее. Сужайте круг. Ну в конце концов если не используете дебаггер возьмите функции var_dump(123); die(); И ставьте везде где сомневаетесь. Как пропадёт белый экран 123 уже найдёте место.
  • Как восстановить пароль в yii2?

    myks92
    @myks92 Куратор тега Yii
    это не задание
    Поэтому я написал, возможно. Я могу лишь выделить для вас цитаты и пояснить, почему это не вопрос программиста.

    главную страницу кидает
    кидать на главную может и неавторизованного пользователя. А может у вас при восстановлении пароля редирект на другую страницу, допустим она для вас главная. Главная страница для каждого своя. Для кого-то это site/index, для кого-то это main/site/intex, для кого-то home/index, а кто-то и вовсе может додуматься поставить страницу главной site/login. Были такие случаи на тостере. При логине говорит ошибка тайм-аута. Естественно. Бесконечный редирект...

    вроде после отправки должно выходить флеш сообщения об отправки или ошибке, но ниче не выходить.
    флеш сообщение выводится в том случае, если вы этот флеш добавили. Но в одном вы правы. Ошибка практически всегда, если она есть. Но бывает и её нет. Например, при валидации отсутствующего поля формы. Ошибка есть, но вы её не видите. В то же время форма не отправляется, данные не сохраняются.

    И еще у мя в таблице user нет username, для входа использую email если это как нибудь влияет на отправку.
    А кто знает влияет это или не кроме как не вы? Вы ещё скажите какой у вас длины пароль, какого цвета шрифт и так далее...

    Я вас не потролить хочу, а чтобы вы свой вопрос переформулировали. На вопрос нельзя дать однозначный ответ. Мой вам совет, если не понимаете, прочтите документацию. Как минимум вкладку безопасность и настройки почты. Сравните код со своим. Скорее всего найдёте ответ ещё и поймёте, что документацией можно ещё и пользоваться. Типичная русская культура. Разберёмся на деле, а инструкцию потом почитаем.
  • Как восстановить пароль в yii2?

    myks92
    @myks92 Куратор тега Yii
    kanly,
    я не просил разобраться, если сталкивались хотел узнать причину
    опыт большой. Причины бывают всякие, они даже могут не зависеть от Yii.

    у меня не выдает никаких ошибок тоже, и я и так готовую использую в advanced
    подозрительно анонимная у вас система и ещё работоспособность advanced шаблона ставите под сомнение)) Он то точно рабочий без вмешательств..
  • Как выкинуть пользователей при смене пароля в Yii2?

    myks92
    @myks92 Куратор тега Yii
    вот так это может выглядеть. При смене authKey вас разлогинивает. Можно разлогинивает даже при смене username или email.
  • Как выкинуть пользователей при смене пароля в Yii2?

    myks92
    @myks92 Куратор тега Yii
    Praporshhik_Zadov, Читайте документацию!

    public function validateAuthKey($authKey)
        {
            return $this->getAuthKey() === $authKey;
        }


    User и Identity лучше сразу отделить!
  • Как выкинуть пользователей при смене пароля в Yii2?

    myks92
    @myks92 Куратор тега Yii
    Алексей Петров, все все делаете через конфиге и befofeAction?) Документацию тоже не учили читать и изучать как работает проверка кук, сессий?) Вам для этого надо дор поле) А если изменился email, токен, телефон? Будет второе доп. поле, полагаю?) Или это измените под что-то общее?) Вариантов может быть много) Изучайте Identity который отвечает за это все и по умолчанию привязан к user. Но можно и вынеси это все отдельно.

    По моему там для русских написано:

    findIdentity(): Этот метод находит экземпляр identity class, используя ID пользователя. Этот метод используется, когда необходимо поддерживать состояние аутентификации через сессии.
    findIdentityByAccessToken(): Этот метод находит экземпляр identity class, используя токен доступа. Метод используется, когда требуется аутентифицировать пользователя только по секретному токену (например в RESTful приложениях, не сохраняющих состояние между запросами).
    getAuthKey(): Этот метод возвращает ключ, используемый для основанной на cookie аутентификации. Ключ сохраняется в аутентификационной cookie и позже сравнивается с версией, находящейся на сервере, чтобы удостоверится, что аутентификационная cookie верная.
    validateAuthKey(): Этот метод реализует логику проверки ключа для основанной на cookie аутентификации.
  • Yii2 как отключить пагинацию или увеличить лимит?

    myks92
    @myks92 Куратор тега Yii
    marsdenden, я так говорю лишь по одной причине. Есть опыт других, который помогает не совершать ошибок других.

    Вам никто не запрещает так делать или делать как вы считаете нужным. Для этого вы и программист, который оценивает все за и против) Я лишь сказал своё мнение и общую практику)

    Согласен, с вашим решением при этом)

    Можно писать запросы прямо в view. Такое тоже есть) Можно и бизнес логику поместить В view. Файлы php это допускают. Но поддержка такого проекта будет проблемной в будущем. И зная это вы должны принимать своё решение. Идеальных вариантов нет. Везде плюсы и минусы. При этом в каждой задаче приоритеты разные.
  • Yii2 как отключить пагинацию или увеличить лимит?

    myks92
    @myks92 Куратор тега Yii
    marsdenden, это вас надо спросить) Если вы больше никаких методов не создавали, то нет.
  • Где найти миграции RBAC для mongoDB?

    myks92
    @myks92 Куратор тега Yii
    ioseogio, изначально можно было спуститься в вендор и посмотреть какие там есть миграции)

    Есть такие разработчики. Но это очень редко. Вот, например, пакет RBAC для Yii2 MongoDB. Но там тоже нет миграций. Быстро ничего путного не нашел.
  • Yii2 как отключить пагинацию или увеличить лимит?

    myks92
    @myks92 Куратор тега Yii
    И второй момент. У вас полностью отключён пагинатор. Если в базе будет 1 000 000 он будет пытаться вывести его весь!
  • Yii2 как отключить пагинацию или увеличить лимит?

    myks92
    @myks92 Куратор тега Yii
    Решение будет работать только для index и для одного контроллера, если не использовать общий. А если вам нужно будет не только index?) Временный вариант для одной страницы - да. Если для всех - используйте мой вариант. Но у вас 60 000 лимиты для всех страниц я бы не делал. Так что для одной страницы подходит.
  • Yii2 как отключить пагинацию или увеличить лимит?

    myks92
    @myks92 Куратор тега Yii
    marsdenden, если перечитаете мой ответ, то там уже есть решение) Вы просто бегло прочитали ответ.

    Дефолтное значение:
    $pageSizeLimit = [1, 50]

    При таком значении никакие 1000 не выйдут) Написано же 1-50. Если хотите больше надо переопределять переменную пагинатора.

    Вот пример как это можно сделать на примере LinkPager. Вам нужно так же, только для Paginator
  • Где найти миграции RBAC для mongoDB?

    myks92
    @myks92 Куратор тега Yii
    ioseogio, зайдите в rbac-миграции и сами ответите на свой вопрос)
  • Как в activeField yii2 с имени инпута убрать formName?

    myks92
    @myks92 Куратор тега Yii
    devilsD, я знаю.

    Зачем вам форма в API?
  • Как правильно использовать RBAC с разными моделями?

    myks92
    @myks92 Куратор тега Yii
    Я то вас как раз понял. Это вы не поняли ни меня, ни другой ответ.
    Вопрос как раз и состоит в том, что если заказчику приспичит добавить роли клиентам, то мне нужно будет дополнительно заводить rbac таблицы в дб, вместо добавления в существующие?

    Об этом и речь!)) А если заказчику приспичит и там и там ввести двухтактную авторизацию - вам придётся делать её в обоих местах. А если заказчику понадобиться сделать возможность логиниться под Различными сом сетями - вам опять придётся делать это в двух приложениях ну так далее по списку.

    Если с rbac ещё можно пойти так, так как это будет разделение ответственностей, то двухфакторная авторизация не относится ни к клиентам, ни к сотрудникам. У вас в приложении будет:

    Auth
    - User
    Crm
    - Contragent
    - Employee
    Rbac
    - ...

    Rbac может быть общий, может быть помещён в Auth, а может быть на каждую независимую часть приложения свой. И это не обязательно может быть Yii Rbac.

    Это у вас сейчас система из двух приложений. Вам просто сделать и там и там. А если у вас завтра появится какой-нибудь склад, потом приложение lk потом вообще мобильное приложение. Как ты будете это связывать? Что в каждое приложение будете дублировать логику? Или будете из frontent брать одно из backend другое?

    Я вам говорю, что ваш способ это единая таблица User. А если сомневаетесь, то вот вам целый сервис, который отвечает за пользователей. И теперь посмотрите готовы ли такую логику в будущем при необходимости помещать к каждой сущности.
  • Сайт выполнил переадресацию слишком много раз, как решить?

    myks92
    @myks92 Куратор тега Yii
    djienbaev97, ну Дак читайте ошибку. Закиньте в переводчик.
  • Как правильно использовать RBAC с разными моделями?

    myks92
    @myks92 Куратор тега Yii
    bezdealnick, для единой системы вам логично иметь логин и пароль в users.

    Если у вас есть в employees и в customers свои логины/пароли и вы не хотите их объединить в одной users, то можете пойти противоположным путём. И использовать два приложения как независимые со своими логинами и паролями в каждом.

    В backend пользователи employees, во frontend customers. Тогда вам придётся делать два Rbac и не будет единого пользователя и единых прав доступа между этими приложениями. Они будут автономны.

    В таком случае роли помещайте в каждой из этих таблиц. Для customers у вас будут свои 4 таблицы от rbac, а для employees 4 таблицы от rbac.

    Но ещё раз говорю лучше способ на 3 таблицы:

    auth_users
    crm_employees
    crm_customers