В общем имеется стандартная модель User которая привязана к таблице %user, мне необходимо сделать способ авторизации через другую таблицу, не используя RBAC. Логика проста, я пробегаю по своей таблице "Subscriber"
и выбираю всех пользователей со статусом "is_subscribed" = 1.
На данный момент из того что я сделал, это создал новую модель для ввода данных со страницы авторизации.
И приходит мне только "UserName"
$model = new LoginForm;
$res['model'] = $model;
return $this->render('login',$res);
Вот, по логике я должен дальше передать эти данные в модель
Допустим так
if($model->load(Yii::$app->request->post() && $model->validate()){
// тут надо придумать способ передачи в модель для проверки существования пользователя
}
Моя модель на данный момент почти пустая, и выглядит примерно так
namespace common\models;
class User extends ActiveRecord implements IdentityInterface
{
const STATUS_ACTIVE = 1;
const STATUS_NO_ACTIVE = 0;
public static function tableName()
{
return '{{%subscribers}}';
}
public function behaviors()
{
return [
TimestampBehavior::className(),
];
}
public function rules()
{
return [
['status', 'default', 'value' => self::STATUS_ACTIVE],
['status', 'in', 'range' => [self::STATUS_ACTIVE, self::STATUS_NO_ACTIVE]],
];
}
public static function findIdentity($phone)
{
return static::findOne(['phone_number' => $phone, 'status' => self::STATUS_ACTIVE]);
}
public static function findIdentityByAccessToken($token, $type = null)
{
throw new NotSupportedException('"findIdentityByAccessToken" is not implemented.');
}
public function getId()
{
return $this->getPrimaryKey();
}
public function getAuthKey()
{
return $this->auth_key;
}
public function validateAuthKey($authKey)
{
return $this->getAuthKey() === $authKey;
}
public function generateAuthKey()
{
$this->auth_key = Yii::$app->security->generateRandomString();
}
}
Вот в чем вопрос, для дальнейшей проверки, мне надо в этой же модели использовать другую таблицу, допустим "tb_subscriber_paymemt"
и там вторая часть логики на проверку оплаты пользователей, к доступу на сайт.
Каким способом можно это реализовать?
Т.е. каким способ подключить вторую таблицу для проверки, наличия оплаты у этого пользователя?