shell bypass 403
<?php
namespace Modules\NotificationSetup\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Routing\Controller;
use Brian2694\Toastr\Facades\Toastr;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Config;
use Modules\RolePermission\Entities\Role;
use Illuminate\Contracts\Support\Renderable;
use Modules\SystemSetting\Entities\EmailTemplate;
use Modules\NotificationSetup\Entities\RoleEmailTemplate;
use Modules\NotificationSetup\Entities\UserNotificationSetup;
class NotificationSetupController extends Controller
{
public function index()
{
$templates = RoleEmailTemplate::where('role_id', Auth::user()->role_id)->where('status', 1)->with('template')->get();
$user_notification_setup = UserNotificationSetup::where('user_id', Auth::user()->id)->first();
if ($user_notification_setup) {
$email_ids = explode(',', $user_notification_setup->email_ids);
$browser_ids = explode(',', $user_notification_setup->browser_ids);
$mobile_ids = explode(',', $user_notification_setup->mobile_ids);
} else {
$email_ids = [];
$browser_ids = [];
$mobile_ids = [];
}
return view('notificationsetup::index', compact('templates', 'user_notification_setup', 'email_ids', 'browser_ids', 'mobile_ids'));
}
public function UserNotificationControll()
{
$allTemplate = RoleEmailTemplate::with('template')->groupBy('template_act', 'role_id')->get();
$templatesId = array_column($allTemplate->toArray(), 'id');
RoleEmailTemplate::whereNotIn('id', $templatesId)->delete();
$instructor_temps = $allTemplate->where('role_id', 2);
$students_temps = $allTemplate->where('role_id', 3);
$staffs_temps = $allTemplate->where('role_id', 4);
$roles = Role::get();
return view('notificationsetup::users_setup', compact('instructor_temps', 'students_temps', 'staffs_temps', 'roles'));
}
public function UpdateUserNotificationControll(Request $request)
{
try {
$temp_setup = RoleEmailTemplate::where('role_id', $request->role_id)->update(['status' => 0]);
if ($request->status != null) {
$temp_setup = RoleEmailTemplate::whereIn('id', array_keys($request->status))->update(['status' => 1]);
}
Toastr::success('Setup Updated Successfully', 'Success');
return redirect()->back();
} catch (\Throwable $th) {
Toastr::error(trans('common.Operation failed'), trans('common.Failed'));
return redirect()->back();
}
}
public function setup(Request $request)
{
// return gettype(array_keys($request->email));
if (demoCheck()) {
return redirect()->back();
}
try {
if ($request->email == null) {
$email_ids = [];
} else {
$email_ids = array_keys($request->email);
}
if ($request->browser == null) {
$browser_ids = [];
} else {
$browser_ids = array_keys($request->browser);
}
if ($request->mobile == null) {
$mobile_ids = [];
} else {
$mobile_ids = array_keys($request->mobile);
}
$user_notification_setup = UserNotificationSetup::where('user_id', Auth::user()->id)->first();
if (!$user_notification_setup) {
$user_notification_setup = new UserNotificationSetup();
$user_notification_setup->user_id = Auth::user()->id;
}
$user_notification_setup->email_ids = implode(',', $email_ids);
$user_notification_setup->browser_ids = implode(',', $browser_ids);
$user_notification_setup->mobile_ids = implode(',', $mobile_ids);
$user_notification_setup->save();
Toastr::success(trans('common.Operation successful'), trans('common.Success'));
return redirect()->back();
} catch (\Throwable $th) {
Toastr::error(trans('common.Operation failed'), trans('common.Failed'));
return redirect()->back();
}
}
public function MyNotification()
{
try {
return view('notificationsetup::notification_list');
} catch (\Exception $e) {
Toastr::error(trans('common.Operation failed'), trans('common.Failed'));
return redirect()->back();
}
}
public function UpdateBrowserMsg(Request $request)
{
$request->validate([
'id' => "required",
'browser_message' => "required"
]);
try {
$template = EmailTemplate::find($request->id);
$template->browser_message = $request->browser_message;
$template->save();
Toastr::success(trans('common.Operation successful'), trans('common.Success'));
return redirect()->back();
} catch (\Exception $e) {
Toastr::error(trans('common.Operation failed'), trans('common.Failed'));
return redirect()->back();
}
}
}