@@ -7,24 +7,19 @@ use App\Models\Enums\UserState;
|
|||||||
use App\Repositories\Criteria\WhereCriteria;
|
use App\Repositories\Criteria\WhereCriteria;
|
||||||
use App\Repositories\UserRepository;
|
use App\Repositories\UserRepository;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Log;
|
use Illuminate\Support\Facades\Log;
|
||||||
|
use League\ISO3166\ISO3166;
|
||||||
use Prettus\Repository\Exceptions\RepositoryException;
|
use Prettus\Repository\Exceptions\RepositoryException;
|
||||||
|
|
||||||
/**
|
|
||||||
* Class UserController
|
|
||||||
*/
|
|
||||||
class UserController extends Controller
|
class UserController extends Controller
|
||||||
{
|
{
|
||||||
private $userRepo;
|
private $userRepo;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* UserController constructor.
|
|
||||||
*
|
|
||||||
* @param UserRepository $userRepo
|
* @param UserRepository $userRepo
|
||||||
*/
|
*/
|
||||||
public function __construct(
|
public function __construct(UserRepository $userRepo)
|
||||||
UserRepository $userRepo
|
{
|
||||||
) {
|
|
||||||
$this->userRepo = $userRepo;
|
$this->userRepo = $userRepo;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -49,11 +44,11 @@ class UserController extends Controller
|
|||||||
|
|
||||||
$users = $this->userRepo
|
$users = $this->userRepo
|
||||||
->with(['airline', 'current_airport'])
|
->with(['airline', 'current_airport'])
|
||||||
->orderBy('name', 'desc')
|
->orderBy('pilot_id', 'asc')
|
||||||
->paginate();
|
->paginate();
|
||||||
|
|
||||||
return view('users.index', [
|
return view('users.index', [
|
||||||
'country' => new \League\ISO3166\ISO3166(),
|
'country' => new ISO3166(),
|
||||||
'users' => $users,
|
'users' => $users,
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|||||||
+21
-1
@@ -14,6 +14,7 @@ use Laratrust\Traits\LaratrustUserTrait;
|
|||||||
* @property int pilot_id
|
* @property int pilot_id
|
||||||
* @property int airline_id
|
* @property int airline_id
|
||||||
* @property string name
|
* @property string name
|
||||||
|
* @property string name_private Only first name, rest are initials
|
||||||
* @property string email
|
* @property string email
|
||||||
* @property string password
|
* @property string password
|
||||||
* @property string api_key
|
* @property string api_key
|
||||||
@@ -110,13 +111,32 @@ class User extends Authenticatable
|
|||||||
/**
|
/**
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function getIdentAttribute()
|
public function getIdentAttribute(): string
|
||||||
{
|
{
|
||||||
$length = setting('pilots.id_length');
|
$length = setting('pilots.id_length');
|
||||||
|
|
||||||
return $this->airline->icao.str_pad($this->pilot_id, $length, '0', STR_PAD_LEFT);
|
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
|
* Shorthand for getting the timezone
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
{{--</div>--}}
|
{{--</div>--}}
|
||||||
<div class="header header-primary text-center blue-bg">
|
<div class="header header-primary text-center blue-bg">
|
||||||
<h3 class="title title-up text-white">
|
<h3 class="title title-up text-white">
|
||||||
<a href="{{ route('frontend.profile.show', [$user->id]) }}" class="text-white">{{ $user->name }}</a>
|
<a href="{{ route('frontend.profile.show', [$user->id]) }}" class="text-white">{{ $user->name_private }}</a>
|
||||||
</h3>
|
</h3>
|
||||||
<div class="photo-container">
|
<div class="photo-container">
|
||||||
@if ($user->avatar == null)
|
@if ($user->avatar == null)
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div><br/></div>
|
<div><br/></div>
|
||||||
<div class="social-description">
|
<div class="social-description">
|
||||||
<h2>{{ $user->name }}</h2>
|
<h2>{{ $user->name_private }}</h2>
|
||||||
<p>{{ $user->ident }}</p>
|
<p>{{ $user->ident }}</p>
|
||||||
</div>
|
</div>
|
||||||
<p class="description" style="color: #9A9A9A;">
|
<p class="description" style="color: #9A9A9A;">
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<a href="{{ route('frontend.profile.show.public', [$user->id]) }}">
|
<a href="{{ route('frontend.profile.show.public', [$user->id]) }}">
|
||||||
{{ $user->name }}
|
{{$user->ident}} {{ $user->name_private }}
|
||||||
</a>
|
</a>
|
||||||
</td>
|
</td>
|
||||||
<td align="center">
|
<td align="center">
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
|
|
||||||
@foreach($news as $item)
|
@foreach($news as $item)
|
||||||
<h4 style="margin-top: 0px;">{{ $item->subject }}</h4>
|
<h4 style="margin-top: 0px;">{{ $item->subject }}</h4>
|
||||||
<p class="category">{{ $item->user->name }}
|
<p class="category">{{ $item->user->name_private }}
|
||||||
- {{ show_datetime($item->created_at) }}</p>
|
- {{ show_datetime($item->created_at) }}</p>
|
||||||
|
|
||||||
{{ $item->body }}
|
{{ $item->body }}
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
<td style="padding-right: 10px;">
|
<td style="padding-right: 10px;">
|
||||||
<span class="title">{{ $u->ident }}</span>
|
<span class="title">{{ $u->ident }}</span>
|
||||||
</td>
|
</td>
|
||||||
<td>{{ $u->name }}</td>
|
<td>{{ $u->name_private }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
@endforeach
|
@endforeach
|
||||||
</table>
|
</table>
|
||||||
|
|||||||
@@ -228,4 +228,21 @@ class UserTest extends TestCase
|
|||||||
$user3 = factory(App\Models\User::class)->create();
|
$user3 = factory(App\Models\User::class)->create();
|
||||||
$this->assertEquals(4, $user3->pilot_id);
|
$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);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user