Yii Используйте две разные таблицы для входа с разными RBAC

0

Я хочу использовать две разные таблицы для входа. Один для пользователей и один для входа в систему. В настоящее время существует только один пользователь таблицы, и я использую yii, встроенный в RBAC, и все работает нормально. Теперь я хочу добавить вторую таблицу "Персонал" для входа без RBAC. Поэтому во время входа в систему он сначала проверяет имя пользователя в таблице "Пользователи", и если он его не будет, он будет проверять таблицу "персонал", а затем проверять пароль. Я смог логически логически войти в систему. Но теперь проблема RBAC. Таблица "AuthAssignment" имеет userid как внешний ключ таблицы "users", поэтому, если идентификатор штата имеет соответствующий идентификатор в таблице "users", система будет предоставлять доступ в соответствии с ролью таблицы "пользователей". Как я могу избежать этого, если логин из таблицы сотрудников. Можно ли различать роль для таблицы "персонал" или можно ли не использовать роль для таблицы "персонал".

Пожалуйста помоги. Заранее спасибо.

  • 0
    Зачем вам 2 таблицы?
  • 0
    Таблица персонала @Naruto будет иметь больше записей и может иметь или не иметь имя пользователя и пароль. Также он используется только в одном модуле, поэтому я хочу отделить это.
Теги:
yii

1 ответ

0

Лучше иметь одну таблицу для логинов (из-за FK и отношений).

[user]

ID | username | password | type

Вместо таблицы с информацией о персонале и пользователях с различными полями:

[staff]

ID | user_id | workstation_id | favorit_tool | ... 

[user_info]

ID | user_id | name | surname | address | ...

Чем в Yii вы можете делать отношения:

[userModel]

public function relations() {
    return [
        'stuff' => [self::BELONGS_TO, 'stuff', 'user_id', 'condition' => 'type = '.static::TYPE_STUFF],
        'info' => [self::BELONGS_TO, 'user_info', 'user_id',
    ];
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню