Viewing file: SettingsController.php (14.44 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
namespace App\Http\Controllers\Admin;
use App\Events\DeleteSmsData; use App\Events\SendMail; use App\Http\Controllers\Controller; use App\Listeners\ProcessDeleteData; use App\Models\BecameReseller; use App\Models\Customer; use App\Models\DbBackup; use App\Models\EmailTemplate; use App\Models\Expense; use App\Models\Message; use App\Models\MessageLog; use App\Models\Number; use App\Models\Settings; use App\Models\SmsQueue; use Illuminate\Http\Request; use Illuminate\Support\Facades\Config; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Mail; use Illuminate\Support\Facades\Response;
class SettingsController extends Controller { public function index() { $sendingSetting = json_decode(get_settings('sending_setting')); $data['offdays'] = isset($sendingSetting) && isset($sendingSetting->offdays) ? json_decode($sendingSetting->offdays) : []; $data['admin'] = auth()->user(); return view('admin.settings.index', $data); }
public function otpSettins(){ return view('admin.settings.otp_settings'); }
public function profile_update(Request $request) { if (env("APP_DEMO")){ return redirect()->back()->withErrors(['msg' => trans('admin.app_demo_message')]); } $request->validate([ 'u_name' => 'required', 'email' => 'required|unique:users,email,' . auth()->id(), 'profile' => 'image', ]); $pre_email = auth()->user()->email; $new_email = $request->email; $user = auth()->user(); if ($pre_email != $new_email) { $user->email_verified_at = null;
//TODO::send email here to verify email address } $user->name = $request->u_name; $user->email = $new_email; if ($request->password) $user->password = bcrypt($request->password);
if ($request->hasFile('profile')) { $file = $request->file('profile'); $imageName = time() . '.' . $file->getClientOriginalExtension(); $file->move(public_path('/uploads'), $imageName); $user->profile_picture = $imageName; }
$user->save(); cache()->flush(); return redirect()->back()->with('success', 'Profile successfully updated'); }
public function app_update(Request $request) { if (env("APP_DEMO")){ return redirect()->back()->withErrors(['msg' => trans('admin.app_demo_message')]); } $request->validate([ 'app_name' => 'required', 'logo'=>'image', 'favicon'=>'image', ]);
//TODO:: in future update the settings dynamically
//update application name $data = ['name' => 'app_name']; $setting = auth()->user()->settings()->firstOrNew($data); $setting->value = $request->app_name; $setting->save();
$data = ['name' => 'crisp_token']; $setting = auth()->user()->settings()->firstOrNew($data); $setting->value = $request->crisp_token; $setting->save();
$data = ['name' => 'recaptcha_site_key']; $setting = auth()->user()->settings()->firstOrNew($data); $setting->value = $request->recaptcha_site_key; $setting->save();
$data = ['name' => 'registration_status']; $setting = auth()->user()->settings()->firstOrNew($data); $setting->value = $request->registration_status; $setting->save();
$data = ['name' => 'footer_content']; $setting = auth()->user()->settings()->firstOrNew($data); $setting->value = $request->footer_content; $setting->save(); $data = ['name' => 'terms_condition']; $setting = auth()->user()->settings()->firstOrNew($data); $setting->value = $request->terms_condition; $setting->save();
$data = ['name' => 'privacy_policy']; $setting = auth()->user()->settings()->firstOrNew($data); $setting->value = $request->privacy_policy; $setting->save();
$data=['name'=>'contact_info']; $requestData=$request->only('phone_number','email_address','address'); $setting = auth()->user()->settings()->firstOrNew($data); $setting->value = json_encode($requestData); $setting->save();
$data = ['name' => 'notice_status']; $setting = auth()->user()->settings()->firstOrNew($data); $setting->value = $request->notice_status; $setting->save();
$data = ['name' => 'maintence_mode']; $setting = auth()->user()->settings()->firstOrNew($data); $setting->value = $request->maintence_mode; $setting->save();
if ($request->reseller_status=='disable'){ $findSeller=Customer::whereIn('type', ['reseller', 'master_reseller'])->count(); if ($findSeller && $findSeller > 0){ return redirect()->back()->withErrors(['failed'=>'You can not disable seller status at this moment']); } } if (!$request->reseller_status){ $request['reseller_status']='enable'; } $data = ['name' => 'reseller_status']; $setting = auth()->user()->settings()->firstOrNew($data); $setting->value = $request->reseller_status; $setting->save();
$data = ['name' => 'recaptcha_key']; $setting = auth()->user()->settings()->firstOrNew($data); $setting->value = json_encode($request->only('recaptcha_secret_key', 'recaptcha_site_key')); $setting->save();
//update favicon if ($request->hasFile('favicon')) {
$file = $request->file('favicon'); $favicon_name = time() . '.' . $file->getClientOriginalExtension(); $file->move(public_path('/uploads'), $favicon_name);
$data = ['name' => 'app_favicon']; $setting = auth()->user()->settings()->firstOrNew($data); $setting->value = $favicon_name; $setting->save(); }
//update logo if ($request->hasFile('logo')) { $file = $request->file('logo'); $logo_name = time() . '.' . $file->getClientOriginalExtension(); $file->move(public_path('/uploads'), $logo_name);
$data = ['name' => 'app_logo']; $setting = auth()->user()->settings()->firstOrNew($data); $setting->value = $logo_name; $setting->save(); } cache()->flush(); return redirect()->back()->with('success', 'Application successfully updated'); }
public function sending_setting(Request $request){ if (env("APP_DEMO")){ return redirect()->back()->withErrors(['msg' => trans('admin.app_demo_message')]); } $data=['name'=>'daily_send_limit']; $sendData=$request->only('send_limit'); $setting = auth()->user()->settings()->firstOrNew($data); $setting->value = json_encode($sendData); $setting->save();
$sendLimit=['name'=>'minute_send_limit']; $sendLimitData=$request->only('message_limit','minute_limit'); $setting = auth()->user()->settings()->firstOrNew($sendLimit); $setting->value = json_encode($sendLimitData); $setting->save();
$days=[]; if($request->offday){ foreach ($request->offday as $key=>$day){ $days[]= strtolower($day); } }
$request['offdays']= json_encode($days); $sendingSetting=['name'=>'sending_setting']; $sendingSettingData=$request->only('start_time','end_time','offdays'); $setting = auth()->user()->settings()->firstOrNew($sendingSetting); $setting->value = json_encode($sendingSettingData); $setting->save();
cache()->flush(); return redirect()->back()->with('success', 'Sending setting successfully updated'); } public function smtp_update(Request $request) { if (env("APP_DEMO")){ return redirect()->back()->withErrors(['msg' => trans('admin.app_demo_message')]); } $request->validate([ 'from'=>'required|email', 'host'=>'required', 'name'=>'required', 'username'=>'required', 'password'=>'required', 'port'=>'required|numeric', 'encryption'=>'required|in:ssl,tls', ]); unset($request['_token']);
$from = "Picotech Support <demo@picotech.app>"; $to = "Picotech Support <demo@picotech.app>"; $subject = "Hi!"; $body = "Hi,\n\nHow are you?";
$host = $request->host; $port = $request->port; $username = $request->username; $password = $request->password; $config = array( 'driver' => 'smtp', 'host' => $host, 'port' => $port, 'from' => array('address' => $request->from, 'name' => $request->name), 'encryption' => $request->encryption, 'username' => $username, 'password' => $password, ); Config::set('mail', $config);
try { Mail::send('sendMail', ['htmlData' => $body], function ($message) { $message->to("tuhin.picotech@gmail.com")->subject ("Setting check from picosms"); }); } catch (\Exception $ex) { return redirect()->back()->withErrors(['msg' => trans('Invalid email credentials')]); }
foreach ($request->all() as $key => $req) { $data = ['name' => 'mail_' . $key]; $setting = auth()->user()->settings()->firstOrNew($data); $setting->value = $request->$key; $setting->save(); } //we need to flush the cache as settings are from cache cache()->flush();
return back()->with('success', 'SMTP configuration successfully updated'); }
public function seo_update(Request $request){ $request->validate([ 'meta_title' => 'required', 'meta_description' => 'required', 'meta_keywords' => 'required' ]); $data = ['name' => 'seo_section']; $setting = auth()->user()->settings()->firstOrNew($data); $setting->value = json_encode($request->only('meta_title','meta_description','meta_keywords')); $setting->save(); cache()->flush(); return redirect()->back()->with('success','SEO Section successfully update'); }
public function templateStore(Request $request) { if (env("APP_DEMO")){ return redirect()->back()->withErrors(['msg' => trans('admin.app_demo_message')]); } $request->validate([ 'subject' => 'required', 'body' => 'required' ]); $user = auth()->user(); $emailTemplate = isset($request->emailTemplateID) ? EmailTemplate::find($request->emailTemplateID) : new EmailTemplate();
$emailTemplate->type = $request->type; $emailTemplate->user_id = $user->id; $emailTemplate->subject = $request->subject; $emailTemplate->body = $request->body; $emailTemplate->added_by = 'admin'; $emailTemplate->status = 'active';
$emailTemplate->save(); cache()->forget('e_template_'.auth()->user()->id); cache()->flush(); return redirect()->back()->with('success', trans('customer.message.message.setting_update')); }
public function local_settings(Request $request) { if (env("APP_DEMO")){ return redirect()->back()->withErrors(['msg' => trans('admin.app_demo_message')]); } $request->validate([ 'language' => 'required', 'date_time_format' => 'required', 'date_time_separator' => 'required', 'timezone' => 'required', 'decimal_format' => 'required', 'currency_symbol' => 'required', 'currency_symbol_position' => 'required', 'thousand_separator' => 'required', 'decimals' => 'required', 'direction' => 'in:rtl,ltr'
]);
$availableLang = get_available_languages(); $type = $request->language;
if (!in_array($type, $availableLang)){ abort('404'); }
session()->put('locale', $type); app()->setLocale($type);
$localSetting = $request->only('thousand_separator', 'decimals', 'language', 'date_time_format', 'date_time_separator', 'timezone', 'decimal_format', 'currency_symbol', 'currency_code', 'currency_symbol_position', 'direction'); $data = ['name' => 'local_setting']; $setting = auth()->user()->settings()->firstOrNew($data); $setting->value = json_encode($localSetting); $setting->save(); cache()->flush();
return redirect()->back()->with('success', trans('customer.message.local_setting_updated')); }
public function cacheSettings(Request $request){
$request->validate([ 'to'=>'required', 'from'=>'required' ]);
DB::beginTransaction(); try { $ids = Message::whereBetween('created_at', [$request->from, $request->to])->pluck('id');
foreach ($ids->chunk(4000) as $id){ DeleteSmsData::dispatch($id); }
DB::commit(); return redirect()->route('admin.settings.index')->with('success',trans('customer.message.log_delete'));
} catch (\Exception $ex) { DB::rollBack(); return redirect()->back()->withErrors(['failed'=>$ex->getMessage()]); }
} public function dbBackupList(){ $data['files']=DbBackup::orderByDesc('created_at')->get(); return view('admin.settings.db_backuplist', $data); }
public function downloadDbBackup(Request $request){ $backup=DbBackup::where('id', $request->id)->firstOrFail(); $filepath = storage_path().'/app/backup/' .$backup->file_name;
if(\File::exists($filepath)){ return Response::download($filepath); } else { abort('404'); } } public function header_title(Request $request){ $request->validate([ 'header_title' => 'required', ]); $data = ['name' => $request->name]; $setting = auth()->user()->settings()->firstOrNew($data); $setting->value = $request->header_title; $setting->save(); cache()->flush(); return redirect()->back()->with('success', 'Profile successfully updated'); } }
|