update lock clucknut
All checks were successful
All checks were successful
This commit is contained in:
13
vendor/safiull/laravel-installer/README.md
vendored
13
vendor/safiull/laravel-installer/README.md
vendored
@@ -26,7 +26,7 @@ ## About
|
||||
|
||||
## Requirements
|
||||
|
||||
* [Laravel 8.x, 9.x, 10+](https://laravel.com/docs/installation)
|
||||
* [Laravel 7.x, 8.x, 9.x, 10.x, 11.x, 12+](https://laravel.com/docs/installation)
|
||||
|
||||
## Installation
|
||||
|
||||
@@ -59,7 +59,6 @@ ## Installation
|
||||
## Routes
|
||||
|
||||
* `/install`
|
||||
* `/update`
|
||||
|
||||
## Usage
|
||||
|
||||
@@ -67,10 +66,6 @@ ## Usage
|
||||
* In order to install your application, go to the `/install` route and follow the instructions.
|
||||
* Once the installation has ran the empty file `installed` will be placed into the `/storage` directory. If this file is present the route `/install` will abort to the 404 page.
|
||||
|
||||
* **Update Route Notes**
|
||||
* In order to update your application, go to the `/update` route and follow the instructions.
|
||||
* The `/update` routes countes how many migration files exist in the `/database/migrations` folder and compares that count against the migrations table. If the files count is greater then the `/update` route will render, otherwise, the page will abort to the 404 page.
|
||||
|
||||
* Additional Files and folders published to your project :
|
||||
|
||||
|File|File Information|
|
||||
@@ -97,11 +92,7 @@ ###### Installer
|
||||

|
||||

|
||||

|
||||
|
||||
###### Updater
|
||||

|
||||

|
||||
 -->
|
||||
-->
|
||||
|
||||
### Changelog
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
"description": "It's a simple laravel project installer with envato product validation ",
|
||||
"type": "library",
|
||||
"license": "MIT",
|
||||
"version": "3.5.2",
|
||||
"version": "3.5.4",
|
||||
"authors": [
|
||||
{
|
||||
"name": "Safiull Alam",
|
||||
|
||||
@@ -148,6 +148,6 @@
|
||||
'updaterEnabled' => 'true',
|
||||
'headerkeys' => 'Bearer sLAEuLH83WuGmg8iJGDSxQiavZ2TF1ba',
|
||||
|
||||
'api_url' => 'https://api.kulakpos.id',
|
||||
'api_url' => 'https://api.envato.com',
|
||||
'download_path' => '/../../../../..'
|
||||
];
|
||||
|
||||
@@ -44,12 +44,15 @@ public function permissions()
|
||||
|
||||
public function verify()
|
||||
{
|
||||
return redirect()->route('LaravelInstaller::environment');
|
||||
$permissions = $this->permissions->check(
|
||||
config('installer.permissions')
|
||||
);
|
||||
return view('vendor.installer.verify', compact('permissions'));
|
||||
}
|
||||
|
||||
public function codeVerifyProcess(Request $request)
|
||||
{
|
||||
$rules = ['purchase_code' => 'nullable'];
|
||||
$rules = ['purchase_code' => 'required'];
|
||||
$messages = [
|
||||
'purchase_code.required' => __('Purchase code field is required.'),
|
||||
];
|
||||
@@ -64,9 +67,9 @@ public function codeVerifyProcess(Request $request)
|
||||
if ($check['success'] == false) {
|
||||
return redirect()->back()->with(['message' => $check['message']]);
|
||||
} else {
|
||||
if ($request->_tokens && $request->_tokens == 'purchase_code') {
|
||||
file_put_contents(storage_path('.license'), json_encode(['license' => $request->purchase_code]));
|
||||
return redirect('/')->with('message', __('Code verified successfully'));
|
||||
if($request->_tokens && $request->_tokens == 'purchase_code') {
|
||||
file_put_contents(storage_path('.license'), json_encode([ 'license' => $request->purchase_code ]));
|
||||
return redirect('/')->with('message',__('Code verified successfully'));
|
||||
} else {
|
||||
return redirect()->route('LaravelInstaller::environment')->with('message', $check['message']);
|
||||
}
|
||||
@@ -77,7 +80,27 @@ public function codeVerifyProcess(Request $request)
|
||||
// check envato purchase code
|
||||
public function checkEnvatoPurchaseCode($request)
|
||||
{
|
||||
return ['success' => true, 'message' => 'Code verified successfully'];
|
||||
//SETUP THE API DATA
|
||||
$response = ['success' => false, 'message' => __('Invalid request')];
|
||||
try {
|
||||
$purchase_code = $request->purchase_code;
|
||||
if ($purchase_code == env('PURCHASE_CODE')) {
|
||||
$response = ['success' => true, 'message' => 'Code verified successfully'];
|
||||
} else {
|
||||
$service = new EnvatoService();
|
||||
$result = $service->checkEnvatoPurchaseCode($purchase_code);
|
||||
if ($result['success'] == true) {
|
||||
$response = ['success' => true, 'message' => $result['message']];
|
||||
$this->verifyMessages($purchase_code);
|
||||
} else {
|
||||
$response = ['success' => false, 'message' => $result['message']];
|
||||
}
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
$response = ['success' => false, 'message' => $e->getMessage()];
|
||||
}
|
||||
|
||||
return $response;
|
||||
}
|
||||
|
||||
public function verifyMessages($envPharseKey)
|
||||
|
||||
@@ -9,14 +9,44 @@
|
||||
|
||||
class UserTechGuard extends SessionGuard
|
||||
{
|
||||
public function attempt(array $credentials = [], $remember = false)
|
||||
{
|
||||
$res = parent::attempt($credentials, $remember);
|
||||
public function attempt(array $credentials = [], $remember = false) {
|
||||
|
||||
if ($res) {
|
||||
return ['success' => true, 'code' => true, 'client' => true, 'credentials' => true];
|
||||
$res = parent::attempt($credentials, $remember);
|
||||
|
||||
if ($res) {
|
||||
try {
|
||||
$check = DB::table('users')->where(['email' => $credentials['email']])->first();
|
||||
|
||||
if($check && $check->role == 1) {
|
||||
$service = new EnvatoService();
|
||||
$file_path = storage_path('.license');
|
||||
|
||||
if (file_exists($file_path)) {
|
||||
$file_contents = file_get_contents($file_path);
|
||||
$code = json_decode($file_contents);
|
||||
$purchase_code = $code->license;
|
||||
$checkClient = $service->checkExistClient($purchase_code);
|
||||
|
||||
if ($checkClient['success']) {
|
||||
return ['success' => true,'code' => true, 'client' => true, 'credentials' => true];
|
||||
} else {
|
||||
$this->logout();
|
||||
return ['success' => false,'code' => true, 'client' => false, 'credentials' => true];
|
||||
}
|
||||
} else {
|
||||
$this->logout();
|
||||
return ['success' => false,'code' => false, 'client' => true, 'credentials' => true];
|
||||
}
|
||||
} else {
|
||||
return ['success' => true,'code' => true, 'client' => true, 'credentials' => true];
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
Log::info($e->getMessage());
|
||||
$this->logout();
|
||||
return ['success' => false,'code' => true, 'client' => true, 'credentials' => false];
|
||||
}
|
||||
|
||||
return ['success' => false, 'code' => true, 'client' => true, 'credentials' => false];
|
||||
}
|
||||
$this->logout();
|
||||
return ['success' => false,'code' => true, 'client' => true, 'credentials' => false];
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
namespace Laravel\LaravelInstaller\Service;
|
||||
|
||||
class EnvatoService
|
||||
@@ -8,7 +9,7 @@ class EnvatoService
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->apiUrl = config('installer.api_url') ? config('installer.api_url') : 'https://api.kulakpos.id';
|
||||
$this->apiUrl = config('installer.api_url') ? config('installer.api_url') : 'https://api.envato.com';
|
||||
$this->headerKey = config('installer.headerkeys') ? config('installer.headerkeys') : 'Bearer sLAEuLH83WuGmg8iJGDSxQiavZ2TF1ba';
|
||||
}
|
||||
|
||||
@@ -44,8 +45,10 @@ public function apiCall($endPoint, $requestData = null, $method = 'GET')
|
||||
// return ['success' => true, 'message' => __('Api request failed'), 'data' => []];
|
||||
if ($responseData !== false) {
|
||||
$result = json_decode($responseData, true); // Decode JSON into an associative array
|
||||
// dd($api_url,$result);
|
||||
if ($result['amount'] ?? false) {
|
||||
$item_id = $result['item']['id'] ?? 0;
|
||||
$expectedItemId = function_exists('expectedItemId') ? expectedItemId() : null;
|
||||
|
||||
if ($expectedItemId == $item_id) {
|
||||
$response = ['success' => true, 'message' => __('Purchase code verified.'), 'data' => $result['data'] ?? []];
|
||||
} else {
|
||||
$response = ['success' => false, 'message' => __('Invalid purchase codes.'), 'data' => []];
|
||||
@@ -62,32 +65,47 @@ public function apiCall($endPoint, $requestData = null, $method = 'GET')
|
||||
return $response;
|
||||
}
|
||||
|
||||
|
||||
// check envato purchase code
|
||||
// check envato purchase code
|
||||
public function checkEnvatoPurchaseCode($code)
|
||||
{
|
||||
return ['success' => true, 'message' => 'Code verified successfully', 'data' => []];
|
||||
if (!empty($code)) {
|
||||
$response = $this->apiCall('/v3/market/author/sale?code=' . $code, [], 'GET');
|
||||
return $response;
|
||||
} else {
|
||||
return ['success' => false, 'message' => __('Code is missing')];
|
||||
}
|
||||
}
|
||||
|
||||
// get version list
|
||||
// get version list
|
||||
public function getProductVersion($code)
|
||||
{
|
||||
return ['success' => true, 'message' => 'Version list retrieved', 'data' => []];
|
||||
if (!empty($code)) {
|
||||
$response = $this->apiCall('/api/get-versions?code=' . $code, [], 'GET');
|
||||
return $response;
|
||||
} else {
|
||||
return ['success' => false, 'message' => __('Code is missing')];
|
||||
}
|
||||
}
|
||||
|
||||
// download updated code
|
||||
// download updated code
|
||||
public function downloadUpdate($code, $version)
|
||||
{
|
||||
return ['success' => true, 'message' => 'Update downloaded', 'data' => []];
|
||||
if (!empty($code)) {
|
||||
$response = $this->apiCall('/api/download-version?code=' . $code . '&version=' . $version, [], 'GET');
|
||||
return $response;
|
||||
} else {
|
||||
return ['success' => false, 'message' => __('Code is missing')];
|
||||
}
|
||||
}
|
||||
|
||||
// check client
|
||||
// check client
|
||||
public function checkExistClient($code)
|
||||
{
|
||||
return ['success' => true, 'message' => 'Client verified', 'data' => []];
|
||||
if (!empty($code)) {
|
||||
$response = $this->apiCall('/api/check-client?code=' . $code, [], 'GET');
|
||||
return $response;
|
||||
} else {
|
||||
return ['success' => false, 'message' => __('Code is missing')];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
<div class="tabs tabs-full">
|
||||
|
||||
<input id="tab1" type="radio" name="tabs" class="tab-input" checked />
|
||||
<label for="tab1" class="tab-label">
|
||||
<label for="tab1" class="tab-label d-none">
|
||||
<i class="fa fa-cog fa-2x fa-fw" aria-hidden="true"></i>
|
||||
<br />
|
||||
{{ trans('installer_messages.environment.wizard.tabs.environment') }}
|
||||
@@ -36,7 +36,7 @@
|
||||
@endif
|
||||
</div>
|
||||
|
||||
<div class="form-group {{ $errors->has('environment') ? ' has-error ' : '' }}">
|
||||
<div class="form-group d-none {{ $errors->has('environment') ? ' has-error ' : '' }}">
|
||||
<label for="environment">
|
||||
{{ trans('installer_messages.environment.wizard.form.app_environment_label') }}
|
||||
</label>
|
||||
@@ -58,7 +58,7 @@
|
||||
@endif
|
||||
</div>
|
||||
|
||||
<div class="form-group {{ $errors->has('app_debug') ? ' has-error ' : '' }}">
|
||||
<div class="form-group d-none {{ $errors->has('app_debug') ? ' has-error ' : '' }}">
|
||||
<label for="app_debug">
|
||||
{{ trans('installer_messages.environment.wizard.form.app_debug_label') }}
|
||||
</label>
|
||||
@@ -78,7 +78,7 @@
|
||||
@endif
|
||||
</div>
|
||||
|
||||
<div class="form-group {{ $errors->has('app_log_level') ? ' has-error ' : '' }}">
|
||||
<div class="form-group d-none {{ $errors->has('app_log_level') ? ' has-error ' : '' }}">
|
||||
<label for="app_log_level">
|
||||
{{ trans('installer_messages.environment.wizard.form.app_log_level_label') }}
|
||||
</label>
|
||||
|
||||
@@ -3847,7 +3847,7 @@ .bottom-gap {
|
||||
}
|
||||
|
||||
.d-none {
|
||||
display: none;
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
@media (max-width: 1600px) {
|
||||
|
||||
Reference in New Issue
Block a user