Skip to content

Instantly share code, notes, and snippets.

@NtimYeboah
Last active January 9, 2018 21:32
Show Gist options
  • Save NtimYeboah/ee618dbe99478b3fa077afb4e72b8a11 to your computer and use it in GitHub Desktop.
Save NtimYeboah/ee618dbe99478b3fa077afb4e72b8a11 to your computer and use it in GitHub Desktop.
<?php
namespace App;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable
{
use Notifiable;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'name', 'email', 'password',
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];
/**
* Checks if user is a super admin
*
* @return boolean
*/
public function isSuperAdmin() : bool
{
return (bool) $this->is_super_admin;
}
/**
* Create admin.
*
* @param array $details
* @return array
*/
public function createSuperAdmin(array $details) : self
{
$user = new self($details);
if (! $this->superAdminExists()) {
$user->is_super_admin = 1;
}
$user->save();
return $user;
}
/**
* Checks if super admin exists
*
* @return integer
*/
public function superAdminExists() : int
{
return self::where('is_super_admin', 1)->count();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment