shell bypass 403
@extends('layouts/contentLayoutMaster')
@section('title', __('locale.menu.Update Application'))
@section('content')
<!-- Basic Vertical form layout section start -->
<section id="basic-vertical-layouts">
<div class="row match-height">
<div class="col-md-7 col-12">
<div class="card">
<div class="card-header"></div>
<div class="card-content">
<div class="card-body">
@if ($errors->any())
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
@if(Session::get('update_required'))
<h4 class="text-danger mb-2">Before update, please take a backup you're all files and database.</h4>
<p> Your are currently running on Ultimate SMS <code class="fw-bold">{{ config('app.version') }}</code> To upgrade your application, please download the latest build from <a href="https://codecanyon.net/item/ultimate-sms-bulk-sms-application-for-marketing/20062631" target="_blank">codecanyon.net</a> , then you can find the upgrade package located at downloaded folder called <code>3.*.*_update.zip</code>, upload it using the form below.
</p>
<p>Please make sure the upgrade package file size does not exceed the following upload limit settings:<br><br>
<span class="fw-bold text-danger"><i data-feather="check-square"></i> post_max_size</span> <span class="fw-bold text-primary">256M</span><br>
<span class="fw-bold text-danger"><i data-feather="check-square"></i> upload_max_filesize</span> <span class="fw-bold text-primary">256M</span>
</p>
<form id="fileUploadForm" class="form form-vertical" action="{{ route('admin.settings.update_application') }}" method="post" enctype="multipart/form-data">
@csrf
<div class="row">
<div class="col-12">
<div class="mb-1">
<label for="purchase_code" class="required form-label">{{__('locale.permission.purchase_code')}}</label>
<input type="text" id="purchase_code" class="form-control @error('purchase_code') is-invalid @enderror" value="{{ \App\Helpers\Helper::app_config('license') }}" name="purchase_code" required>
@error('purchase_code')
<div class="invalid-feedback">
{{ $message }}
</div>
@enderror
</div>
</div>
<div class="col-12">
<div class="mb-1">
<label for="update_file" class="form-label">Update File</label>
<input type="file" name="update_file" class="form-control" id="update_file" accept="zip,application/octet-stream,application/zip,application/x-zip,application/x-zip-compressed"/>
@error('update_file')
<p><small class="text-danger"> {{ $message }}</small></p>
@enderror
@if(Session::get('version'))
<input type="hidden" value="{{Session::get('version')}}" name="version">
<p><small class="text-primary"> Please upload only <code>{{Session::get('version')}}_update.zip</code> file</small></p>
@endif
</div>
</div>
</div>
<div class="row">
<div class="col-12">
<button type="submit" class="btn btn-primary mr-1 mb-1">
<i data-feather="upload"></i> {{__('locale.labels.upload')}}
</button>
</div>
</div>
<div class="row" id="progress_bar">
<div class="col-12">
<div class="progress progress-bar-primary">
<div class="progress-bar progress-bar-striped progress-bar-animated"
role="progressbar"
aria-valuenow="0"
aria-valuemin="0"
aria-valuemax="100"
style="width: 0"
></div>
</div>
</div>
</div>
</form>
@else
<h3> Your are currently running on Ultimate SMS <code class="fw-bold">{{ config('app.version') }}</code></h3>
<h4 class="mt-1"><span class="text-primary"> CONGRATULATION!!!</span> You are using latest version</h4>
<hr>
<a href="{{ route('admin.settings.check_update') }}" class="btn btn-primary"><i data-feather="check-square"></i> Check for Updates</a>
@endif
</div>
</div>
</div>
</div>
</div>
</section>
<!-- // Basic Vertical form layout section end -->
@endsection
@section('page-script')
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.form/4.3.0/jquery.form.min.js"></script>
<script>
let firstInvalid = $('form').find('.is-invalid').eq(0);
if (firstInvalid.length) {
$('body, html').stop(true, true).animate({
'scrollTop': firstInvalid.offset().top - 200 + 'px'
}, 200);
}
let progress_bar = $('#progress_bar');
progress_bar.hide();
$('#fileUploadForm').ajaxForm({
beforeSend: function () {
let percentage = '0';
},
uploadProgress: function (event, position, total, percentComplete) {
let percentage = percentComplete;
progress_bar.show();
$('.progress .progress-bar').css("width", percentage + '%', function () {
return $(this).attr("aria-valuenow", percentage) + "%";
})
},
complete: function (data) {
if (data.responseJSON.status) {
toastr['success']("File uploaded. Please don't reload the page until complete. it will take couple of minutes to complete", '{{__('locale.labels.success')}}!!', {
closeButton: true,
positionClass: 'toast-top-right',
progressBar: true,
newestOnTop: true,
rtl: isRtl
});
setTimeout(function () {
window.location = data.responseJSON.redirectURL;
}, 3000)
} else {
toastr['success'](data.responseJSON.message, '{{__('locale.labels.attention')}}!!', {
closeButton: true,
positionClass: 'toast-top-right',
progressBar: true,
newestOnTop: true,
rtl: isRtl
});
}
}
});
</script>
@endsection