This repository has been archived by the owner on Mar 26, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathUser.php
94 lines (80 loc) · 2.38 KB
/
User.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
<?php
namespace App;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
use Illuminate\Validation\Rule;
class User extends Authenticatable
{
use Notifiable;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'name', 'email', 'password', 'avatar', 'bio', 'role'
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];
/*
|------------------------------------------------------------------------------------
| Validations
|------------------------------------------------------------------------------------
*/
public static function rules($update = false, $id = null)
{
$commun = [
'email' => "required|email|unique:users,email,$id",
'password' => 'nullable|confirmed',
];
if ($update) {
return $commun;
}
return array_merge($commun, [
'email' => 'required|email|max:255|unique:users',
'password' => 'required|confirmed|min:6',
]);
}
/*
|------------------------------------------------------------------------------------
| Attributes
|------------------------------------------------------------------------------------
*/
public function setPasswordAttribute($value='')
{
$this->attributes['password'] = bcrypt($value);
}
public function getAvatarAttribute($value)
{
if (!$value) {
return 'http://placehold.it/160x160';
}
return config('variables.avatar.public').$value;
}
public function setAvatarAttribute($photo)
{
$this->attributes['avatar'] = move_file($photo, 'avatar.image');
}
/*
|------------------------------------------------------------------------------------
| Boot
|------------------------------------------------------------------------------------
*/
public static function boot()
{
parent::boot();
static::updating(function($user)
{
$original = $user->getOriginal();
if (\Hash::check('', $user->password)) {
$user->attributes['password'] = $original['password'];
}
});
}
}