2017-01-13 9 views
0

Я разрабатываю приложение, используя расширенный шаблон Yii2.Два совершенно разных пользователя с интерфейсом in Yii2 advanced

У меня уже есть два разных сеанса, разделенных для бэкэнд и пользователей. Мои main.php файлы, как это:

// frontend/config/main.php 
... 
'user' => [ 
    'identityClass' => 'common\models\User', 
    'enableAutoLogin' => true, 
], 
... 

// backend/config/main.php 
... 
'user' => [ 
    'identityClass' => 'backend\models\BEUser', 
    'enableAutoLogin' => true, 
], 
... 

Я столкнулся с проблемами при попытке реализовать пользователя на второй отдельный внешний интерфейс. Прямо сейчас, когда я вхожу в систему для другой модели пользователя, я вошел в систему как обычный пользователь интерфейса.

Я не хочу использовать RBAC, потому что я хочу, чтобы два разных типа пользователей полностью разделяли. Это означает, что разные таблицы базы данных, разные имена сеансов, разные страницы входа и доступ к совершенно другим частям и страницам веб-сайта.

Я думаю о добавлении отдельной записи «user2» в frontend/config/main.php, но я не могу найти подобного руководства в Интернете. Поэтому я предполагаю, что это невозможно.

У вас есть предложения по этому поводу? Спасибо.

+0

Почему бы не добавить второй внешний интерфейс, а? – topher

+0

Я подумал об этом. Однако, похоже, это не стоит того. Мне нужен второй пользователь только для одной или двух отдельных страниц. Создание отдельного интерфейса с другой конфигурацией, контроллерами и т. Д., Я не знаю, кажется слишком большим. Должен быть другой путь. –

+0

* «разные таблицы базы данных, разные имена сеансов, разные страницы входа и доступ к совершенно другим частям и страницам сайта» *. Кажется, стоит усилий, учитывая все вышесказанное. Легче тестировать и поддерживать. – topher

ответ

0

Я действительно не испытал это, однако, вы можете быть в состоянии сделать это путем создания в вашем веб-интерфейсе в user2 создать LoginForm2 модель, которая вместо того, чтобы использовать user компонента он использует user2 компонент, чтобы сделать вход.

интерфейс конфигурации:

'user2' => [ 
    'class' => 'yii\web\User', 
    'identityClass' => 'common\models\User2', 
    'enableAutoLogin' => true, 
], 

LoginForm2.php:

public function login() { 
    if ($this->validate()) { 
     return Yii::$app->user2->login($this->getUser(), 1800); 
    } 
    return false; 
} 
+0

Внедряя вышеизложенное, я столкнулся с ошибкой «Определение неизвестного свойства: common \ models \ User2 :: identityClass». Есть идеи? –

+0

Отредактировано код для добавления 'class' для' user2' – marche

+0

Вы проверили код, который вы опубликовали? К сожалению, это тоже не работает. Когда я вхожу в систему с учетной записью user2, у меня также есть доступ как обычный пользователь в других частях веб-сайта, который я не хочу. –

 Смежные вопросы

  • Нет связанных вопросов^_^