Add privatized version of name #656 (#658)

This commit is contained in:
Nabeel S
2020-04-06 12:03:19 -04:00
committed by GitHub
parent 3c0cd34071
commit 40a94cb9ad
8 changed files with 49 additions and 17 deletions

View File

@@ -7,24 +7,19 @@ use App\Models\Enums\UserState;
use App\Repositories\Criteria\WhereCriteria;
use App\Repositories\UserRepository;
use Illuminate\Http\Request;
use Log;
use Illuminate\Support\Facades\Log;
use League\ISO3166\ISO3166;
use Prettus\Repository\Exceptions\RepositoryException;
/**
* Class UserController
*/
class UserController extends Controller
{
private $userRepo;
/**
* UserController constructor.
*
* @param UserRepository $userRepo
*/
public function __construct(
UserRepository $userRepo
) {
public function __construct(UserRepository $userRepo)
{
$this->userRepo = $userRepo;
}
@@ -49,11 +44,11 @@ class UserController extends Controller
$users = $this->userRepo
->with(['airline', 'current_airport'])
->orderBy('name', 'desc')
->orderBy('pilot_id', 'asc')
->paginate();
return view('users.index', [
'country' => new \League\ISO3166\ISO3166(),
'country' => new ISO3166(),
'users' => $users,
]);
}

View File

@@ -14,6 +14,7 @@ use Laratrust\Traits\LaratrustUserTrait;
* @property int pilot_id
* @property int airline_id
* @property string name
* @property string name_private Only first name, rest are initials
* @property string email
* @property string password
* @property string api_key
@@ -110,13 +111,32 @@ class User extends Authenticatable
/**
* @return string
*/
public function getIdentAttribute()
public function getIdentAttribute(): string
{
$length = setting('pilots.id_length');
return $this->airline->icao.str_pad($this->pilot_id, $length, '0', STR_PAD_LEFT);
}
/**
* Return a "privatized" version of someones name - First name full, rest of the names are initials
*
* @return string
*/
public function getNamePrivateAttribute(): string
{
$name_parts = explode(' ', $this->attributes['name']);
$count = count($name_parts);
if ($count === 1) {
return $name_parts[0];
}
$first_name = $name_parts[0];
$last_name = $name_parts[$count - 1];
return $first_name.' '.$last_name[0];
}
/**
* Shorthand for getting the timezone
*