X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/4d4a57d1bfb1c57541d82eb7910a9754fe0fc8cf..refs/pull/2734/head:/app/Auth/User.php diff --git a/app/Auth/User.php b/app/Auth/User.php index 9d2210101..9855ab4e7 100644 --- a/app/Auth/User.php +++ b/app/Auth/User.php @@ -1,7 +1,9 @@ first(); + static::$defaultUser = static::query()->where('system_name', '=', 'public')->first(); return static::$defaultUser; } /** * Check if the user is the default public user. - * @return bool */ - public function isDefault() + public function isDefault(): bool { return $this->system_name === 'public'; } @@ -116,12 +117,10 @@ class User extends Model implements AuthenticatableContract, CanResetPasswordCon /** * Check if the user has a role. - * @param $role - * @return mixed */ - public function hasSystemRole($role) + public function hasSystemRole(string $roleSystemName): bool { - return $this->roles->pluck('system_name')->contains($role); + return $this->roles->pluck('system_name')->contains($roleSystemName); } /** @@ -185,9 +184,8 @@ class User extends Model implements AuthenticatableContract, CanResetPasswordCon /** * Get the social account associated with this user. - * @return HasMany */ - public function socialAccounts() + public function socialAccounts(): HasMany { return $this->hasMany(SocialAccount::class); } @@ -208,11 +206,9 @@ class User extends Model implements AuthenticatableContract, CanResetPasswordCon } /** - * Returns the user's avatar, - * @param int $size - * @return string + * Returns a URL to the user's avatar */ - public function getAvatar($size = 50) + public function getAvatar(int $size = 50): string { $default = url('/http/source.bookstackapp.com/user_avatar.png'); $imageId = $this->image_id; @@ -230,9 +226,8 @@ class User extends Model implements AuthenticatableContract, CanResetPasswordCon /** * Get the avatar for the user. - * @return BelongsTo */ - public function avatar() + public function avatar(): BelongsTo { return $this->belongsTo(Image::class, 'image_id'); } @@ -272,15 +267,13 @@ class User extends Model implements AuthenticatableContract, CanResetPasswordCon */ public function getProfileUrl(): string { - return url('/http/source.bookstackapp.com/user/' . $this->id); + return url('/http/source.bookstackapp.com/user/' . $this->slug); } /** * Get a shortened version of the user's name. - * @param int $chars - * @return string */ - public function getShortName($chars = 8) + public function getShortName(int $chars = 8): string { if (mb_strlen($this->name) <= $chars) { return $this->name; @@ -311,4 +304,13 @@ class User extends Model implements AuthenticatableContract, CanResetPasswordCon { return "({$this->id}) {$this->name}"; } + + /** + * @inheritDoc + */ + public function refreshSlug(): string + { + $this->slug = app(SlugGenerator::class)->generate($this); + return $this->slug; + } }