User.php 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. <?php
  2. namespace app\models\user;
  3. use dektrium\user\helpers\Password;
  4. use dektrium\user\models\Token;
  5. use Exception;
  6. use RuntimeException;
  7. use Yii;
  8. use yii\helpers\ArrayHelper;
  9. use yii\helpers\Html;
  10. use yii\helpers\Url;
  11. use dektrium\user\models\User as BaseUser;
  12. /**
  13. *
  14. * @property Organizations $organization
  15. */
  16. class User extends BaseUser
  17. {
  18. /** @inheritdoc */
  19. public function attributeLabels()
  20. {
  21. return [
  22. 'uuid' => \Yii::t('user', 'Nomer Dogovora'),
  23. 'username' => \Yii::t('user', 'Username'),
  24. 'fio' => \Yii::t('user', 'Fio'),
  25. 'cname' => \Yii::t('user', 'Company name'),
  26. 'type' => \Yii::t('user', 'Role'),
  27. 'email' => \Yii::t('user', 'Email'),
  28. 'phone' => \Yii::t('user', 'Phone'),
  29. 'address' => \Yii::t('user', 'Address'),
  30. 'registration_ip' => \Yii::t('user', 'Registration ip'),
  31. 'unconfirmed_email' => \Yii::t('user', 'New email'),
  32. 'password' => \Yii::t('user', 'Password'),
  33. 'created_at' => \Yii::t('user', 'Registration time'),
  34. 'last_login_at' => \Yii::t('user', 'Last login'),
  35. 'confirmed_at' => \Yii::t('user', 'Confirmation time'),
  36. ];
  37. }
  38. public function scenarios()
  39. {
  40. $scenarios = parent::scenarios();
  41. return ArrayHelper::merge($scenarios, [
  42. 'api' => ['username', 'password'],
  43. ]);
  44. }
  45. /** @inheritdoc */
  46. public function rules()
  47. {
  48. return [
  49. // username rules
  50. 'usernameTrim' => ['username', 'trim'],
  51. 'usernameRequired' => ['username', 'required', 'on' => ['register', 'create', 'connect', 'update']],
  52. 'usernameMatch' => ['username', 'match', 'pattern' => static::$usernameRegexp],
  53. 'usernameLength' => ['username', 'string', 'min' => 3, 'max' => 255],
  54. 'usernameUnique' => [
  55. 'username',
  56. 'unique',
  57. 'message' => \Yii::t('user', 'This username has already been taken')
  58. ],
  59. // uuid rules
  60. 'uuidInt' => ['uuid', 'integer'],
  61. 'uuidRequired' => ['uuid', 'required', 'on' => ['register', 'create', 'connect', 'update']],
  62. 'uuidUnique' => [
  63. 'username',
  64. 'unique',
  65. 'message' => \Yii::t('user', 'This username has already been taken')
  66. ],
  67. // email rules
  68. 'emailIsEmpty' => ['email', 'default', 'value' => function($model){return empty($model->email) ? $model->username . '@example.com': $model->email;}],
  69. 'emailTrim' => ['email', 'trim'],
  70. 'emailRequired' => ['email', 'required', 'on' => ['register', 'connect', 'create', 'update']],
  71. 'emailPattern' => ['email', 'email'],
  72. 'emailLength' => ['email', 'string', 'max' => 255],
  73. 'emailUnique2' => [
  74. 'email',
  75. 'unique',
  76. 'except' => ['api']
  77. ],
  78. 'emailUnique' => [
  79. 'email',
  80. 'unique',
  81. 'message' => \Yii::t('user', 'This email address has already been taken')
  82. ],
  83. // password rules
  84. 'passwordRequired' => ['password', 'required', 'on' => ['register']],
  85. 'passwordLength' => ['password', 'string', 'min' => 6, 'max' => 72, 'on' => ['register', 'create']],
  86. ];
  87. }
  88. public static function typeNames()
  89. {
  90. return [
  91. 'admin' => t('Адміністратор майданчика'),
  92. ];
  93. }
  94. public static function findIdentityByAccessToken($token, $type = null)
  95. {
  96. return static::findOne(['auth_key' => $token]);
  97. }
  98. }