Wa Gateway | Multi device BETA | MPWA MD

Wa Gateway | Multi device BETA | MPWA MD v8.0.0 ( Extended License )

No permission to download

krissiank

Member
Feb 20, 2021
81
8
8
Hello please
the installation has been done on aapanel
but I can't send the images
how to solve this problem
I have re-scan several times already my number Capture d’écran 2022-08-15 124114.png
 

cranzi

Active member
Nov 18, 2019
283
66
28
Hello please
the installation has been done on aapanel
but I can't send the images
how to solve this problem
I have re-scan several times already my number Capture d’écran 2022-08-15 124114.png

the media files in your folder are not connected properly, try checking the public root folder, there should be a folder called storage. The folder is in the form of a chain. if it doesn't mean it's not connected properly

I say this because I experienced the same thing, until I found the root of the problem, it was also thanks to the other members who gave hints
 
  • Like
Reactions: krissiank

pipopipotes

New member
Apr 6, 2021
17
5
3
Gentlemen, thanks for your input, I would like to make a summary to be able to create a chain of solutions, if you can confirm the actions of the threads as a solution or that configuration is the correct one, it would be great to have an enriched configuration experience.
 
  • Like
Reactions: acsoft

average_coder

Member
Banned User
Jul 28, 2022
30
52
18
Decrypted web.php for v4.0 location routes/web.php Let me know if it works for you, take backup of your original file before replacing.
PHP:
<?php
use App\Http\Controllers\AdminController;
use App\Http\Controllers\Auth\LoginController;
use App\Http\Controllers\Auth\LogoutController;
use App\Http\Controllers\AutoreplyController;
use App\Http\Controllers\BlastController;
use App\Http\Controllers\CampaignController;
use App\Http\Controllers\ContactController;
use App\Http\Controllers\FileManagerController;
use App\Http\Controllers\HomeController;
use App\Http\Controllers\MessagesController;
use App\Http\Controllers\RegisterController;
use App\Http\Controllers\RestapiController;
use App\Http\Controllers\ScanController;
use App\Http\Controllers\ScheduleMessageController;
use App\Http\Controllers\SettingController;
use App\Http\Controllers\TagController;
use App\Http\Controllers\UserController;
use Illuminate\Support\Facades\Route;
use Illuminate\Support\Facades\Redirect;
require_once 'custom-route.php';
Route::group(['prefix' => 'laravel-filemanager', 'middleware' => ['web', 'auth']], function () {
    \UniSharp\LaravelFilemanager\Lfm::routes();
});
Route::get('/', function () {
    return Redirect::to('/login');
    // OR: return Redirect::intended('/bands'); // if using authentication
    
});
Route::middleware('installed.app', 'auth')->group(function () {
    Route::get('/file-manager', [FileManagerController::class, 'index'])->name('file-manager');
    Route::get('/home', [HomeController::class, 'index'])->name('home');
    Route::post('/home/setSessionSelectedDevice', [HomeController::class, 'setSelectedDeviceSession'])->name('home.setSessionSelectedDevice');
    Route::post('/home/sethook', [HomeController::class, 'setHook'])->name('setHook');
    Route::post('/home', [HomeController::class, 'store'])->name('addDevice');
    Route::delete('/home', [HomeController::class, 'destroy'])->name('deleteDevice');
    Route::get('/scan/{number:body}', ScanController::class)->name('scan');
    Route::get('/autoreply', [AutoreplyController::class, 'index'])->name('autoreply');
    Route::post('/autoreply', [AutoreplyController::class, 'store'])->name('autoreply');
    Route::get('/autoreply/{type}', [AutoreplyController::class, 'getFormByType']);
    Route::delete('/autoreply', [AutoreplyController::class, 'destroy'])->name('autoreply.delete');
    Route::delete('/autoreply/all', [AutoreplyController::class, 'destroyAll'])->name('deleteAllAutoreply');
    Route::get('/autoreply/show-reply/{id}', [AutoreplyController::class, 'show']);
    Route::post('/contact/add', [ContactController::class, 'store'])->name('addcontact');
    Route::post('/contact/export', [ContactController::class, 'export'])->name('exportContact');
    Route::delete('/contact/delete_all', [ContactController::class, 'DestroyAll'])->name('deleteAll');
    Route::delete('/contact/delete/{id}', [ContactController::class, 'destroy'])->name('contactDeleteOne');
    Route::post('/contact/import', [ContactController::class, 'import'])->name('importContacts');
    Route::post('/contact', [ContactController::class, 'store'])->name('contact');
    Route::get('/contact/{contacts:tag_id}', [ContactController::class, 'index']);
    Route::get('/tags', [TagController::class, 'index'])->name('tag');
    Route::post('/tags', [TagController::class, 'store'])->name('tag.store');
    Route::delete('/tags', [TagController::class, 'destroy'])->name('tag.delete');
    Route::get('/tag/view/{id}', [TagController::class, 'view']);
    Route::post('fetch-groups', [TagController::class, 'fetchGroups'])->name('fetch.groups');
    Route::get('/campaign/create', [CampaignController::class, 'index'])->name('campaign.create');
    Route::get('/campaigns', [CampaignController::class, 'lists'])->name('campaign.lists');
    Route::get('/campaign/show/{id}', [CampaignController::class, 'show'])->name('campaign.show');
    Route::delete('/delete-all-campaigns', [CampaignController::class, 'destroyAll'])->name('campaigns.delete.all');
    Route::post('/blast', [BlastController::class, 'blastProccess'])->name('blast');
    Route::get('/blast/scheduled', [BlastController::class, 'scheduled'])->name('scheduledMessage');
    Route::get('/blast/text-message', [BlastController::class, 'getPageBlastText']);
    Route::get('/blast/image-message', [BlastController::class, 'getPageBlastImage']);
    Route::get('/blast/button-message', [BlastController::class, 'getPageBlastButton']);
    Route::get('/blast/template-message', [BlastController::class, 'getPageBlastTemplate']);
    Route::get('/blast/histories/{blast:campaign_id}', [BlastController::class, 'histories'])->name('blastHistories');
    Route::get('/message/test', [MessagesController::class, 'index'])->name('messagetest');
    Route::get('/message/test', [MessagesController::class, 'index'])->name('messagetest');
    Route::post('/message/test/text', [MessagesController::class, 'textMessageTest'])->name('textMessageTest');
    Route::post('/message/test/image', [MessagesController::class, 'imageMessageTest'])->name('imageMessageTest');
    Route::post('/message/test/button', [MessagesController::class, 'buttonMessageTest'])->name('buttonMessageTest');
    Route::post('/message/test/template', [MessagesController::class, 'templateMessageTest'])->name('templateMessageTest');
    Route::post('/message/test/list', [MessagesController::class, 'listMessageTest'])->name('listMessageTest');
    Route::get('/rest-api', RestapiController::class)->name('rest-api');
    Route::get('/user/change-password', [UserController::class, 'changePassword'])->name('user.changePassword');
    Route::post('/user/change-password', [UserController::class, 'changePasswordPost'])->name('changePassword');
    Route::post('/user/setting/apikey', [UserController::class, 'generateNewApiKey'])->name('generateNewApiKey');
    Route::post('/user/settings/chunk', [UserController::class, 'changeChunk'])->name('changeChunk');
    Route::get('/settings', [SettingController::class, 'index'])->name('settings');
    Route::post('/settings/server', [SettingController::class, 'setServer'])->name('setServer');
    Route::get('/schedule', [ScheduleMessageController::class, 'index'])->name('scheduleMessage');
    Route::get('/admin/manage-user', [AdminController::class, 'manageUser'])->name('admin.manageUser')->middleware('admin');
    Route::post('/admin/user/store', [AdminController::class, 'userStore'])->name('user.store')->middleware('admin');
    Route::delete('/admin/user/delete/{id}', [AdminController::class, 'userDelete'])->name('user.delete')->middleware('admin');
    Route::get('admin/user/edit', [AdminController::class, 'userEdit'])->name('user.edit')->middleware('admin');
    Route::post('admin/user/update', [AdminController::class, 'userUpdate'])->name('user.update')->middleware('admin');
    Route::post('/logout', LogoutController::class)->name('logout');
});
Route::middleware('installed.app', 'guest')->group(function () {
    Route::get('/login', [LoginController::class, 'index'])->name('login');
    Route::get('/register', [RegisterController::class, 'index'])->name('register');
    Route::post('/register', [RegisterController::class, 'store'])->name('register');
    Route::post('/login', [LoginController::class, 'store'])->name('login');
});
Route::get('/install', [SettingController::class, 'install'])->name('setting.install_app');
Route::post('/install', [SettingController::class, 'install'])->name('settings.install_app');
Route::post('/settings/check_database_connection', [SettingController::class, 'test_database_connection'])->name('connectDB');
Route::post('/settings/activate_license', [SettingController::class, 'activate_license'])->name('activateLicense');
?>
 
  • Like
