Вход Регистрация
Файл: app/Http/Controllers/AccountController.php
Строк: 419
<?php

namespace AppHttpControllers;

use 
AppHttpRequestsDestroyUserRequest;
use 
AppHttpRequestsUpdateUserPreferencesRequest;
use 
AppHttpRequestsUpdateUserProfileRequest;
use 
AppHttpRequestsUpdateUserSecurityRequest;
use 
AppModelsPayment;
use 
AppModelsPlan;
use 
AppModelsStat;
use 
AppModelsWebsite;
use 
AppTraitsUserTrait;
use 
IlluminateHttpRequest;
use 
IlluminateSupportCarbon;
use 
IlluminateSupportFacadesAuth;
use 
IlluminateSupportFacadesHash;
use 
IlluminateSupportStr;

class 
AccountController extends Controller
{
    use 
UserTrait;

    
/**
     * Show the Settings index.
     *
     * @param Request $request
     * @return IlluminateContractsFoundationApplication|IlluminateContractsViewFactory|IlluminateViewView
     */
    
public function index(Request $request) {
        return 
view('account.container', ['view' => 'index''user' => $request->user()]);
    }

    
/**
     * Show the Profile settings form.
     *
     * @param Request $request
     * @return IlluminateContractsFoundationApplication|IlluminateContractsViewFactory|IlluminateViewView
     */
    
public function profile(Request $request)
    {
        return 
view('account.container', ['view' => 'profile''user' => $request->user()]);
    }

    
/**
     * Update the Profile settings.
     *
     * @param UpdateUserProfileRequest $request
     * @return IlluminateHttpRedirectResponse
     * @throws GuzzleHttpExceptionGuzzleException
     */
    
public function updateProfile(UpdateUserProfileRequest $request)
    {
        
$this->userUpdate($request$request->user());

        return 
back()->with('success'__('Settings saved.'));
    }

    
/**
     * Resent the Account Email Confirmation request.
     *
     * @param Request $request
     * @return IlluminateHttpRedirectResponse
     */
    
public function resendAccountEmailConfirmation(Request $request)
    {
        try {
            
$request->user()->resendPendingEmailVerificationMail();
        } catch (
Exception $e) {
            return 
redirect()->route('account.profile')->with('error'$e->getMessage());
        }

        return 
back()->with('success'__('A new verification link has been sent to your email address.'));
    }

    
/**
     * Cancel the Account Email Confirmation request.
     *
     * @param Request $request
     * @return IlluminateHttpRedirectResponse
     */
    
public function cancelAccountEmailConfirmation(Request $request)
    {
        
$request->user()->clearPendingEmail();

        return 
back();
    }

    
/**
     * Show the Security settings form.
     *
     * @param Request $request
     * @return IlluminateContractsFoundationApplication|IlluminateContractsViewFactory|IlluminateViewView
     */
    
public function security(Request $request)
    {
        return 
view('account.container', ['view' => 'security''user' => $request->user()]);
    }

    
/**
     * Update the Security settings.
     *
     * @param UpdateUserSecurityRequest $request
     * @return IlluminateHttpRedirectResponse
     */
    
public function updateSecurity(UpdateUserSecurityRequest $request)
    {
        if (
$request->input('password')) {
            
$request->user()->password Hash::make($request->input('password'));

            
Auth::logoutOtherDevices($request->input('password'));
        }

        if (
$request->has('tfa')) {
            
$request->user()->tfa $request->boolean('tfa');
        }

        
$request->user()->save();

        return 
back()->with('success'__('Settings saved.'));
    }

    
/**
     * Show the Preference settings form.
     *
     * @param Request $request
     * @return IlluminateContractsFoundationApplication|IlluminateContractsViewFactory|IlluminateViewView
     */
    
public function preferences(Request $request)
    {
        return 
view('account.container', ['view' => 'preferences']);
    }

    
/**
     * Update the Preferences settings.
     *
     * @param Request $request
     * @return IlluminateHttpRedirectResponse
     */
    
public function updatePreferences(UpdateUserPreferencesRequest $request)
    {
        
$request->user()->email_account_limit $request->input('email_account_limit');
        
$request->user()->save();

        return 
back()->with('success'__('Settings saved.'));
    }

    
/**
     * Show the Plan settings form.
     *
     * @param Request $request
     * @return IlluminateContractsFoundationApplication|IlluminateContractsViewFactory|IlluminateViewView
     */
    
public function plan(Request $request)
    {
        return 
view('account.container', ['view' => 'plan''user' => $request->user()]);
    }

    
/**
     * Update the Plan settings.
     *
     * @param Request $request
     * @return IlluminateHttpRedirectResponse
     */
    
public function updatePlan(Request $request)
    {
        
$request->user()->planSubscriptionCancel();

        return 
back()->with('success'__('Settings saved.'));
    }

    
/**
     * List the Payments.
     *
     * @param Request $request
     * @return IlluminateContractsFoundationApplication|IlluminateContractsViewFactory|IlluminateViewView
     */
    
public function indexPayments(Request $request)
    {
        
$search $request->input('search');
        
$searchBy in_array($request->input('search_by'), ['payment_id''invoice_id']) ? $request->input('search_by') : 'payment_id';
        
$plan $request->input('plan');
        
$interval $request->input('interval');
        
$processor $request->input('processor');
        
$status $request->input('status');
        
$sortBy in_array($request->input('sort_by'), ['id']) ? $request->input('sort_by') : 'id';
        
$sort in_array($request->input('sort'), ['asc''desc']) ? $request->input('sort') : 'desc';
        
$perPage in_array($request->input('per_page'), [102550100]) ? $request->input('per_page') : config('settings.paginate');

        
$payments Payment::where('user_id''='$request->user()->id)
            ->
when(isset($plan) && !empty($plan), function ($query) use ($plan) {
                return 
$query->ofPlan($plan);
            })
            ->
when($interval, function ($query) use ($interval) {
                return 
$query->ofInterval($interval);
            })
            ->
when($processor, function ($query) use ($processor) {
                return 
$query->ofProcessor($processor);
            })
            ->
when($status, function ($query) use ($status) {
                return 
$query->ofStatus($status);
            })
            ->
when($search, function ($query) use ($search$searchBy) {
                if(
$searchBy == 'invoice_id') {
                    return 
$query->searchInvoice($search);
                }
                return 
$query->searchPayment($search);
            })
            ->
orderBy($sortBy$sort)
            ->
paginate($perPage)
            ->
appends(['search' => $search'search_by' => $searchBy'interval' => $interval'processor' => $processor'plan' => $plan'status' => $status'sort_by' => $sortBy'sort' => $sort'per_page' => $perPage]);

        
// Get all the plans
        
$plans Plan::where([['amount_month''>'0], ['amount_year''>'0]])->withTrashed()->get();

        return 
view('account.container', ['view' => 'payments.list''payments' => $payments'plans' => $plans]);
    }

    
/**
     * Show the edit Payment form.
     *
     * @param Request $request
     * @param $id
     * @return IlluminateContractsFoundationApplication|IlluminateContractsViewFactory|IlluminateViewView
     */
    
public function editPayment(Request $request$id)
    {
        
$payment Payment::where([['id''='$id], ['user_id''='$request->user()->id]])->firstOrFail();

        return 
view('account.container', ['view' => 'payments.edit''payment' => $payment]);
    }

    
/**
     * Cancel the Payment.
     *
     * @param Request $request
     * @param $id
     * @return mixed
     */
    
public function cancelPayment(Request $request$id)
    {
        
$payment Payment::where([['id''='$id], ['status''=''pending'], ['user_id''='$request->user()->id]])->firstOrFail();
        
$payment->status 'cancelled';
        
$payment->save();

        return 
redirect()->route('account.payments.edit'$id)->with('success'__('Settings saved.'));
    }

    
/**
     * Show the Invoice.
     *
     * @param Request $request
     * @param $id
     * @return IlluminateContractsFoundationApplication|IlluminateContractsViewFactory|IlluminateViewView
     */
    
public function showInvoice(Request $request$id)
    {
        
$payment Payment::where([['user_id''='$request->user()->id], ['id''='$id], ['status''=''completed']])->firstOrFail();

        
// Sum the inclusive tax rates
        
$inclTaxRatesPercentage collect($payment->tax_rates)->where('type''='0)->sum('percentage');

        
// Sum the exclusive tax rates
        
$exclTaxRatesPercentage collect($payment->tax_rates)->where('type''='1)->sum('percentage');

        return 
view('account.container', ['view' => 'payments.invoice''payment' => $payment'inclTaxRatesPercentage' => $inclTaxRatesPercentage'exclTaxRatesPercentage' => $exclTaxRatesPercentage]);
    }

    
/**
     * Show the API settings form.
     *
     * @param Request $request
     * @return IlluminateContractsFoundationApplication|IlluminateContractsViewFactory|IlluminateViewView
     */
    
public function api(Request $request)
    {
        return 
view('account.container', ['view' => 'api''user' => $request->user()]);
    }

    
/**
     * Update the API settings.
     *
     * @param Request $request
     * @return IlluminateHttpRedirectResponse
     */
    
public function updateApi(Request $request)
    {
        
$request->user()->api_token Str::random(64);
        
$request->user()->save();

        return 
back()->with('success'__('Settings saved.'));
    }

    
/**
     * Show the Delete Account form.
     *
     * @param Request $request
     * @return IlluminateContractsFoundationApplication|IlluminateContractsViewFactory|IlluminateViewView
     */
    
public function delete(Request $request)
    {
        return 
view('account.container', ['view' => 'delete''user' => $request->user()]);
    }

    
/**
     * Delete the Account.
     *
     * @param DestroyUserRequest $request
     * @return IlluminateHttpRedirectResponse
     */
    
public function destroyUser(DestroyUserRequest $request)
    {
        
$request->user()->forceDelete();

        return 
redirect()->route('home');
    }
}
Онлайн: 1
Реклама