athenahr/resources/views/dashboard/user/profile/useraccount.blade.php

375 lines
18 KiB
PHP
Raw Normal View History

@extends('adminlte::page')
2020-09-01 17:46:27 +01:00
@section('title', config('app.name') . ' | ' . __('messages.profile.account_settings'))
@section('content_header')
2020-09-01 17:46:27 +01:00
<h4>{{__('messages.reusable.profile')}} / {{__('messages.reusable.acc')}} / {{__('messages.reusable.settings')}}</h4>
@stop
@section('js')
<x-global-errors></x-global-errors>
@stop
@section('css')
<link rel="stylesheet" href="/css/acc.css">
@stop
@section('content')
2020-07-17 22:44:10 +01:00
<x-modal id="deleteAccountModal" modal-label="deleteAccountModalLabel" modal-title="Close account" include-close-button="true">
@if ($demoActive)
<div class="alert alert-danger">
2022-02-02 05:36:09 +00:00
<p class="font-weight-bold"><i class="fas fa-exclamation-triangle"></i> {{ __('This feature is disabled') }}</p>
</div>
@endif
2022-02-02 05:36:09 +00:00
<p>{{ __('Deleting your account is an irreversible process. The following data will be deleted (including personally identifiable data):') }}</p>
<ul>
2022-02-02 05:36:09 +00:00
<li>{{ __('Last IP address') }}</li>
<li>{{ __('Name, Email and MC Username') }}</li>
<li>{{ __('Your previous applications') }}</li>
<li>{{ __('Your profile data and preferences') }}</li>
<li>{{ __('If you were a staff member:') }}</li>
<ul>
2022-02-02 05:36:09 +00:00
<li>{{ __('Your comments') }}</li>
<li>{{ __('Any votes') }}</li>
<li>{{ __('Your roles') }}</li>
</ul>
</ul>
2022-02-02 05:36:09 +00:00
<p>{{ __('What is not deleted:') }}</p>
<ul>
2022-02-02 05:36:09 +00:00
<li>{{ __('Server logs of your visits, including IP addresses') }}</li>
</ul>
2022-02-01 22:26:46 +00:00
<x-alert alert-type="danger">
2022-02-02 05:36:09 +00:00
<p class="text-bold"><i class="fas fa-exclamation-triangle"></i> {{ __('Feature temporarily unavailable') }}</p>
2022-02-01 22:26:46 +00:00
<p>This feature has been temporarily made unavailable while we work to fix underlying issues that are causing our backoffice to crash. We apologize for the inconvenience, and any account/data deletion requests should be forwarded to our data protection officer below.</p>
<p><i class="fas fa-user"></i> <a href="mailto:dpo@gamescluboficial.com.br?subject=GDPR%20Request%20-%20Games%20Club">dpo@gamescluboficial.com.br</a></p>
</x-alert>
<form id="deleteAccountForm" method="POST" action="{{ route('userDelete') }}">
@csrf
@method('PATCH')
<div class="form-group">
2022-02-02 05:36:09 +00:00
<label for="currentPassword">{{ __('Re-enter your password') }}</label>
2022-02-01 22:26:46 +00:00
<input disabled class="form-control" autocomplete="current-password" type="password" name="currentPassword" id="currentPassword" required>
2022-02-02 05:36:09 +00:00
<p class="text-muted text-sm"><i class="fas fa-info-circle"></i> {{ __('For your security, your password is always required for sensitive operations.') }} <a href="{{ route('password.request') }}">{{ __('Forgot your password?') }}</a></p>
</div>
@if (Auth::user()->has2FA())
<div class="form-group mt-5">
2022-02-02 05:36:09 +00:00
<label for="otp">{{ __('Two-factor authentication code') }}</label>
2022-02-01 22:26:46 +00:00
<input disabled type="text" id="otp" name="otp" class="form-control">
2022-02-02 05:36:09 +00:00
<p class="text-muted text-sm"><i class="fas fa-info-circle"></i> {{ __('You cannot recover lost 2FA secrets.') }}</p>
</div>
@endif
</form>
<x-slot name="modalFooter">
2022-02-02 05:36:09 +00:00
<button {{ ($demoActive) ? 'disabled' : 'disabled' }} onclick="$('#deleteAccountForm').submit()" type="button" class="btn btn-warning"><i class="fas fa-exclamation-triangle"></i> {{ __('Continue') }}</button>
</x-slot>
</x-modal>
2020-07-17 22:44:10 +01:00
@if (!Auth::user()->has2FA())
2020-07-17 22:44:10 +01:00
2020-09-03 02:08:14 +01:00
<x-modal id="twoFactorAuthModal" modal-label="2faLabel" modal-title="{{__('messages.2fa_txt')}}" include-close-button="true">
2020-07-17 22:44:10 +01:00
@if($demoActive)
<div class="alert alert-danger">
2022-02-02 05:36:09 +00:00
<p class="font-weight-bold"><i class="fa fa-exclamation-triangle"></i> {{ __('This feature is disabled') }}</p>
</div>
@endif
2020-09-01 17:46:27 +01:00
<h3><i class="fas fa-user-shield"></i> {{__('messages.profile.2fa_welcome')}}</h3>
2020-07-17 22:44:10 +01:00
2020-09-01 17:46:27 +01:00
<p><b>{{__('messages.profile.supported_apps')}}</b></p>
2020-07-17 22:44:10 +01:00
<ul>
<li><a href="https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2&hl=en"><i class="fab fa-google-play"></i> Google Authenticator</a></li>
</ul>
2020-09-01 17:46:27 +01:00
<p>{{__('messages.profile.scan_code', ['scannable', 'QR'])}}</p>
2020-07-17 22:44:10 +01:00
<div class="row">
<div class="col-3 offset-3">
<div class="qr-code-container text-center">
2021-10-13 08:44:32 +01:00
{!! $twofaQRCode !!}
2020-07-17 22:44:10 +01:00
</div>
</div>
</div>
<div class="row">
<div class="col">
<form method="POST" action="{{ route('enable2FA') }}" id="enable2Fa">
@csrf
@method('PATCH')
2020-09-01 17:46:27 +01:00
<label for="otp">{{__('messages.profile.otp')}}</label>
2020-07-17 22:44:10 +01:00
<input type="text" id="otp" name="otp" class="form-control" />
</form>
</div>
</div>
<x-slot name="modalFooter">
<button {{ ($demoActive) ? 'disabled' : '' }} type="button" class="btn btn-success" onclick="$('#enable2Fa').submit()"><i class="fas fa-key"></i> {{__('messages.profile.2fa_enable')}}</button>
2020-07-17 22:44:10 +01:00
</x-slot>
</x-modal>
@endif
@if (Auth::user()->has2FA())
2020-09-03 02:08:14 +01:00
<x-modal id="remove2FA" modal-label="remove2FALabel" modal-title="{{__('messages.profile.2fa_remove_extended')}}" include-close-button="true">
2020-07-17 22:44:10 +01:00
2020-09-01 17:46:27 +01:00
<p><i class="fas fa-exclamation-triangle"></i> <b>{{__('messages.application_m.modal_confirm')}}</b> {{__('messages.profile.2fa_remove_consequence')}}</p>
2020-07-17 22:44:10 +01:00
<form action="{{ route('disable2FA') }}" method="POST" id="disable2FA">
@csrf
@method('PATCH')
2020-09-01 17:46:27 +01:00
<label for="currentPassword">{{__('messages.profile.2fa_password_confirm')}}</label>
2020-07-17 22:44:10 +01:00
<input id="currentPassword" type="password" name="currentPassword" class="form-control" required />
2020-09-01 17:46:27 +01:00
<p class="text-sm text-muted">{{__('messages.profile.2fa_password_confirm_exp')}}</p>
2020-07-17 22:44:10 +01:00
<div class="form-group mt-2">
2020-09-01 17:46:27 +01:00
<label for="consent">{{__('messages.profile.2fa_disable_consent')}}</label>
<span><i>{{__('messages.reusable.confirm_click')}} </i> </span><input type="checkbox" name="consent" id="consent" required />
2020-07-17 22:44:10 +01:00
</div>
</form>
<x-slot name="modalFooter">
2020-09-01 17:46:27 +01:00
<button type="button" class="btn btn-danger" onclick="$('#disable2FA').submit()"><i class="fa fa-trash"></i> {{__('messages.profile.2fa_remove')}}</button>
2020-07-17 22:44:10 +01:00
</x-slot>
</x-modal>
@endif
<div class="modal fade" tabindex="-1" id="authenticationForm" role="dialog" aria-labelledby="authenticationFormLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
2020-09-01 17:46:27 +01:00
<h5 class="modal-title" id="authenticationFormLabel">{{__('messages.reusable.auth_req')}}</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
2020-09-01 17:46:27 +01:00
<p class="text-muted">{{__('messages.profile.security_lgotherdev')}}</p>
<form method="POST" action="{{route('flushSessions')}}" id="flushSessions">
@csrf
2020-09-01 17:46:27 +01:00
<label for="reenter">{{__('messages.profile.password_reenter')}}</label>
<input type="password" name="currentPasswordFlush" id="currentPasswordFlush" class="form-control" autocomplete="current-password">
</form>
</div>
<div class="modal-footer">
2020-09-01 17:46:27 +01:00
<button type="button" class="btn btn-success" onclick="document.getElementById('flushSessions').submit()">{{__('messages.reusable.confirm')}}</button>
<button type="button" class="btn btn-secondary" data-dismiss="modal">{{__('messages.modal_close')}}</button>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col text-center">
<div class="card">
<div class="card-body">
2020-09-01 17:46:27 +01:00
<h3>{{__('messages.welcome_back')}} {{Auth::user()->name}}</h3>
<p class="text-muted">{{Auth::user()->email}}</p>
2020-09-01 17:46:27 +01:00
<a href="https://namemc.com/profile/{{Auth::user()->uuid}}" target="_blank">{{__('messages.reusable.view')}} @ NameMC</a>
</div>
</div>
</div>
</div>
@if(session('passwordExpired'))
<div class="row">
<div class="col">
<div class="alert alert-warning">
2022-02-02 05:36:09 +00:00
<p><i class="fas fa-exclamation-triangle"></i><b> {{ __('Your password has expired') }}</b></p>
<p>
2022-02-02 05:36:09 +00:00
{{ __('You\'ve been redirected here because your password has expired. All users must change their password every :numDaysChangePw days. This is put in place to make sure user accounts remain secure.', ['numDaysChangePw' => \App\Facades\Options::getOption('password_expiry')]) }}
</p>
2022-02-02 05:36:09 +00:00
<p>{{ __('Please change update your password now. You won\'t be able to use the site until you do this.') }}</p>
</div>
</div>
</div>
@endif
<div class="row">
<div class="col">
<div class="card mt-3 tab-card">
<div class="card-header tab-card-header">
<ul class="nav nav-tabs card-header-tabs" id="myTab" role="tablist">
<li class="nav-item">
2020-09-01 17:46:27 +01:00
<a class="nav-link" id="accountSecurityTab" data-toggle="tab" href="#accountSecurity" role="tab" aria-controls="AccountSecurity" aria-selected="true">{{__('messages.profile.acc_security')}}</a>
</li>
<li class="nav-item">
2020-09-01 17:46:27 +01:00
<a class="nav-link" id="twofaTab" data-toggle="tab" href="#twofa" role="tab" aria-controls="TwoFa" aria-selected="false">{{__('messages.profile.2fa')}}</a>
</li>
<li class="nav-item">
2020-09-01 17:46:27 +01:00
<a class="nav-link" id="sessionsTab" data-toggle="tab" href="#sessions" role="tab" aria-controls="Sessions" aria-selected="false">{{__('messages.profile.sessions')}}</a>
</li>
<li class="nav-item">
2020-09-01 17:46:27 +01:00
<a class="nav-link" id="contactSettingsTab" data-toggle="tab" href="#contactSettings" role="tab" aria-controls="ContactSettings" aria-selected="false">{{__('messages.profile.contact_settings')}}</a>
</li>
<li class="nav-item">
2022-02-02 05:36:09 +00:00
<a class="nav-link" id="dangerZoneTab" data-toggle="tab" href="#dangerZone" role="tab" aria-controls="DangerZone" aria-selected="false">{{ __('Danger Zone') }}</a>
</li>
</ul>
</div>
<div class="tab-content" id="myTabContent">
<div class="tab-pane fade show active p-3" id="accountSecurity" role="tabpanel" aria-labelledby="accountSecurityTab">
@if($demoActive)
<div class="alert alert-danger">
2022-02-02 05:36:09 +00:00
<p class="font-weight-bold"><i class="fa fa-exclamation-triangle"></i> {{ __('This feature is disabled') }}</p>
</div>
@endif
2020-09-01 17:46:27 +01:00
<h5 class="card-title">{{__('messages.profile.change_password')}}</h5>
<p class="card-text">{{__('messages.profile.change_password_exp')}}</p>
<form method="POST" action="{{route('changePassword')}}" id="changePassword">
@csrf
@method('PATCH')
2020-09-01 17:46:27 +01:00
<label for="oldpassword">{{__('messages.profile.old_pass')}}</label>
<input class="form-control" name="oldPassword" type="password" id="oldpassword" autocomplete="current-password">
2020-09-01 17:46:27 +01:00
<p class="text-sm text-muted">{{__('messages.forgot_pw', ['link' => '<a href="/auth/password/reset">' . __('messages.reusable.here') . '</a>'])}}</p>
<div class="form-group mt-5">
2020-09-01 17:46:27 +01:00
<label for="newpassword">{{__('messages.profile.new_pw')}}</label>
<input type="password" name="newPassword" id="newpassword" class="form-control" autocomplete="new-password">
2020-09-01 17:46:27 +01:00
<label for="newpassword_confirmation">{{__('messages.sronly_confirmpassword')}}</label>
<input type="password" name="newPassword_confirmation" id="newpassword_confirmation" autocomplete="new-password" class="form-control">
</div>
</form>
<button {{ ($demoActive) ? 'disabled' : '' }} class="btn btn-success" type="button" onclick="document.getElementById('changePassword').submit()">{{__('messages.profile.change_password')}}</button>
</div>
<div class="tab-pane fade p-3" id="twofa" role="tabpanel" aria-labelledby="twofaTab">
2020-09-01 17:46:27 +01:00
<h5 class="card-title">{{__('messages.profile.2fa')}}</h5>
2020-07-17 22:44:10 +01:00
<br />
@if (Auth::user()->has2FA())
2020-09-01 17:46:27 +01:00
<p>{{__('messages.profile.2fa_enable_success')}}</p>
<button type="button" class="btn btn-danger" onclick="$('#remove2FA').modal('show')"><i class="fa fa-ban"></i>{{__('messages.profile.2fa_remove')}}</button>
2020-07-17 22:44:10 +01:00
@else
2020-09-01 17:46:27 +01:00
<p class="card-text"><b>{{__('messages.profile.2fa_avail')}}</b>{{__('messages.profile.2fa_avail_exp')}}</p>
<button type="button" class="btn btn-primary" onclick="$('#twoFactorAuthModal').modal('show')">{{__('messages.profile.2fa_enable')}}</button>
2020-07-17 22:44:10 +01:00
@endif
</div>
<div class="tab-pane fade p-3" id="sessions" role="tabpanel" aria-labelledby="sessionsTab">
2020-09-01 17:46:27 +01:00
<h5 class="card-title">{{__('messages.profile.session_manager')}}</h5>
<p class="card-text">{{__('messages.profile.terminate_others')}}</p>
<p>{{__('messages.profile.current_session', ['ipAddress' => (!$shouldCollect) ? '0.0.0.0 (censored)' : $ip])}}</p>
2020-09-01 17:46:27 +01:00
<button type="button" class="btn btn-warning" onclick="$('#authenticationForm').modal('show')">{{__('messages.profile.flush_session')}}</button>
</div>
<div class="tab-pane fade p-3" id="contactSettings" role="tabpanel" aria-labelledby="contactSettingsTab">
@if($demoActive)
<div class="alert alert-danger">
2022-02-02 05:36:09 +00:00
<p class="font-weight-bold"><i class="fa fa-exclamation-triangle"></i> {{ __('This feature is disabled') }}</p>
</div>
@endif
2020-09-01 17:46:27 +01:00
<h5 class="card-title">{{__('messages.profile.contact_settings')}}</h5>
<p class="card-text">{{__('messages.profile.personal_data_change')}}</p>
<form method="POST" action="{{route('changeEmail')}}" id="changeEmail">
@csrf
@method('PATCH')
<div class="form-group">
2020-09-01 17:46:27 +01:00
<label for="oldEmail">{{__('messages.profile.current_email')}}</label>
<input type="text" class="form-control" id="oldEmail" disabled value="{{Auth::user()->email}}">
2020-09-01 17:46:27 +01:00
<label for="newEmail">{{__('messages.profile.new_email')}}</label>
<input type="email" name="newEmail" class="form-control mb-3" id="newEmail">
</div>
<div class="form-group mt-5">
2020-09-01 17:46:27 +01:00
<label for="currentPassword">{{__('messages.profile.current_password')}}</label>
<input type="password" name="currentPassword" class="form-control" id="currentPassword" autocomplete="current-password">
2020-09-01 17:46:27 +01:00
<p class="text-sm text-muted">{{__('messages.profile.security_nochangepw')}}</p>
</div>
</form>
<button {{ ($demoActive) ? 'disabled' : '' }} class="btn btn-success" type="button" onclick="document.getElementById('changeEmail').submit()">{{__('messages.profile.change_email')}}</button>
</div>
<div class="tab-pane fade p-3" id="dangerZone" role="tabpanel" aria-labelledby="dangerZoneTab">
2022-02-02 05:36:09 +00:00
<h5 class="card-title">{{ __('Danger Zone') }}</h5>
<p class="card-text text-bold"><i class="fas fa-radiation"></i> {{ __('Careful! Actions in these tab might result in irreversible loss of data.') }}</p>
<button onclick="$('#deleteAccountModal').modal('show')" rel="buttonTxtTooltip" data-toggle="tooltip" data-placement="top" title="This action will delete your account permanently." class="btn btn-danger" type="button"><i class="fas fa-user-slash"></i> Close Account</button>
</div>
</div>
</div>
</div>
</div>
</div>
@stop
2020-07-16 06:46:20 +01:00
@section('footer')
@include('breadcrumbs.dashboard.footer')
@stop