yii2-netdisk/models/User.php

110 lines
2.8 KiB
PHP
Raw Normal View History

2013-05-24 10:14:49 -04:00
<?php
namespace app\models;
2024-02-09 12:15:09 +08:00
use Yii;
use yii\web\IdentityInterface;
2016-04-28 18:06:20 +02:00
2024-02-09 12:15:09 +08:00
/**
* This is the model class for table "user".
*
* @property int $id 用户ID
* @property string|null $username 用户名
* @property string|null $password 密码
* @property string|null $auth_key authkey
* @property string|null $email 邮箱
* @property int|null $status 用户状态
*/
class User extends \yii\db\ActiveRecord implements IdentityInterface
{
2014-03-16 10:46:16 +06:00
/**
2018-02-19 00:29:21 +02:00
* {@inheritdoc}
2014-03-16 10:46:16 +06:00
*/
2024-02-09 12:15:09 +08:00
public static function tableName()
2014-03-16 10:46:16 +06:00
{
2024-02-09 12:15:09 +08:00
return 'user';
2014-03-16 10:46:16 +06:00
}
2013-05-24 10:14:49 -04:00
2014-03-16 10:46:16 +06:00
/**
2018-02-19 00:29:21 +02:00
* {@inheritdoc}
2014-03-16 10:46:16 +06:00
*/
2024-02-09 12:15:09 +08:00
public function rules()
2014-03-16 10:46:16 +06:00
{
2024-02-09 12:15:09 +08:00
return [
[['username', 'password'], 'required', 'on' => 'login'],
[['username', 'password', 'email'], 'required', 'on' => 'register'],
[['username', 'password', 'auth_key', 'email'], 'string', 'max' => 255],
[['status'], 'integer'],
];
2014-03-16 10:46:16 +06:00
}
2013-05-24 10:14:49 -04:00
2014-03-16 10:46:16 +06:00
/**
2024-02-09 12:15:09 +08:00
* {@inheritdoc}
*/
public function attributeLabels()
{
return [
'id' => 'ID',
'username' => 'Username',
'password' => 'Password',
'auth_key' => 'Auth Key',
'email' => 'Email',
'status' => 'Status',
];
}
/**
* Finds an identity by the given ID.
2014-03-16 10:46:16 +06:00
*
2024-02-09 12:15:09 +08:00
* @param string|int $id the ID to be looked for
* @return IdentityInterface|null the identity object that matches the given ID.
2014-03-16 10:46:16 +06:00
*/
2024-02-09 12:15:09 +08:00
public static function findIdentity($id)
2014-03-16 10:46:16 +06:00
{
2024-02-09 12:15:09 +08:00
return static::findOne($id);
2014-03-16 10:46:16 +06:00
}
2013-05-24 10:14:49 -04:00
2014-03-16 10:46:16 +06:00
/**
2024-02-09 12:15:09 +08:00
* Finds an identity by the given token.
*
* @param mixed $token the token to be looked for
* @param mixed $type the type of the token. The value of this parameter depends on the implementation.
* For example, [[\yii\filters\auth\HttpBearerAuth]] will set this parameter to be `yii\filters\auth\HttpBearerAuth`.
* @return IdentityInterface|null the identity object that matches the given token.
2014-03-16 10:46:16 +06:00
*/
2024-02-09 12:15:09 +08:00
public static function findIdentityByAccessToken($token, $type = null)
2014-03-16 10:46:16 +06:00
{
2024-02-09 12:15:09 +08:00
// This method is not needed if you don't use access tokens for authentication.
return null;
2014-03-16 10:46:16 +06:00
}
2013-05-24 10:14:49 -04:00
2014-03-16 10:46:16 +06:00
/**
2024-02-09 12:15:09 +08:00
* Returns the ID of the user.
*
* @return string|int the ID of the user
2014-03-16 10:46:16 +06:00
*/
2024-02-09 12:15:09 +08:00
public function getId()
2014-03-16 10:46:16 +06:00
{
2024-02-09 12:15:09 +08:00
return $this->id;
2014-03-16 10:46:16 +06:00
}
/**
2024-02-09 12:15:09 +08:00
* Returns an auth key used to authenticate cookie-based login.
*
* @return string the auth key
2014-03-16 10:46:16 +06:00
*/
2024-02-09 12:15:09 +08:00
public function getAuthKey()
2014-03-16 10:46:16 +06:00
{
2024-02-09 12:15:09 +08:00
return $this->auth_key;
2014-03-16 10:46:16 +06:00
}
/**
2024-02-09 12:15:09 +08:00
* Validates the given auth key.
2014-03-16 10:46:16 +06:00
*
2024-02-09 12:15:09 +08:00
* @param string $authKey the given auth key
* @return bool whether the given auth key is valid.
2014-03-16 10:46:16 +06:00
*/
2024-02-09 12:15:09 +08:00
public function validateAuthKey($authKey)
2014-03-16 10:46:16 +06:00
{
2024-02-09 12:15:09 +08:00
return $this->getAuthKey() === $authKey;
2014-03-16 10:46:16 +06:00
}
2024-02-09 12:15:09 +08:00
}