User.php 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. <?php
  2. namespace app\models;
  3. use dektrium\user\helpers\Password;
  4. use dektrium\user\models\Token;
  5. use Yii;
  6. class User extends \dektrium\user\models\User
  7. {
  8. public $last_login_at;
  9. public function scenarios()
  10. {
  11. return [
  12. 'register' => ['username', 'email', 'password', 'fio', 'org_type', 'member_phone', 'role', 'fax', 'at_org'],
  13. 'connect' => ['username', 'email'],
  14. 'create' => ['role','username', 'email', 'password'],
  15. 'update' => ['username', 'email', 'password'],
  16. 'settings' => ['username', 'email', 'password'],
  17. ];
  18. }
  19. public function rules()
  20. {
  21. return [
  22. 'roleRequired' => ['role', 'required'],
  23. 'usernameRequired' => ['username', 'required', 'on' => ['register', 'connect', 'create', 'update']],
  24. 'usernameMatch' => ['username', 'match', 'pattern' => '/^[-a-zA-Z0-9_\.@]+$/'],
  25. 'usernameLength' => ['username', 'string', 'min' => 3, 'max' => 150],
  26. 'usernameUnique' => ['username', 'unique'],
  27. 'usernameTrim' => ['username', 'trim'],
  28. 'emailRequired' => ['email', 'required', 'on' => ['register', 'connect', 'create', 'update']],
  29. 'emailPattern' => ['email', 'email'],
  30. 'emailLength' => [['email', 'at_org'], 'string', 'max' => 255],
  31. 'emailUnique' => ['email', 'unique'],
  32. 'emailTrim' => ['email', 'trim'],
  33. 'passwordRequired' => ['password', 'required', 'on' => ['register']],
  34. 'passwordLength' => ['password', 'string', 'min' => 6, 'on' => ['register', 'create']],
  35. 'passwordMatch' => ['repeatpassword', 'compare', 'compareAttribute'=>'password', 'message'=>"Passwords don't match"],
  36. ['verifyCode','captcha', 'captchaAction'=>'auth/open/captcha']
  37. ];
  38. }
  39. public function attributeLabels()
  40. {
  41. return [
  42. 'fio' => \Yii::t('app', 'FIO'),
  43. 'role' => \Yii::t('app', 'Role'),
  44. 'role_user' => \Yii::t('app', 'Role'),
  45. 'username' => \Yii::t('app', 'Username'),
  46. 'email' => \Yii::t('app', 'Email'),
  47. 'registration_ip' => \Yii::t('app', 'Registration ip'),
  48. 'unconfirmed_email' => \Yii::t('app', 'New email'),
  49. 'password' => \Yii::t('app', 'Password'),
  50. 'repeatpassword' => \Yii::t('app', 'Repeat Password'),
  51. 'created_at' => \Yii::t('app', 'Registration time'),
  52. 'confirmed_at' => \Yii::t('app', 'Confirmation time'),
  53. 'fax' => \Yii::t('app', 'fax'),
  54. 'captcha' => \Yii::t('app', 'captcha'),
  55. 'at_org' => Yii::t('app', 'Company full name')
  56. ];
  57. }
  58. public function getProfile(){
  59. return $this->hasOne(Profile::className(), ['user_id' => 'id']);
  60. }
  61. public function getAt_org(){
  62. return $this->profile->at_org;
  63. }
  64. }