X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/cd6572b61af2165133468d2562d04dffdca8fca8..refs/pull/692/head:/app/User.php diff --git a/app/User.php b/app/User.php index b5bb221e8..d1e9b38a7 100644 --- a/app/User.php +++ b/app/User.php @@ -60,7 +60,9 @@ class User extends Model implements AuthenticatableContract, CanResetPasswordCon */ public function roles() { - if ($this->id === 0) return ; + if ($this->id === 0) { + return ; + } return $this->belongsToMany(Role::class); } @@ -81,7 +83,7 @@ class User extends Model implements AuthenticatableContract, CanResetPasswordCon */ public function hasSystemRole($role) { - return $this->roles->pluck('system_name')->contains('admin'); + return $this->roles->pluck('system_name')->contains($role); } /** @@ -91,9 +93,11 @@ class User extends Model implements AuthenticatableContract, CanResetPasswordCon */ public function permissions($cache = true) { - if(isset($this->permissions) && $cache) return $this->permissions; + if (isset($this->permissions) && $cache) { + return $this->permissions; + } $this->load('roles.permissions'); - $permissions = $this->roles->map(function($role) { + $permissions = $this->roles->map(function ($role) { return $role->permissions; })->flatten()->unique(); $this->permissions = $permissions; @@ -107,7 +111,9 @@ class User extends Model implements AuthenticatableContract, CanResetPasswordCon */ public function can($permissionName) { - if ($this->email === 'guest') return false; + if ($this->email === 'guest') { + return false; + } return $this->permissions()->pluck('name')->contains($permissionName); } @@ -160,8 +166,18 @@ class User extends Model implements AuthenticatableContract, CanResetPasswordCon */ public function getAvatar($size = 50) { - if ($this->image_id === 0 || $this->image_id === '0' || $this->image_id === null) return baseUrl('/user_avatar.png'); - return baseUrl($this->avatar->getThumb($size, $size, false)); + $default = baseUrl('/user_avatar.png'); + $imageId = $this->image_id; + if ($imageId === 0 || $imageId === '0' || $imageId === null) { + return $default; + } + + try { + $avatar = $this->avatar ? baseUrl($this->avatar->getThumb($size, $size, false)) : $default; + } catch (\Exception $err) { + $avatar = $default; + } + return $avatar; } /** @@ -198,10 +214,14 @@ class User extends Model implements AuthenticatableContract, CanResetPasswordCon */ public function getShortName($chars = 8) { - if (strlen($this->name) <= $chars) return $this->name; + if (strlen($this->name) <= $chars) { + return $this->name; + } $splitName = explode(' ', $this->name); - if (strlen($splitName[0]) <= $chars) return $splitName[0]; + if (strlen($splitName[0]) <= $chars) { + return $splitName[0]; + } return ''; }