aboutsummaryrefslogtreecommitdiff
path: root/src/CamilStaps/BotleaguesApi/Database/User.php
diff options
context:
space:
mode:
Diffstat (limited to 'src/CamilStaps/BotleaguesApi/Database/User.php')
-rw-r--r--src/CamilStaps/BotleaguesApi/Database/User.php23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/CamilStaps/BotleaguesApi/Database/User.php b/src/CamilStaps/BotleaguesApi/Database/User.php
index e74bd82..6b0d863 100644
--- a/src/CamilStaps/BotleaguesApi/Database/User.php
+++ b/src/CamilStaps/BotleaguesApi/Database/User.php
@@ -1,11 +1,13 @@
<?php
namespace CamilStaps\BotleaguesApi\Database;
+use CamilStaps\BotleaguesApi\Exception\ValidationException;
use Illuminate\Auth\Authenticatable;
use Illuminate\Auth\Passwords\CanResetPassword;
use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;
use Illuminate\Contracts\Auth\CanResetPassword as CanResetPasswordContract;
use Illuminate\Support\Facades\Hash;
+use Illuminate\Support\Facades\Validator;
class User extends Model implements AuthenticatableContract, CanResetPasswordContract {
@@ -14,6 +16,7 @@ class User extends Model implements AuthenticatableContract, CanResetPasswordCon
protected $table = 'users';
protected $hidden = ['password', 'remember_token', 'api_key'];
protected $fillable = ['email', 'password'];
+ protected $primaryKey = 'email';
public function isAdministrator() {
return (bool) $this->isAdministrator;
@@ -90,7 +93,27 @@ class User extends Model implements AuthenticatableContract, CanResetPasswordCon
return $this->email;
}
+ public function setEmailAttribute($email) {
+ $rules = [
+ 'email' => ['required', 'email', 'unique:' . $this->table]
+ ];
+ $validator = Validator::make(['email' => $email], $rules);
+ if ($validator->fails()) {
+ throw new ValidationException('Invalid input', $validator->errors());
+ }
+
+ $this->attributes['email'] = $email;
+ }
+
public function setPasswordAttribute($password) {
+ $rules = [
+ 'password' => ['required', 'min:7']
+ ];
+ $validator = Validator::make(['password' => $password], $rules);
+ if ($validator->fails()) {
+ throw new ValidationException('Invalid input', $validator->errors());
+ }
+
$this->attributes['password'] = Hash::make($password);
}
} \ No newline at end of file