Files
kulakpos_web/app/Http/Controllers/Admin/SystemSettingController.php

166 lines
5.4 KiB
PHP

<?php
namespace App\Http\Controllers\Admin;
use Illuminate\Support\Str;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\File;
use Illuminate\Support\Facades\Artisan;
class SystemSettingController extends Controller
{
public function __construct()
{
$this->middleware('permission:settings-read')->only('index');
$this->middleware('permission:settings-update')->only('update');
}
public function index()
{
return view('admin.settings.system');
}
public function store(Request $request)
{
$request->validate([
'SESSION_LIFETIME' => 'required|integer',
'service_account_credentials' => 'mimes:json,txt|max:100',
]);
if ($request->hasFile('service_account_credentials')) {
$file = $request->file('service_account_credentials');
$name = 'service-account-credentials.json';
$path = 'uploads/';
$file->move($path, $name);
}
$APP_NAME = '"' . $request->APP_NAME . '"';
$txt = "APP_NAME=" . $APP_NAME . "
APP_ENV=local
APP_KEY=" . env('APP_KEY') . "
APP_DEBUG=" . $request->APP_DEBUG . "
APP_URL=" . url('/') . "
SITE_KEY=" . env('SITE_KEY') . "
AUTHORIZED_KEY=" . env('AUTHORIZED_KEY') . "
CONTENT_EDITOR=" . $request->CONTENT_EDITOR . "
ANALYTICS_VIEW_ID=" . $request->ANALYTICS_VIEW_ID . "
GA_MEASUREMENT_ID=" . $request->GA_MEASUREMENT_ID . "
FORCE_USER_TO_PURCHASE_PLAN=" . $request->FORCE_USER_TO_PURCHASE_PLAN . "
UNSUBSCRIBE_AFTER_DAYS=" . $request->UNSUBSCRIBE_AFTER_DAYS . "
DB_CONNECTION=" . env("DB_CONNECTION") . "
DB_HOST=" . env("DB_HOST") . "
DB_PORT=" . env("DB_PORT") . "
DB_DATABASE=" . env("DB_DATABASE") . "
DB_USERNAME=" . env("DB_USERNAME") . "
DB_PASSWORD=" . env("DB_PASSWORD") . "
QUEUE_MAIL=" . $request->QUEUE_MAIL . "
" . $request->MAIL_DRIVER_TYPE . "=" . $request->MAIL_DRIVER . "
MAIL_DRIVER_TYPE=" . $request->MAIL_DRIVER_TYPE . "
MAIL_HOST=" . $request->MAIL_HOST . "
MAIL_PORT=" . $request->MAIL_PORT . "
MAIL_USERNAME=" . $request->MAIL_USERNAME . "
MAIL_PASSWORD=" . $request->MAIL_PASSWORD . "
MAIL_ENCRYPTION=" . $request->MAIL_ENCRYPTION . "
MAIL_FROM_ADDRESS=" . $request->MAIL_FROM_ADDRESS . "
MAIL_TO=" . $request->MAIL_TO . "
MAIL_FROM_NAME='" . $request->MAIL_FROM_NAME . "'
MAILCHIMP_DRIVER=" . $request->MAILCHIMP_DRIVER . "
MAILCHIMP_APIKEY=" . $request->MAILCHIMP_APIKEY . "
MAILCHIMP_LIST_ID=" . $request->MAILCHIMP_LIST_ID . "
NOCAPTCHA_SECRET=" . $request->NOCAPTCHA_SECRET . "
NOCAPTCHA_SITEKEY=" . $request->NOCAPTCHA_SITEKEY . "
BROADCAST_DRIVER=pusher
CACHE_DRIVER=" . $request->CACHE_DRIVER . "
QUEUE_CONNECTION=database
SESSION_DRIVER=" . $request->SESSION_DRIVER . "
SESSION_LIFETIME=" . $request->SESSION_LIFETIME . "
PUSHER_APP_ID=" . $request->PUSHER_APP_ID . "
PUSHER_APP_KEY=" . $request->PUSHER_APP_KEY . "
PUSHER_APP_SECRET=" . $request->PUSHER_APP_SECRET . "
PUSHER_APP_CLUSTER=" . $request->PUSHER_APP_CLUSTER . "
PUSHER_SCHEME=https
MIX_PUSHER_APP_KEY=" . '${PUSHER_APP_KEY}' . "
MIX_PUSHER_APP_CLUSTER=" . '${PUSHER_APP_CLUSTER}' . "
REDIS_HOST=" . $request->REDIS_HOST . "
REDIS_PORT=" . $request->REDIS_PORT . "
REDIS_URL=" . $request->REDIS_URL . "
REDIS_PASSWORD=" . $request->REDIS_PASSWORD . "
MEMCACHED_HOST=" . $request->MEMCACHED_HOST . "
MEMCACHED_PORT=" . $request->MEMCACHED_PORT . "
MEMCACHED_PERSISTENT_ID=" . $request->MEMCACHED_PERSISTENT_ID . "
MEMCACHED_USERNAME=" . $request->MEMCACHED_USERNAME . "
MEMCACHED_PASSWORD=" . $request->MEMCACHED_PASSWORD . "
AWS_ACCESS_KEY_ID=" . $request->AWS_ACCESS_KEY_ID . "
AWS_SECRET_ACCESS_KEY=" . $request->AWS_SECRET_ACCESS_KEY . "
AWS_DEFAULT_REGION=" . $request->AWS_DEFAULT_REGION . "
AWS_BUCKET=" . $request->AWS_BUCKET . "
WAS_ACCESS_KEY_ID=" . $request->WAS_ACCESS_KEY_ID . "
WAS_SECRET_ACCESS_KEY=" . $request->WAS_SECRET_ACCESS_KEY . "
WAS_DEFAULT_REGION=" . $request->WAS_DEFAULT_REGION . "
WAS_BUCKET=" . $request->WAS_BUCKET . "
WAS_ENDPOINT=" . $request->WAS_ENDPOINT . "
DISCUSS_COMMENT_KEY=" . $request->DISCUSS_COMMENT_KEY . "
LOG_CHANNEL=stack
LOG_LEVEL=debug
CACHE_LIFETIME=" . $request->CACHE_LIFETIME . "
TIMEZONE=" . $request->TIMEZONE . "
DEFAULT_LANG=" . $request->DEFAULT_LANG . "
DISCUSS_COMMENT_KEY=" . $request->DISCUSS_COMMENT_KEY . "
FILESYSTEM_DISK=" . $request->FILESYSTEM_DISK . "
VITE_PUSHER_APP_KEY=" . '${PUSHER_APP_KEY}' . "
VITE_PUSHER_HOST=" . '${PUSHER_HOST}' . "
VITE_PUSHER_PORT=" . '${PUSHER_PORT}' . "
VITE_PUSHER_SCHEME=" . '${PUSHER_SCHEME}' . "
VITE_PUSHER_APP_CLUSTER=" . '${PUSHER_APP_CLUSTER}' . "
APILAYER_API_KEY=" . $request->APILAYER_API_KEY . "
GOOGLE_CLIENT_ID=" . $request->GOOGLE_CLIENT_ID . "
GOOGLE_CLIENT_SECRET=" . $request->GOOGLE_CLIENT_SECRET . "
GOOGLE_REDIRECT_URI=" . url('login/google/callback') . "
TWITTER_CLIENT_ID=" . $request->TWITTER_CLIENT_ID . "
TWITTER_CLIENT_SECRET=" . $request->TWITTER_CLIENT_SECRET . "
TWITTER_REDIRECT_URI=" . url('login/twitter/callback') . "
WKHTMLTOPDF_BINARY=" . $request->WKHTMLTOPDF_BINARY . "
WKHTMLTOIMAGE_BINARY=" . $request->WKHTMLTOIMAGE_BINARY . "
WKHTMLTOPDF_TIMEOUT=" . $request->WKHTMLTOPDF_TIMEOUT . "
";
File::put(base_path('.env'), $txt);
Artisan::call('config:clear');
Artisan::call('cache:clear');
return response()->json([
'message' => __('Settings updated successfully.'),
'redirect' => route('admin.system-settings.index'),
]);
}
}