Reactions: acsoft and Gemes

acsoft

Member
May 4, 2022
53
17
8
Decrypted web.php for v4.0 location routes/web.php Let me know if it works for you, take backup of your original file before replacing.
PHP:
<?php
use App\Http\Controllers\AdminController;
use App\Http\Controllers\Auth\LoginController;
use App\Http\Controllers\Auth\LogoutController;
use App\Http\Controllers\AutoreplyController;
use App\Http\Controllers\BlastController;
use App\Http\Controllers\CampaignController;
use App\Http\Controllers\ContactController;
use App\Http\Controllers\FileManagerController;
use App\Http\Controllers\HomeController;
use App\Http\Controllers\MessagesController;
use App\Http\Controllers\RegisterController;
use App\Http\Controllers\RestapiController;
use App\Http\Controllers\ScanController;
use App\Http\Controllers\ScheduleMessageController;
use App\Http\Controllers\SettingController;
use App\Http\Controllers\TagController;
use App\Http\Controllers\UserController;
use Illuminate\Support\Facades\Route;
use Illuminate\Support\Facades\Redirect;
require_once 'custom-route.php';
Route::group(['prefix' => 'laravel-filemanager', 'middleware' => ['web', 'auth']], function () {
    \UniSharp\LaravelFilemanager\Lfm::routes();
});
Route::get('/', function () {
    return Redirect::to('/login');
    // OR: return Redirect::intended('/bands'); // if using authentication
   
});
Route::middleware('installed.app', 'auth')->group(function () {
    Route::get('/file-manager', [FileManagerController::class, 'index'])->name('file-manager');
    Route::get('/home', [HomeController::class, 'index'])->name('home');
    Route::post('/home/setSessionSelectedDevice', [HomeController::class, 'setSelectedDeviceSession'])->name('home.setSessionSelectedDevice');
    Route::post('/home/sethook', [HomeController::class, 'setHook'])->name('setHook');
    Route::post('/home', [HomeController::class, 'store'])->name('addDevice');
    Route::delete('/home', [HomeController::class, 'destroy'])->name('deleteDevice');
    Route::get('/scan/{number:body}', ScanController::class)->name('scan');
    Route::get('/autoreply', [AutoreplyController::class, 'index'])->name('autoreply');
    Route::post('/autoreply', [AutoreplyController::class, 'store'])->name('autoreply');
    Route::get('/autoreply/{type}', [AutoreplyController::class, 'getFormByType']);
    Route::delete('/autoreply', [AutoreplyController::class, 'destroy'])->name('autoreply.delete');
    Route::delete('/autoreply/all', [AutoreplyController::class, 'destroyAll'])->name('deleteAllAutoreply');
    Route::get('/autoreply/show-reply/{id}', [AutoreplyController::class, 'show']);
    Route::post('/contact/add', [ContactController::class, 'store'])->name('addcontact');
    Route::post('/contact/export', [ContactController::class, 'export'])->name('exportContact');
    Route::delete('/contact/delete_all', [ContactController::class, 'DestroyAll'])->name('deleteAll');
    Route::delete('/contact/delete/{id}', [ContactController::class, 'destroy'])->name('contactDeleteOne');
    Route::post('/contact/import', [ContactController::class, 'import'])->name('importContacts');
    Route::post('/contact', [ContactController::class, 'store'])->name('contact');
    Route::get('/contact/{contacts:tag_id}', [ContactController::class, 'index']);
    Route::get('/tags', [TagController::class, 'index'])->name('tag');
    Route::post('/tags', [TagController::class, 'store'])->name('tag.store');
    Route::delete('/tags', [TagController::class, 'destroy'])->name('tag.delete');
    Route::get('/tag/view/{id}', [TagController::class, 'view']);
    Route::post('fetch-groups', [TagController::class, 'fetchGroups'])->name('fetch.groups');
    Route::get('/campaign/create', [CampaignController::class, 'index'])->name('campaign.create');
    Route::get('/campaigns', [CampaignController::class, 'lists'])->name('campaign.lists');
    Route::get('/campaign/show/{id}', [CampaignController::class, 'show'])->name('campaign.show');
    Route::delete('/delete-all-campaigns', [CampaignController::class, 'destroyAll'])->name('campaigns.delete.all');
    Route::post('/blast', [BlastController::class, 'blastProccess'])->name('blast');
    Route::get('/blast/scheduled', [BlastController::class, 'scheduled'])->name('scheduledMessage');
    Route::get('/blast/text-message', [BlastController::class, 'getPageBlastText']);
    Route::get('/blast/image-message', [BlastController::class, 'getPageBlastImage']);
    Route::get('/blast/button-message', [BlastController::class, 'getPageBlastButton']);
    Route::get('/blast/template-message', [BlastController::class, 'getPageBlastTemplate']);
    Route::get('/blast/histories/{blast:campaign_id}', [BlastController::class, 'histories'])->name('blastHistories');
    Route::get('/message/test', [MessagesController::class, 'index'])->name('messagetest');
    Route::get('/message/test', [MessagesController::class, 'index'])->name('messagetest');
    Route::post('/message/test/text', [MessagesController::class, 'textMessageTest'])->name('textMessageTest');
    Route::post('/message/test/image', [MessagesController::class, 'imageMessageTest'])->name('imageMessageTest');
    Route::post('/message/test/button', [MessagesController::class, 'buttonMessageTest'])->name('buttonMessageTest');
    Route::post('/message/test/template', [MessagesController::class, 'templateMessageTest'])->name('templateMessageTest');
    Route::post('/message/test/list', [MessagesController::class, 'listMessageTest'])->name('listMessageTest');
    Route::get('/rest-api', RestapiController::class)->name('rest-api');
    Route::get('/user/change-password', [UserController::class, 'changePassword'])->name('user.changePassword');
    Route::post('/user/change-password', [UserController::class, 'changePasswordPost'])->name('changePassword');
    Route::post('/user/setting/apikey', [UserController::class, 'generateNewApiKey'])->name('generateNewApiKey');
    Route::post('/user/settings/chunk', [UserController::class, 'changeChunk'])->name('changeChunk');
    Route::get('/settings', [SettingController::class, 'index'])->name('settings');
    Route::post('/settings/server', [SettingController::class, 'setServer'])->name('setServer');
    Route::get('/schedule', [ScheduleMessageController::class, 'index'])->name('scheduleMessage');
    Route::get('/admin/manage-user', [AdminController::class, 'manageUser'])->name('admin.manageUser')->middleware('admin');
    Route::post('/admin/user/store', [AdminController::class, 'userStore'])->name('user.store')->middleware('admin');
    Route::delete('/admin/user/delete/{id}', [AdminController::class, 'userDelete'])->name('user.delete')->middleware('admin');
    Route::get('admin/user/edit', [AdminController::class, 'userEdit'])->name('user.edit')->middleware('admin');
    Route::post('admin/user/update', [AdminController::class, 'userUpdate'])->name('user.update')->middleware('admin');
    Route::post('/logout', LogoutController::class)->name('logout');
});
Route::middleware('installed.app', 'guest')->group(function () {
    Route::get('/login', [LoginController::class, 'index'])->name('login');
    Route::get('/register', [RegisterController::class, 'index'])->name('register');
    Route::post('/register', [RegisterController::class, 'store'])->name('register');
    Route::post('/login', [LoginController::class, 'store'])->name('login');
});
Route::get('/install', [SettingController::class, 'install'])->name('setting.install_app');
Route::post('/install', [SettingController::class, 'install'])->name('settings.install_app');
Route::post('/settings/check_database_connection', [SettingController::class, 'test_database_connection'])->name('connectDB');
Route::post('/settings/activate_license', [SettingController::class, 'activate_license'])->name('activateLicense');
?>
thanks men, great job. i will try and tell you it´s works.
 
  • Like
