X-Git-Url: https://git.localhorst.tv/?a=blobdiff_plain;f=app%2FModels%2FUser.php;h=db834b7a240ca423141f254a1494fc9916b82c22;hb=7c6716036321ba09846785720e81459aad55a323;hp=879624a2072f58186e66ad107a604fd23e9f0d9f;hpb=3b4f0e5744d150c273bc450268d5a78ac43b2384;p=alttp.git diff --git a/app/Models/User.php b/app/Models/User.php index 879624a..db834b7 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -40,10 +40,18 @@ class User extends Authenticatable } + public function hasGlobalRole($name) { + return !empty($this->global_roles) && in_array($name, $this->global_roles); + } + public function isAdmin() { return $this->role === 'admin'; } + public function isPrivileged() { + return $this->role === 'special' || $this->isAdmin(); + } + public function isApplicant(Tournament $tournament) { foreach ($tournament->applications as $applicant) { if ($applicant->user_id == $this->id) { @@ -111,6 +119,10 @@ class User extends Authenticatable } + public function channel_crews() { + return $this->hasMany(ChannelCrew::class); + } + public function participation() { return $this->hasMany(Participant::class); } @@ -182,6 +194,7 @@ class User extends Authenticatable protected $fillable = [ 'id', 'username', + 'discord_nickname', 'discriminator', 'email', 'avatar', @@ -215,8 +228,9 @@ class User extends Authenticatable 'discriminator' => 'string', 'email' => 'string', 'avatar' => 'string', - 'avatar_cached' => 'boolean', + 'avatar_cached' => 'datetime', 'verified' => 'boolean', + 'global_roles' => 'array', 'locale' => 'string', 'mfa_enabled' => 'boolean', 'refresh_token' => 'encrypted',