diff --git a/app/Http/Controllers/Frontend/UserController.php b/app/Http/Controllers/Frontend/UserController.php index 5942f1ca..bb8303f0 100644 --- a/app/Http/Controllers/Frontend/UserController.php +++ b/app/Http/Controllers/Frontend/UserController.php @@ -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, ]); } diff --git a/app/Models/User.php b/app/Models/User.php index 8a71483e..e36850bf 100755 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -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 * diff --git a/resources/views/layouts/default/home.blade.php b/resources/views/layouts/default/home.blade.php index 129b1add..b8f27385 100644 --- a/resources/views/layouts/default/home.blade.php +++ b/resources/views/layouts/default/home.blade.php @@ -16,7 +16,7 @@ {{----}}

- {{ $user->name }} + {{ $user->name_private }}

@if ($user->avatar == null) diff --git a/resources/views/layouts/default/profile/index.blade.php b/resources/views/layouts/default/profile/index.blade.php index a80ce9aa..05b978b8 100644 --- a/resources/views/layouts/default/profile/index.blade.php +++ b/resources/views/layouts/default/profile/index.blade.php @@ -13,7 +13,7 @@

-

{{ $user->name }}

+

{{ $user->name_private }}

{{ $user->ident }}

diff --git a/resources/views/layouts/default/users/table.blade.php b/resources/views/layouts/default/users/table.blade.php index 565b1244..95b12daf 100644 --- a/resources/views/layouts/default/users/table.blade.php +++ b/resources/views/layouts/default/users/table.blade.php @@ -23,7 +23,7 @@ - {{ $user->name }} + {{$user->ident}} {{ $user->name_private }} diff --git a/resources/views/layouts/default/widgets/latest_news.blade.php b/resources/views/layouts/default/widgets/latest_news.blade.php index b97fe0c4..be607c1c 100644 --- a/resources/views/layouts/default/widgets/latest_news.blade.php +++ b/resources/views/layouts/default/widgets/latest_news.blade.php @@ -11,7 +11,7 @@ @foreach($news as $item)

{{ $item->subject }}

-

{{ $item->user->name }} +

{{ $item->user->name_private }} - {{ show_datetime($item->created_at) }}

{{ $item->body }} diff --git a/resources/views/layouts/default/widgets/latest_pilots.blade.php b/resources/views/layouts/default/widgets/latest_pilots.blade.php index 16e6e434..fdc4cf4a 100644 --- a/resources/views/layouts/default/widgets/latest_pilots.blade.php +++ b/resources/views/layouts/default/widgets/latest_pilots.blade.php @@ -4,7 +4,7 @@ {{ $u->ident }} - {{ $u->name }} + {{ $u->name_private }} @endforeach diff --git a/tests/UserTest.php b/tests/UserTest.php index 8546c95a..7b74d19d 100644 --- a/tests/UserTest.php +++ b/tests/UserTest.php @@ -228,4 +228,21 @@ class UserTest extends TestCase $user3 = factory(App\Models\User::class)->create(); $this->assertEquals(4, $user3->pilot_id); } + + /** + * Test that a user's name is private + */ + public function testUserNamePrivate() + { + $vals = [ + 'Firstname' => 'Firstname', + 'Firstname Lastname' => 'Firstname L', + 'Firstname Middlename Lastname' => 'Firstname L', + ]; + + foreach ($vals as $input => $expected) { + $user = new User(['name' => $input]); + $this->assertEquals($expected, $user->name_private); + } + } }