Reactions: average_coder

acsoft

Member
May 4, 2022
53
17
8
AdminController.php decode

replace in /app/Http/Controllers/AdminController.php

<?php
namespace App\Http\Controllers;


use App\Models\User;

use Illuminate\Http\Request;

use Illuminate\Support\Str;

class AdminController extends Controller
{

public function manageUser()
{
return view('pages.admin.manageusers',[
'users' => User::latest()->get()

]);

}

public function userStore(Request $request){
$request->validate([
'username' => 'required|unique:users',
'email' => 'required|unique:users',
'password' => 'required',
'limit_device' => 'required|numeric|max:10',
'active_subscription' => 'required|',

]);


if($request->active_subscription == 'active'){
$request->validate([
'subscription_expired' => 'required|date',
]);


// subscription expired must be greater than today
if($request->subscription_expired < date('Y-m-d')){
return redirect()->back()->with('alert' , ['type' => 'danger', 'msg' => 'Subscription expired must be greater than today']);

}
}

$user = new User();

$user->username = $request->username;

$user->email = $request->email;

$user->password = bcrypt($request->password);

$user->api_key = Str::random(32);

$user->chunk_blast = 0;

$user->limit_device = $request->limit_device;

$user->active_subscription = $request->active_subscription;

$user->subscription_expired = $request->subscription_expired ?? null;

$user->save();

return redirect()->back()->with('alert', ['type' => 'success', 'msg' => 'User created successfully']);




}

public function userEdit(){
$id = request()->id;

$user = User::find($id);

// return data user to ajax
return json_encode($user);

}
public function userUpdate(Request $request){

$request->validate([
'username' => 'required|unique:users,username,'.$request->id,
'email' => 'required|unique:users,email,'.$request->id,
'limit_device' => 'required|numeric|max:10',
'active_subscription' => 'required|',

]);

if($request->active_subscription == 'active'){
$request->validate([
'subscription_expired' => 'required|date',
]);


// subscription expired must be greater than today
if($request->subscription_expired < date('Y-m-d')){
return redirect()->back()->with('alert' , ['type' => 'danger', 'msg' => 'Subscription expired must be greater than today']);

}
}

if($request->password != ''){
$request->validate([
'password' => 'min:6',
]);

}
$user = User::find($request->id);

$user->username = $request->username;

$user->email = $request->email;

$user->password = $request->password != '' ? bcrypt($request->password) : $user->password;

$user->limit_device = $request->limit_device;

$user->active_subscription = $request->active_subscription;

$user->subscription_expired = $request->subscription_expired ?? null;

$user->save();

return redirect()->back()->with('alert', ['type' => 'success', 'msg' => 'User updated successfully']);

}

public function userDelete($id){
$user = User::find($id);

if($user->level == 'admin'){
return redirect()->back()->with('alert', ['type' => 'danger', 'msg' => 'You can not delete admin']);

}
// delete all data user
$user->numbers()->delete();

$user->autoreplies()->delete();

$user->contacts()->delete();

$user->tags()->delete();

$user->blasts()->delete();

$user->campaigns()->delete();


$user->delete();

return redirect()->back()->with('alert', ['type' => 'success', 'msg' => 'User deleted successfully']);

}
}
?>
 
  • Like
