You've already forked Epicnabbo-Catalogus-Updated-Daily
🆙 More fixes 🆙
This commit is contained in:
@@ -18,12 +18,15 @@ class AccountSettingsController extends Controller
|
||||
private readonly SessionService $sessionService,
|
||||
private readonly UserService $userService,
|
||||
private readonly RconService $rconService
|
||||
): void {}
|
||||
) {}
|
||||
|
||||
public function edit(): View
|
||||
{
|
||||
/** @var \App\Models\User $user */
|
||||
$user = Auth::user();
|
||||
|
||||
return view('user.settings.account', [
|
||||
'user' => Auth::user()->load('settings:allow_name_change'),
|
||||
'user' => $user->load('settings:allow_name_change'),
|
||||
]);
|
||||
}
|
||||
|
||||
@@ -46,7 +49,7 @@ class AccountSettingsController extends Controller
|
||||
|
||||
// $allowedNameChange = $user->settings?->allow_name_change && $user->username !== $request->input('username');
|
||||
|
||||
if (! $this->rconService->isConnected() && Auth::user()->online === '1') {
|
||||
if (! $this->rconService->isConnected() && $user->online) {
|
||||
return back()->withErrors('You must be offline to change your account settings');
|
||||
}
|
||||
|
||||
@@ -55,12 +58,12 @@ class AccountSettingsController extends Controller
|
||||
$this->userService->updateField($user, 'username', $request->input('username'));
|
||||
} **/
|
||||
if ($user->mail !== $request->input('mail')) {
|
||||
$this->userService->updateField($user, 'mail', $request->input('mail'));
|
||||
$this->userService->updateField($user, 'mail', $request->string('mail')->toString());
|
||||
}
|
||||
|
||||
if ($user->motto !== $request->input('motto')) {
|
||||
$this->rconService->setMotto($user, $request->input('motto'));
|
||||
$this->userService->updateField($user, 'motto', $request->input('motto'));
|
||||
$this->rconService->setMotto($user, $request->string('motto')->toString());
|
||||
$this->userService->updateField($user, 'motto', $request->string('motto')->toString());
|
||||
}
|
||||
|
||||
return to_route('settings.account.show')->with('success', __('Your account settings has been updated'));
|
||||
|
||||
@@ -16,8 +16,11 @@ class BannedController extends Controller
|
||||
->orderByDesc('id')
|
||||
->first();
|
||||
|
||||
/** @var \App\Models\User $user */
|
||||
$user = Auth::user();
|
||||
|
||||
return view('banned', [
|
||||
'ban' => $ipBan ?? Auth::user()->ban,
|
||||
'ban' => $ipBan ?? $user->ban,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,8 +32,8 @@ class ForgotPasswordController extends Controller
|
||||
'token' => $token,
|
||||
]);
|
||||
|
||||
Mail::send('email.forgetPassword', ['token' => $token], function ($message) use ($request): void {
|
||||
$message->to($request->mail);
|
||||
Mail::send('email.forgetPassword', ['token' => $token], function (\Illuminate\Mail\Message $message) use ($request): void {
|
||||
$message->to($request->string('mail')->toString());
|
||||
$message->subject('Reset Password');
|
||||
});
|
||||
}
|
||||
@@ -47,7 +47,12 @@ class ForgotPasswordController extends Controller
|
||||
if ($prt === null) {
|
||||
return to_route('forgot.password.get')->withErrors('message', __('This token has expired!'));
|
||||
}
|
||||
$tokenExpiration = \Illuminate\Support\Facades\Date::now()->subMinutes(config('habbo.password_reset_token_time'));
|
||||
$resetTime = config('habbo.password_reset_token_time');
|
||||
if (! is_numeric($resetTime)) {
|
||||
$resetTime = 60;
|
||||
}
|
||||
|
||||
$tokenExpiration = \Illuminate\Support\Facades\Date::now()->subMinutes((int) $resetTime);
|
||||
if ($prt->created_at->gte($tokenExpiration)) {
|
||||
$prt->delete();
|
||||
|
||||
@@ -66,12 +71,14 @@ class ForgotPasswordController extends Controller
|
||||
'password_confirmation' => ['required'],
|
||||
]);
|
||||
|
||||
$prt = PasswordResetToken::select('email', 'token')->where('token', $token)->first();
|
||||
if ($prt === null) {
|
||||
$prt = PasswordResetToken::with('user')->select('email', 'token')->where('token', $token)->first();
|
||||
if ($prt === null || $prt->user === null) {
|
||||
return to_route('forgot.password.get')->withErrors('message', __('This token has expired!'));
|
||||
}
|
||||
|
||||
$prt->user->changePassword($request->password);
|
||||
/** @var \App\Models\User $user */
|
||||
$user = $prt->user;
|
||||
$user->changePassword($request->string('password')->toString());
|
||||
$prt->delete();
|
||||
|
||||
return to_route('login')->with('success', __('Your password has been successfully reset!'));
|
||||
|
||||
@@ -28,7 +28,16 @@ class GuestbookController extends Controller
|
||||
|
||||
public function destroy(User $user, WebsiteUserGuestbook $guestbook): RedirectResponse
|
||||
{
|
||||
if ($guestbook->user_id !== Auth::id() && $guestbook->profile_id !== $user->id && Auth::user()->rank < (int) setting('min_staff_rank')) {
|
||||
/** @var \App\Models\User|null $currentUser */
|
||||
$currentUser = Auth::user();
|
||||
|
||||
if ($currentUser === null) {
|
||||
return back()->withErrors([
|
||||
'message' => __('You must be logged in.'),
|
||||
]);
|
||||
}
|
||||
|
||||
if ($guestbook->user_id !== $currentUser->id && $guestbook->profile_id !== $user->id && $currentUser->rank < (int) setting('min_staff_rank')) {
|
||||
return back()->withErrors([
|
||||
'message' => __('Do do not have permission to delete this message'),
|
||||
]);
|
||||
@@ -41,12 +50,19 @@ class GuestbookController extends Controller
|
||||
|
||||
private function validateGuestbookPost(User $user, GuestbookFormRequest $request): ?RedirectResponse
|
||||
{
|
||||
if ($user->id === $request->user()->id) {
|
||||
/** @var \App\Models\User|null $currentUser */
|
||||
$currentUser = $request->user();
|
||||
|
||||
if ($currentUser === null) {
|
||||
return $this->redirectWithError(__('You must be logged in.'));
|
||||
}
|
||||
|
||||
if ($user->id === $currentUser->id) {
|
||||
return $this->redirectWithError(__('You cannot post a message on your own profile.'));
|
||||
}
|
||||
|
||||
$maxAllowedPostCount = in_array(setting('max_guestbook_posts_per_profile'), ['', '0'], true) ? 3 : (int) setting('max_guestbook_posts_per_profile');
|
||||
if ($user->profileGuestbook()->where('user_id', $request->user()->id)->count() >= $maxAllowedPostCount) {
|
||||
$maxAllowedPostCount = in_array((string) setting('max_guestbook_posts_per_profile'), ['', '0'], true) ? 3 : (int) setting('max_guestbook_posts_per_profile');
|
||||
if ($user->profileGuestbook()->where('user_id', $currentUser->id)->count() >= $maxAllowedPostCount) {
|
||||
return $this->redirectWithError(__('You have already posted :count messages on this profile.', ['count' => $maxAllowedPostCount]));
|
||||
}
|
||||
|
||||
|
||||
@@ -11,10 +11,12 @@ class MeController extends Controller
|
||||
{
|
||||
public function __invoke(): View
|
||||
{
|
||||
/** @var \App\Models\User $user */
|
||||
$user = Auth::user();
|
||||
|
||||
return view('user.me', [
|
||||
'onlineFriends' => Auth::user()?->getOnlineFriends(),
|
||||
'user' => Auth::user()?->load('permission:id,rank_name'),
|
||||
'onlineFriends' => $user->getOnlineFriends(),
|
||||
'user' => $user->load('permission:id,rank_name'),
|
||||
'articles' => WebsiteArticle::whereHas('user')->with('user:id,username,look')->latest()->take(5)->get(),
|
||||
]);
|
||||
}
|
||||
|
||||
@@ -18,8 +18,11 @@ class PasswordSettingsController extends Controller
|
||||
|
||||
public function update(PasswordSettingsFormRequest $request): RedirectResponse
|
||||
{
|
||||
Auth::user()->update([
|
||||
'password' => Hash::make($request->input('password')),
|
||||
/** @var \App\Models\User $user */
|
||||
$user = Auth::user();
|
||||
|
||||
$user->update([
|
||||
'password' => Hash::make($request->string('password')->toString()),
|
||||
]);
|
||||
|
||||
return to_route('settings.password.show')->with('success', __('Your password has been changed!'));
|
||||
|
||||
@@ -8,6 +8,7 @@ use App\Models\Game\Player\MessengerFriendship;
|
||||
use App\Models\User;
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Illuminate\Database\Eloquent\Collection;
|
||||
use Illuminate\Database\Eloquent\Relations\HasMany;
|
||||
|
||||
class ProfileController extends Controller
|
||||
{
|
||||
@@ -30,12 +31,12 @@ class ProfileController extends Controller
|
||||
private function loadUserRelations(User $user): User
|
||||
{
|
||||
return $user->load([
|
||||
'badges' => function ($badges): void {
|
||||
'badges' => function (HasMany $badges): void {
|
||||
$badges->where('slot_id', '>', '0')
|
||||
->orderBy('slot_id')
|
||||
->take(5);
|
||||
},
|
||||
'rooms' => function ($rooms): void {
|
||||
'rooms' => function (HasMany $rooms): void {
|
||||
$rooms->select('id', 'owner_id', 'name', 'users')
|
||||
->orderByDesc('users')
|
||||
->orderBy('id');
|
||||
@@ -43,6 +44,9 @@ class ProfileController extends Controller
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Collection<int, MessengerFriendship>
|
||||
*/
|
||||
private function getUserFriends(int $userId): Collection
|
||||
{
|
||||
return MessengerFriendship::select('user_two_id')
|
||||
@@ -54,6 +58,9 @@ class ProfileController extends Controller
|
||||
->get();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Collection<int, GuildMember>
|
||||
*/
|
||||
private function getUserGroups(int $userId): Collection
|
||||
{
|
||||
return GuildMember::query()
|
||||
|
||||
@@ -11,17 +11,22 @@ class ReferralController extends Controller
|
||||
{
|
||||
public function __invoke(RconService $rcon): RedirectResponse
|
||||
{
|
||||
/** @var \App\Models\User $user */
|
||||
$user = Auth::user();
|
||||
if (! $user->referrals || $user->referrals->referrals_total < setting('referrals_needed')) {
|
||||
|
||||
/** @var \App\Models\User\UserReferral|null $referrals */
|
||||
$referrals = $user->referrals;
|
||||
|
||||
if ($referrals === null || $referrals->referrals_total < (int) setting('referrals_needed')) {
|
||||
return back()->withErrors([
|
||||
'message' => __('You do not have enough referrals to claim your reward'),
|
||||
]);
|
||||
}
|
||||
|
||||
// Decrease the total amount of referrals with the amount needed to claim reward
|
||||
$user->referrals->decrement('referrals_total', setting('referrals_needed'));
|
||||
$referrals->decrement('referrals_total', (int) setting('referrals_needed'));
|
||||
|
||||
$rcon->giveDiamonds($user, setting('referral_reward_amount'));
|
||||
$rcon->giveDiamonds($user, (int) setting('referral_reward_amount'));
|
||||
|
||||
// Log the claim
|
||||
$user->claimedReferralLog()->create([
|
||||
|
||||
@@ -25,7 +25,10 @@ class TwoFactorAuthenticationController extends Controller
|
||||
|
||||
public function verify(Request $request): RedirectResponse
|
||||
{
|
||||
$confirmed = $request->user()->confirmTwoFactorAuthentication($request->input('code'));
|
||||
/** @var \App\Models\User $user */
|
||||
$user = $request->user();
|
||||
|
||||
$confirmed = $user->confirmTwoFactorAuthentication($request->string('code')->toString());
|
||||
if (! $confirmed) {
|
||||
return back()->withErrors('Invalid Two Factor Authentication code');
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user