Reactions: average_coder

acsoft

Member
May 4, 2022
53
17
8
SettingController.php decode

replace in /app/Http/Controllers/SettingController.php


<?php
namespace App\Http\Controllers;
use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Config;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\File;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\Validator;
use Illuminate\Support\Str;

use mysqli;


class SettingController extends Controller
{

public function __construct()
{
$this->middleware('admin')->except('activate_license','install','test_database_connection');

}
public function index(){
return view('pages.admin.settings');

}

public function test_database_connection(Request $request)
{

$error_message = null;


$k = json_encode($request->database);

$data = json_decode($k);


try {

$db = mysqli_connect($data->host,$data->username,$data->password,$data->database);

if($db->connect_errno){
$error_message = 'Connection Failed .'. $db->connect_error;


}
} catch(\Throwable $th) {
$error_message = 'Connection failed';

}



return response()->json(['status' => $error_message ?? 'Success']);

}


public function setServer(Request $request){
if($request->typeServer === 'other'){
$request->validate([
'portnode' => ['required'],
'urlnode' => ['required','url']
]);

$urlnode = $request->urlnode .':'. $request->portnode;

} else if($request->typeServer === 'hosting') {
$urlnode = url('/');

} else if($request->typeServer === 'localhost'){
$urlnode = 'http://localhost:'.$request->portnode ;

}
$this->setEnv('TYPE_SERVER',$request->typeServer);

$this->setEnv('PORT_NODE',$request->portnode);

$this->setEnv('WA_URL_SERVER',$urlnode);


return back()->with('alert',[
'type' => 'success',
'msg' => 'Success Update configuration!'
]);





}


public function activate_license(Request $request){

try {
$push = Http::withOptions(['verify' => false])->asForm()->post('https://license-management.m-pedia.my.id/api/license/activate',[
'email' => $request->email,
'host' => $_SERVER['HTTP_HOST'],
'licensekey' => $request->license
]);

$res = json_decode($push);

return $res;


} catch(\Throwable $th) {
return 'false';

}
}





public function setEnv(string $key,string $value){

$env = array_reduce(file(base_path('.env'), FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES),
function($carry, $item)
{
list($key, $val) = explode('=', $item, 2);


$carry[$key] = $val;


return $carry;

}, []);

$env[$key] = $value;

foreach($env as $k => &$v)
$v = "{$k}={$v}";



file_put_contents(base_path('.env'),implode("\r\n",$env));

}






public function install(Request $request){
if(env('APP_INSTALLED')=== true){
return redirect('/');

}
if($request->method() === 'POST')
{
$request->validate([
'database.*' => 'string|required',
//'licensekey' => 'required',
//'buyeremail' =>'required|email',
'admin.username' => 'required',
'admin.email' => 'required|email',
'admin.password' => 'required|max:255',
]);


/** CREATE DATABASE CONNECTION STARTS **/
$db_params = $request->input('database');

Config::set("database.connections.mysql", array_merge(config('database.connections.mysql'), $db_params));

try
{
DB::connection()->getPdo();

}
catch(\Exception $e)
{

$validator = Validator::make($request->all(), [])
->errors()->add('Database', $e->getMessage());


return redirect()->back()->withErrors($validator)->withInput();

}
/** CREATE DATABASE CONNECTION ENDS **/


/** CREATE DATABASE TABLES STARTS **/
try {
DB::transaction(function() {

DB::unprepared(File::get(base_path('database/db_tables.sql')));

});

} catch(\Throwable $th) {

}

/** CREATE DATABASE TABLES ENDS **/
/** SETTING .ENV VARS STARTS **/
$env = array_reduce(file(base_path('.env'), FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES),
function($carry, $item)
{
list($key, $val) = explode('=', $item, 2);


$carry[$key] = $val;


return $carry;

}, []);


if(isset($_SERVER['REQUEST_SCHEME'])){
$urll = "{$_SERVER['REQUEST_SCHEME']}://{$_SERVER['HTTP_HOST']}";

} else {
$urll = $_SERVER['HTTP_HOST'];

}
$env['DB_HOST'] = $db_params['host'];

$env['DB_DATABASE'] = $db_params['database'];

$env['DB_USERNAME'] = $db_params['username'];

$env['DB_PASSWORD'] = $db_params['password'];

$env['APP_URL'] = $urll;

$env['APP_INSTALLED'] = 'true';

$env['LICENSE_KEY'] = $request->input('licensekey');

$env['BUYER_EMAIL'] = $request->input('buyeremail');


foreach($env as $k => &$v)
$v = "{$k}={$v}";


file_put_contents(base_path('.env'), implode("\r\n", $env));

/** SETTING .ENV VARS ENDS **/


/** CREATE ADMIN USER STARTS **/
if(!$user = User::where('email', $request->input('admin.email'))->first())
{
$user = new User;


$user->username = $request->input('admin.username');

$user->email = $request->input('admin.email');

$user->password = Hash::make($request->input('admin.password'));

$user->email_verified_at = date('Y-m-d');

$user->level = 'admin';

$user->active_subscription = 'lifetime';




$user->save();

}
/** CREATE ADMIN USER END **/
Auth::loginUsingId($user->id,true);

return redirect()->route('home');

}
$mysql_user_version = ['distrib' => '', 'version' => null, 'compatible' => false];


if(function_exists('exec') || function_exists('shell_exec'))
{
$mysqldump_v = function_exists('exec') ? exec('mysqldump --version') : shell_exec('mysqldump --version');


if($mysqld = str_extract($mysqldump_v, '/Distrib(?P<destrib>.+),/i'))
{
$destrib = $mysqld['destrib'] ?? null;


$mysqld = explode('-', mb_strtolower($destrib), 2);


$mysql_user_version['distrib'] = $mysqld[1] ?? 'mysql';

$mysql_user_version['version'] = $mysqld[0];


if($mysql_user_version['distrib'] == 'mysql' && $mysql_user_version['version'] >= 5.6)
{
$mysql_user_version['compatible'] = true;

}
elseif($mysql_user_version['distrib'] == 'mariadb' && $mysql_user_version['version'] >= 10)
{
$mysql_user_version['compatible'] = true;

}
}
}

$requirements = [
"php" => ["version" => 7.4, "current" => phpversion()],
"mysql" => ["version" => 5.6, "current" => $mysql_user_version],
"php_extensions" => [
"curl" => false,
"fileinfo" => false,
"intl" => false,
"json" => false,
"mbstring" => false,
"openssl" => false,
"mysqli" => false,
"zip" => false,
"ctype" => false,
"dom" => false,
],
];


$php_loaded_extensions = get_loaded_extensions();



foreach($requirements['php_extensions'] as $name => &$enabled)
{
$enabled = in_array($name, $php_loaded_extensions);

}
return view('install',[
'requirements' => $requirements
]);

}

}
 
  • Like
Reactions: average_coder

Morehere

Well-known member
Null Master
Trusted Uploader
Jan 13, 2020
965
959
93
SettingController.php decode

replace in /app/Http/Controllers/SettingController.php


<?php
namespace App\Http\Controllers;
use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Config;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\File;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\Validator;
use Illuminate\Support\Str;

use mysqli;


class SettingController extends Controller
{

public function __construct()
{
$this->middleware('admin')->except('activate_license','install','test_database_connection');

}
public function index(){
return view('pages.admin.settings');

}

public function test_database_connection(Request $request)
{

$error_message = null;


$k = json_encode($request->database);

$data = json_decode($k);


try {

$db = mysqli_connect($data->host,$data->username,$data->password,$data->database);

if($db->connect_errno){
$error_message = 'Connection Failed .'. $db->connect_error;


}
} catch(\Throwable $th) {
$error_message = 'Connection failed';

}



return response()->json(['status' => $error_message ?? 'Success']);

}


public function setServer(Request $request){
if($request->typeServer === 'other'){
$request->validate([
'portnode' => ['required'],
'urlnode' => ['required','url']
]);

$urlnode = $request->urlnode .':'. $request->portnode;

} else if($request->typeServer === 'hosting') {
$urlnode = url('/');

} else if($request->typeServer === 'localhost'){
$urlnode = 'http://localhost:'.$request->portnode ;

}
$this->setEnv('TYPE_SERVER',$request->typeServer);

$this->setEnv('PORT_NODE',$request->portnode);

$this->setEnv('WA_URL_SERVER',$urlnode);


return back()->with('alert',[
'type' => 'success',
'msg' => 'Success Update configuration!'
]);





}


public function activate_license(Request $request){

try {
$push = Http::withOptions(['verify' => false])->asForm()->post('https://license-management.m-pedia.my.id/api/license/activate',[
'email' => $request->email,
'host' => $_SERVER['HTTP_HOST'],
'licensekey' => $request->license
]);

$res = json_decode($push);

return $res;


} catch(\Throwable $th) {
return 'false';

}
}





public function setEnv(string $key,string $value){

$env = array_reduce(file(base_path('.env'), FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES),
function($carry, $item)
{
list($key, $val) = explode('=', $item, 2);


$carry[$key] = $val;


return $carry;

}, []);

$env[$key] = $value;

foreach($env as $k => &$v)
$v = "{$k}={$v}";



file_put_contents(base_path('.env'),implode("\r\n",$env));

}






public function install(Request $request){
if(env('APP_INSTALLED')=== true){
return redirect('/');

}
if($request->method() === 'POST')
{
$request->validate([
'database.*' => 'string|required',
//'licensekey' => 'required',
//'buyeremail' =>'required|email',
'admin.username' => 'required',
'admin.email' => 'required|email',
'admin.password' => 'required|max:255',
]);


/** CREATE DATABASE CONNECTION STARTS **/
$db_params = $request->input('database');

Config::set("database.connections.mysql", array_merge(config('database.connections.mysql'), $db_params));

try
{
DB::connection()->getPdo();

}
catch(\Exception $e)
{

$validator = Validator::make($request->all(), [])
->errors()->add('Database', $e->getMessage());


return redirect()->back()->withErrors($validator)->withInput();

}
/** CREATE DATABASE CONNECTION ENDS **/


/** CREATE DATABASE TABLES STARTS **/
try {
DB::transaction(function() {

DB::unprepared(File::get(base_path('database/db_tables.sql')));

});

} catch(\Throwable $th) {

}

/** CREATE DATABASE TABLES ENDS **/
/** SETTING .ENV VARS STARTS **/
$env = array_reduce(file(base_path('.env'), FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES),
function($carry, $item)
{
list($key, $val) = explode('=', $item, 2);


$carry[$key] = $val;


return $carry;

}, []);


if(isset($_SERVER['REQUEST_SCHEME'])){
$urll = "{$_SERVER['REQUEST_SCHEME']}://{$_SERVER['HTTP_HOST']}";

} else {
$urll = $_SERVER['HTTP_HOST'];

}
$env['DB_HOST'] = $db_params['host'];

$env['DB_DATABASE'] = $db_params['database'];

$env['DB_USERNAME'] = $db_params['username'];

$env['DB_PASSWORD'] = $db_params['password'];

$env['APP_URL'] = $urll;

$env['APP_INSTALLED'] = 'true';

$env['LICENSE_KEY'] = $request->input('licensekey');

$env['BUYER_EMAIL'] = $request->input('buyeremail');


foreach($env as $k => &$v)
$v = "{$k}={$v}";


file_put_contents(base_path('.env'), implode("\r\n", $env));

/** SETTING .ENV VARS ENDS **/


/** CREATE ADMIN USER STARTS **/
if(!$user = User::where('email', $request->input('admin.email'))->first())
{
$user = new User;


$user->username = $request->input('admin.username');

$user->email = $request->input('admin.email');

$user->password = Hash::make($request->input('admin.password'));

$user->email_verified_at = date('Y-m-d');

$user->level = 'admin';

$user->active_subscription = 'lifetime';




$user->save();

}
/** CREATE ADMIN USER END **/
Auth::loginUsingId($user->id,true);

return redirect()->route('home');

}
$mysql_user_version = ['distrib' => '', 'version' => null, 'compatible' => false];


if(function_exists('exec') || function_exists('shell_exec'))
{
$mysqldump_v = function_exists('exec') ? exec('mysqldump --version') : shell_exec('mysqldump --version');


if($mysqld = str_extract($mysqldump_v, '/Distrib(?P<destrib>.+),/i'))
{
$destrib = $mysqld['destrib'] ?? null;


$mysqld = explode('-', mb_strtolower($destrib), 2);


$mysql_user_version['distrib'] = $mysqld[1] ?? 'mysql';

$mysql_user_version['version'] = $mysqld[0];


if($mysql_user_version['distrib'] == 'mysql' && $mysql_user_version['version'] >= 5.6)
{
$mysql_user_version['compatible'] = true;

}
elseif($mysql_user_version['distrib'] == 'mariadb' && $mysql_user_version['version'] >= 10)
{
$mysql_user_version['compatible'] = true;

}
}
}

$requirements = [
"php" => ["version" => 7.4, "current" => phpversion()],
"mysql" => ["version" => 5.6, "current" => $mysql_user_version],
"php_extensions" => [
"curl" => false,
"fileinfo" => false,
"intl" => false,
"json" => false,
"mbstring" => false,
"openssl" => false,
"mysqli" => false,
"zip" => false,
"ctype" => false,
"dom" => false,
],
];


$php_loaded_extensions = get_loaded_extensions();



foreach($requirements['php_extensions'] as $name => &$enabled)
{
$enabled = in_array($name, $php_loaded_extensions);

}
return view('install',[
'requirements' => $requirements
]);

}

}
How did you do decode it? Let's everyone know it.
 
  • Like
Reactions: sundar50000

Forum statistics

Threads
69,228
Messages
908,456
Members
237,092
Latest member
Azakami

About us

  • Our community has been around for many years and pride ourselves on offering unbiased, critical discussion among people of all different backgrounds. We are working every day to make sure our community is one of the best.

Quick Navigation

User Menu