Google2Fa ready to upload

This commit is contained in:
Kevin Adametz 2021-11-09 18:38:44 +01:00
parent e3495be8b8
commit 73e38a006e
127 changed files with 2637 additions and 589 deletions

View file

@ -22,7 +22,7 @@ class ReportController extends Controller
{
public function __construct()
{
$this->middleware('superadmin');
$this->middleware(['superadmin', '2fa']);
}
public function bookings()

View file

@ -4,15 +4,16 @@ namespace App\Http\Controllers;
use App\Mail\MailVerifyContact;
use App\Models\Account;
use App\Repositories\UserRepository;
use App\Services\HTMLHelper;
use App\User;
use Illuminate\Support\Facades\Mail;
use Request;
use App\User;
use Validator;
use DataTables;
use App\Models\Account;
use App\Services\HTMLHelper;
use App\Services\MyGoogle2FA;
use App\Mail\MailVerifyContact;
use App\Repositories\UserRepository;
use Illuminate\Support\Facades\Mail;
class AdminUserController extends Controller
{
@ -20,9 +21,8 @@ class AdminUserController extends Controller
public function __construct(UserRepository $userRepo)
{
$this->middleware('superadmin');
$this->middleware(['superadmin', '2fa']);
$this->userRepo = $userRepo;
}
/**
@ -34,6 +34,12 @@ class AdminUserController extends Controller
//'values' => User::where('admin', 0)->get(),
'values' => User::where('confirmation_code_remider', '!=', 2)->get(),
];
$user = User::findOrFail(8);
/* $MyGoogle2FA = new MyGoogle2FA();
$valid = $MyGoogle2FA->init($user)->check2Fa('676493');
dd($valid); */
return view('admin.users', $data);
}
@ -121,40 +127,97 @@ class AdminUserController extends Controller
public function loadModal($id){
if(Request::ajax()) {
$data = Request::all();
$user = User::findOrFail($id);
if(isset($data['action'])){
if($data['action'] === 'show-user-roles'){
$fill = [
'user' => $user,
'action' => $data['action'],
'groups' => config('permissions.groups'),
'roles' => config('permissions.roles')
];
return view("admin.user_modal", $fill )->render();
}
if($data['action'] === 'show-user-active'){
$fill = [
'user' => $user,
'action' => $data['action'],
];
return view("admin.active_modal", $fill )->render();
}
$data = [
'user' => $user,
'groups' => config('permissions.groups'),
'roles' => config('permissions.roles')
];
return view("admin.user_modal", $data )->render();
if($data['action'] === 'show-user-google2fa'){
if($user->isGoogle2Fa()){
$MyGoogle2FA = new MyGoogle2FA();
$MyGoogle2FA->init($user);
$fill = [
'user' => $user,
'action' => 'delete-user-google2fa',
'MyGoogle2FA' => $MyGoogle2FA,
];
return view("admin.google2fa_delete_modal", $fill )->render();
}else{
$MyGoogle2FA = new MyGoogle2FA();
$MyGoogle2FA->init($user)->generate();
$fill = [
'user' => $user,
'action' => 'activate-user-google2fa',
'MyGoogle2FA' => $MyGoogle2FA,
];
return view("admin.google2fa_modal", $fill )->render();
}
}
}
}
return false;
}
public function updateModal($step = false){
public function updateModal($action = false){
if($step == 'user'){
if($action=== 'show-user-roles'){
$data = Request::all();
$user = User::findOrFail($data['id']);
$user->permissions = isset($data['permissions']) ? $data['permissions'] : [];
$user->admin = $data['admin'];
$user->confirmed = isset($data['confirmed']) ? true : false;
$user->active = isset($data['active']) ? true : false;
$user->save();
\Session()->flash('alert-save', true);
}
if($action=== 'show-user-active'){
$data = Request::all();
$user = User::findOrFail($data['id']);
$user->active = isset($data['active']) ? true : false;
$user->save();
\Session()->flash('alert-save', true);
}
if($action=== 'activate-user-google2fa'){
$data = Request::all();
$user = User::findOrFail($data['id']);
$user->google2fa = true;
$user->save();
\Session()->flash('alert-save', true);
}
if($action=== 'delete-user-google2fa'){
$data = Request::all();
$user = User::findOrFail($data['id']);
$user->google2fa = false;
$user->secret_key = null;
$user->save();
\Session()->flash('alert-save', true);
}
\Session()->flash('alert-save', true);
return redirect('/admin/users');
}
//
public function getUsers()
{
//confirmation_code_remider is delete 2
@ -165,13 +228,20 @@ class AdminUserController extends Controller
return '<a href="' . route('admin_user_edit', [$user->id]) . '" class="btn icon-btn btn-sm btn-primary"><span class="fa fa-edit"></span></a>';
})
->addColumn('admin', function (User $user) {
return '<a href="#" data-url="'.route('admin_user_load_modal', $user->id).'" data-data="'.$user->id.'" class="update_modal_data_show">'.HTMLHelper::getRoleLabel($user->admin, '<i class="fa fa-edit"></i> Rechte + ','').'</a>';
return '<a href="#" data-url="'.route('admin_user_load_modal', $user->id).'" data-data="'.$user->id.'" data-action="show-user-roles" class="update_modal_data_show">'.HTMLHelper::getRoleLabel($user->admin, '<i class="fa fa-edit"></i> Rechte + ','').'</a>';
})
->addColumn('google2fa', function (User $user) {
$icon = $user->google2fa ? '<i class="fa fa-check-circle"></i>' : '<i class="fa fa-times-circle"></i>';
$color = $user->google2fa ? 'primary' : 'danger';
return ' <a href="#" data-url="'.route('admin_user_load_modal', $user->id).'" data-data="'.$user->id.'" data-action="show-user-google2fa" class="update_modal_data_show btn btn-sm btn-'.$color.'">'.$icon.' google2fa</a>';
})
->addColumn('confirmed', function (User $user) {
return $user->confirmed ? '<span class="badge badge-pill badge-success"><i class="fa fa-check"></i></span>' : '<span class="badge badge-pill badge-danger"><i class="fa fa-times"></i></span>';
})
->addColumn('active', function (User $user) {
return $user->active ? ' <span class="badge badge-pill badge-success"><i class="fa fa-check"></i></span>' : '<span class="badge badge-pill badge-danger"><i class="fa fa-times"></i></span>';
$active = $user->active ? '<span class="badge badge-pill badge-success"><i class="fa fa-check"></i></span>' : '<span class="badge badge-pill badge-danger"><i class="fa fa-times"></i></span>';
return ' <a href="#" data-url="'.route('admin_user_load_modal', $user->id).'" data-data="'.$user->id.'" data-action="show-user-active" class="update_modal_data_show">'.$active.'</a>';
})
->addColumn('action_delete', function (User $user) {
return '<a href="' . route('admin_user_delete', [$user->id]) . '" class="btn icon-btn btn-sm btn-danger" onclick="return confirm(\''.__('Really delete entry?').'\');"><span class="fa fa-trash"></span></a>';
@ -179,7 +249,7 @@ class AdminUserController extends Controller
->orderColumn('confirmed', 'confirmed $1')
->orderColumn('active', 'active $1')
->orderColumn('admin', 'active $1')
->rawColumns(['action_edit', 'admin', 'confirmed', 'active', 'action_delete'])
->rawColumns(['action_edit', 'admin', 'confirmed', 'active', 'action_delete', 'google2fa'])
->make(true);
}

View file

@ -52,18 +52,15 @@ class LoginController extends Controller
}
protected function validateLogin(Request $request)
{
$this->validate($request, [
$this->username() => 'required|exists:users,' . $this->username() . ',active,1',
'password' => 'required',
], [
$this->username() . '.exists' => trans('validation.usernotactive'),
]);
//*
//
/* protected function validateLogin(Request $request)
{
$this->validate($request, [
$this->username() => 'required|exists:users,' . $this->username() . ',active,1',
'password' => 'required',
], [
$this->username() . '.exists' => trans('validation.usernotactive'),
]);
}
*/
}
}

View file

@ -4,7 +4,6 @@ namespace App\Http\Controllers;
use Request;
use App\Models\Booking;
use App\Models\Customer;
use App\Models\BookingFile;
use App\Models\BookingNotice;
use App\Models\ServiceProvider;
@ -24,8 +23,8 @@ class BookingController extends Controller
protected $bookingRepo;
public function __construct(BookingRepository $bookingRepo)
{
$this->middleware('admin');
{
$this->middleware(['admin', '2fa']);
$this->bookingRepo = $bookingRepo;
}

View file

@ -23,6 +23,8 @@ class CMSAnswerQuestionController extends Controller
public function __construct()
{
$this->middleware(['admin', '2fa']);
$this->identifier_options = IQContentCategory::where('identifier', 'faq')
->where('active', true)
->orderBy('pos', 'ASC')

View file

@ -24,6 +24,8 @@ class CMSBookingController extends Controller
public function __construct()
{
$this->middleware(['admin', '2fa']);
$this->identifier_general_name = config('booking.identifier_general_name');
$this->identifier_content_name = config('booking.identifier_content_name');
$this->identifier_general = config('booking.identifier_general');
@ -78,12 +80,11 @@ class CMSBookingController extends Controller
}
}
if($data['action'] === 'addItem'){
$general_name = CMSContent::findOrFail($id);
$identifier_general = $this->identifier_general.$general_name->id;
$create = [
'name' => 'Abschnitt',
'name' => '#empty#',
'field' => 'full_text',
'decimal' => 1,
'identifier' => $identifier_general,
@ -102,6 +103,8 @@ class CMSBookingController extends Controller
foreach ($data['contents'] as $content_id => $item) {
$content = CMSContent::findOrFail($content_id);
$content->setObjectBy('page-break', (isset($item['page-break']) ? true : false));
$content->setObjectBy('repeat-country', (isset($item['repeat-country']) ? true : false));
$content->setObjectBy('repeat-airline', (isset($item['repeat-airline']) ? true : false));
$content->name = $item['name'];
$content->slug = null;
$content->decimal = isset($item['in_pdf']) ? 1 : 0;
@ -121,7 +124,13 @@ class CMSBookingController extends Controller
public function deleteAll($id, $do){
if($do === 'name'){
$general_name = CMSContent::findOrFail($id);
$find = CMSContent::findObjectsBy('general_id', $general_name->id);
if(count($find)){
\Session()->flash('alert-error', __('Vorlage kann nicht gelöscht werden, ist bei den Inhalten noch in Verwendung.'));
return back();
}
$identifier_general = $this->identifier_general.$general_name->id;
//check is use
$contents = CMSContent::where('identifier', '=', $identifier_general)->get();
foreach($contents as $con){
$con->delete();
@ -206,7 +215,7 @@ class CMSBookingController extends Controller
if($data['action'] === 'addItem' && isset($data['content_pos_id'])) {
$create = [
'name' => 'Abschnitt',
'name' => '#empty#',
'field' => 'full_text',
'decimal' => 1,
'integer' => $data['content_pos_id'],
@ -220,8 +229,6 @@ class CMSBookingController extends Controller
return redirect(route('cms_booking_content_detail', [$id]));
}
if($data['action'] === 'saveAll'){
$i = 1;
$last_content_id = null;
@ -233,6 +240,8 @@ class CMSBookingController extends Controller
}
if ($item['identifier'] === $identifier_content) {
$content->setObjectBy('page-break', (isset($item['page-break']) ? true : false));
$content->setObjectBy('repeat-country', (isset($item['repeat-country']) ? true : false));
$content->setObjectBy('repeat-airline', (isset($item['repeat-airline']) ? true : false));
$content->name = $item['name'];
$content->slug = null;
$content->decimal = isset($item['in_pdf']) ? 1 : 0;

View file

@ -19,6 +19,7 @@ class CMSContentAuthorController extends Controller
*/
public function __construct()
{
$this->middleware(['admin', '2fa']);
}

View file

@ -17,8 +17,8 @@ class CMSContentController extends Controller
public function __construct()
{
$this->middleware(['admin', '2fa']);
$this->identifier_content = 'general';
}

View file

@ -23,6 +23,8 @@ class CMSContentInfoController extends Controller
*/
public function __construct()
{
$this->middleware(['admin', '2fa']);
}
public function index()

View file

@ -21,6 +21,8 @@ class CMSFeWoController extends Controller
public function __construct()
{
$this->middleware(['admin', '2fa']);
$this->identifier_content = config('fewo.identifier_content');
$this->identifier_fewo = config('fewo.identifier_fewo');
}

View file

@ -18,6 +18,8 @@ class CMSFeedbackController extends Controller
*/
public function __construct()
{
$this->middleware(['admin', '2fa']);
}

View file

@ -18,6 +18,7 @@ class CMSSidebarController extends Controller
*/
public function __construct()
{
$this->middleware(['admin', '2fa']);
}
/**

View file

@ -24,6 +24,7 @@ class CMSTravelGuideController extends Controller
*/
public function __construct()
{
$this->middleware(['admin', '2fa']);
}
public function index()

View file

@ -22,8 +22,6 @@ class CronController extends Controller
public function __construct(UserRepository $userRepo)
{
$this->userRepo = $userRepo;
// $this->middleware('auth');
}
public function index()

View file

@ -14,7 +14,7 @@ class CustomerController extends Controller
public function __construct(CustomerRepository $custRepo)
{
$this->middleware('admin');
$this->middleware(['admin', '2fa']);
$this->custRepo = $custRepo;
}

View file

@ -25,7 +25,7 @@ class CustomerFewoMailController extends Controller
public function __construct(CustomerFewoMailRepository $customerMailRepo)
{
$this->middleware('admin');
$this->middleware(['admin', '2fa']);
$this->customerMailRepo = $customerMailRepo;
}

View file

@ -26,7 +26,7 @@ class CustomerMailController extends Controller
public function __construct(CustomerMailRepository $customerMailRepo)
{
$this->middleware('admin');
$this->middleware(['admin', '2fa']);
$this->customerMailRepo = $customerMailRepo;
}
@ -129,7 +129,7 @@ class CustomerMailController extends Controller
$value = new Collection();
$value->id = "add";
$value->customers = $customers;
$value->message = "Sehr #geehrte/r# #Anrede# #Vorname# #Nachname#,\n\nText ....";
$value->message = "Sehr #geehrte:r# #Anrede# #Vorname# #Nachname#,\n\nText ....";
$data['title'] = "E-Mail-Nachricht an Auswahl";
$url = route('requests_send_customer_mail');
$ret = view("customer.mail.modal-mail", compact('data','value', 'url') )->render();

View file

@ -11,8 +11,7 @@ class DraftController extends Controller
{
public function __construct()
{
$this->middleware('admin');
$this->middleware(['admin', '2fa']);
}
public function index($step = false)

View file

@ -21,7 +21,7 @@ class ContentModalController extends Controller
*/
public function __construct()
{
// $this->middleware('auth');
$this->middleware(['admin', '2fa']);
}
/**

View file

@ -26,7 +26,7 @@ class ContentTreeController extends Controller
*/
public function __construct(ContentSiteRepository $contentSiteRepo)
{
$this->middleware('admin');
$this->middleware(['admin', '2fa']);
$this->contentSiteRepo = $contentSiteRepo;
}

View file

@ -19,7 +19,7 @@ class ContentLinkController extends Controller
*/
public function __construct()
{
// $this->middleware('auth');
$this->middleware(['sysadmin', '2fa']);
}
/**

View file

@ -16,7 +16,7 @@ class TravelGroupController extends Controller
public function __construct(TravelRepository $tavelRepo)
{
$this->middleware('admin');
$this->middleware(['admin', '2fa']);
$this->tavelRepo = $tavelRepo;
}

View file

@ -16,7 +16,7 @@ class TravelItemController extends Controller
public function __construct(TravelRepository $tavelRepo)
{
$this->middleware('admin');
$this->middleware(['admin', '2fa']);
$this->tavelRepo = $tavelRepo;
}

View file

@ -16,7 +16,7 @@ class TravelProgrammController extends Controller
public function __construct(TravelRepository $travelRepo)
{
$this->middleware('admin');
$this->middleware(['admin', '2fa']);
$this->travelRepo = $travelRepo;
}

View file

@ -22,7 +22,7 @@ class LeadController extends Controller
public function __construct(LeadRepository $leadRepo, CustomerRepository $custRepo)
{
$this->middleware('admin');
$this->middleware(['admin', '2fa']);
$this->leadRepo = $leadRepo;
$this->custRepo = $custRepo;
@ -238,6 +238,8 @@ class LeadController extends Controller
if($lead->lead_mails->count()){
$lead_mail = $lead->lead_mails_sent_at->last();
$badge = $lead_mail->is_answer ? 'badge-default' : 'badge-secondary';
$badge = !$lead_mail->send ? $badge : 'badge-success';
return '<a data-order="'.$lead_mail->getSentAtRaw().'" href="#" data-toggle="modal"
data-target="#modals-load-content"
data-id="show-mail"
@ -248,7 +250,9 @@ class LeadController extends Controller
data-action="show-lead-mail"
data-redirect="back"
data-route="'.route('lead_mail_modal_load').'">
<span class="badge '.($lead_mail->is_answer ? 'badge-default' : 'badge-secondary').'">'.$lead_mail->sent_at.'</span>
<span class="badge '.$badge.'">'
.($lead_mail->send ? '<i class="fa fa-check-circle"></i>' : '<i class="fa fa-times-circle"></i>').' '
.$lead_mail->sent_at.'</span>
</a>';
}
return '<span data-order="">-</span>';

View file

@ -28,7 +28,7 @@ class LeadMailController extends Controller
public function __construct(LeadMailRepository $leadMailRepo)
{
$this->middleware('admin');
$this->middleware(['admin', '2fa']);
$this->leadMailRepo = $leadMailRepo;
}

View file

@ -15,7 +15,7 @@ class MailController extends Controller
public function __construct()
{
$this->middleware('admin');
$this->middleware(['admin', '2fa']);
}
public function leads()
@ -48,20 +48,6 @@ class MailController extends Controller
->addColumn('action_edit', function (LeadMail $lead_mail) {
return '<a href="'.route('lead_detail', [$lead_mail->lead_id]).'#collapseLeadMails" class="btn icon-btn btn-sm btn-primary"><span class="fa fa-edit"></span></a>';
})
->addColumn('action_see', function (LeadMail $lead_mail) {
return '<a data-order="'.$lead_mail->getSentAtRaw().'" class="btn icon-btn btn-sm btn-secondary" href="#" data-toggle="modal"
data-target="#modals-load-content"
data-id="show-mail"
data-url="mail"
data-preview="true"
data-lead_id="'.$lead_mail->lead->id.'"
data-lead_mail_id="'.$lead_mail->id.'"
data-action="show-lead-mail"
data-redirect="back"
data-route="'.route('lead_mail_modal_load').'">
<i class="fa fa-eye"></i>
</a>';
})
->addColumn('lead_id', function (LeadMail $lead_mail) {
return '<a data-order="'.$lead_mail->lead_id.'" href="'.route('lead_detail', [$lead_mail->lead_id]).'#collapseLeadMails">'.$lead_mail->lead_id.'</a>';
})
@ -69,10 +55,22 @@ class MailController extends Controller
return $lead_mail->send ? '<span class="badge badge-pill badge-success"><i class="fa fa-check"></i></span>' : '<span class="badge badge-pill badge-danger"><i class="fa fa-times"></i></span>';
})
->addColumn('date', function (LeadMail $lead_mail) {
if($lead_mail->send){
return '<span class="badge badge-success" style="background-color: #94ae59"><i class="fa fa-check-circle"></i> '.$lead_mail->sent_at.'</span>';
}
return '<span class="badge badge-default"><i class="fa fa-times-circle"></i> '.$lead_mail->sent_at.'</span>';
$badge = $lead_mail->is_answer ? 'badge-default' : 'badge-secondary';
$badge = !$lead_mail->send ? $badge : 'badge-success';
return '<a data-order="'.$lead_mail->getSentAtRaw().'" href="#" data-toggle="modal"
data-target="#modals-load-content"
data-id="show-mail"
data-url="mail"
data-preview="true"
data-lead_id="'.$lead_mail->lead->id.'"
data-lead_mail_id="'.$lead_mail->id.'"
data-action="show-lead-mail"
data-redirect="back"
data-route="'.route('lead_mail_modal_load').'">
<span class="badge '.$badge.'">'
.($lead_mail->send ? '<i class="fa fa-check-circle"></i>' : '<i class="fa fa-times-circle"></i>').' '
.$lead_mail->sent_at.'</span>
</a>';
})
->orderColumn('lead_id', 'lead_id $1')
->orderColumn('send', 'send $1')
@ -88,7 +86,7 @@ class MailController extends Controller
$query->where('lead_id', 'LIKE', '%'.$keyword.'%');
}
})
->rawColumns(['action_edit', 'send', 'date', 'lead_id', 'action_see'])
->rawColumns(['action_edit', 'send', 'date', 'lead_id'])
->make(true);
}
@ -100,20 +98,6 @@ class MailController extends Controller
->addColumn('action_edit', function (CustomerMail $customer_mail) {
return '<a href="'.route('booking_detail', [$customer_mail->booking_id]).'#collapseBookingMails" class="btn icon-btn btn-sm btn-primary"><span class="fa fa-edit"></span></a>';
})
->addColumn('action_see', function (CustomerMail $customer_mail) {
return '<a data-order="'.$customer_mail->getSentAtRaw().'" class="btn icon-btn btn-sm btn-secondary" href="#" data-toggle="modal"
data-target="#modals-load-content"
data-id="show-mail"
data-url="mail"
data-preview="true"
data-booking_id="'.$customer_mail->booking->id.'"
data-customer_mail_id="'.$customer_mail->id.'"
data-action="show-customer-mail"
data-redirect="back"
data-route="'.route('requests_modal_load').'">
<i class="fa fa-eye"></i>
</a>';
})
->addColumn('booking', function (CustomerMail $customer_mail) {
$out = $customer_mail->booking->travel_country_id ? $customer_mail->booking->travel_country->name." | " : "- | ";
$out .= $customer_mail->booking->travelagenda_id ? $customer_mail->booking->travel_agenda->name."" : "-";
@ -126,10 +110,22 @@ class MailController extends Controller
return $customer_mail->send ? '<span class="badge badge-pill badge-success"><i class="fa fa-check"></i></span>' : '<span class="badge badge-pill badge-danger"><i class="fa fa-times"></i></span>';
})
->addColumn('date', function (CustomerMail $customer_mail) {
if($customer_mail->send){
return '<span class="badge badge-success" style="background-color: #94ae59"><i class="fa fa-check-circle"></i> '.$customer_mail->sent_at.'</span>';
}
return '<span class="badge badge-default"><i class="fa fa-times-circle"></i> '.$customer_mail->sent_at.'</span>';
$badge = $customer_mail->is_answer ? 'badge-default' : 'badge-secondary';
$badge = !$customer_mail->send ? $badge : 'badge-success';
return '<a data-order="'.$customer_mail->getSentAtRaw().'" href="#" data-toggle="modal"
data-target="#modals-load-content"
data-id="show-mail"
data-url="mail"
data-preview="true"
data-booking_id="'.$customer_mail->booking->id.'"
data-customer_mail_id="'.$customer_mail->id.'"
data-action="show-customer-mail"
data-redirect="back"
data-route="'.route('requests_modal_load').'">
<span class="badge '.$badge.'">'
.($customer_mail->send ? '<i class="fa fa-check-circle"></i>' : '<i class="fa fa-times-circle"></i>').' '
.$customer_mail->sent_at.'</span>
</a>';
})
->orderColumn('booking_id', 'booking_id $1')
->orderColumn('send', 'send $1')
@ -157,21 +153,6 @@ class MailController extends Controller
->addColumn('action_edit', function (CustomerFewoMail $customer_fewo_mail) {
return '<a href="'.route('travel_user_booking_fewo_detail', [$customer_fewo_mail->travel_user_booking_fewo_id]).'#collapseBookingMails" class="btn icon-btn btn-sm btn-primary"><span class="fa fa-edit"></span></a>';
})
->addColumn('action_see', function (CustomerFewoMail $customer_fewo_mail) {
return '<a data-order="'.$customer_fewo_mail->getSentAtRaw().'" class="btn icon-btn btn-sm btn-secondary" href="#" data-toggle="modal"
data-target="#modals-load-content"
data-id="show-mail"
data-url="mail"
data-preview="true"
data-travel_user_booking_fewo_id="'.$customer_fewo_mail->travel_user_booking_fewo_id.'"
data-customer_mail_id="'.$customer_fewo_mail->id.'"
data-action="show-customer-mail"
data-redirect="back"
data-route="'.route('customer_fewo_modal_load').'">
<i class="fa fa-eye"></i>
</a>';
})
->addColumn('booking', function (CustomerFewoMail $customer_fewo_mail) {
$out = ($customer_fewo_mail->booking && $customer_fewo_mail->booking->fewo_lodging) ? $customer_fewo_mail->booking->fewo_lodging->name : "-";
return $out;
@ -183,10 +164,23 @@ class MailController extends Controller
return $customer_fewo_mail->send ? '<span class="badge badge-pill badge-success"><i class="fa fa-check"></i></span>' : '<span class="badge badge-pill badge-danger"><i class="fa fa-times"></i></span>';
})
->addColumn('date', function (CustomerFewoMail $customer_fewo_mail) {
if($customer_fewo_mail->send){
return '<span class="badge badge-success" style="background-color: #94ae59"><i class="fa fa-check-circle"></i> '.$customer_fewo_mail->sent_at.'</span>';
}
return '<span class="badge badge-default"><i class="fa fa-times-circle"></i> '.$customer_fewo_mail->sent_at.'</span>';
$badge = $customer_fewo_mail->is_answer ? 'badge-default' : 'badge-secondary';
$badge = !$customer_fewo_mail->send ? $badge : 'badge-success';
return '<a data-order="'.$customer_fewo_mail->getSentAtRaw().'" href="#" data-toggle="modal"
data-target="#modals-load-content"
data-id="show-mail"
data-url="mail"
data-preview="'.$customer_fewo_mail->send.'"
data-travel_user_booking_fewo_id="'.$customer_fewo_mail->travel_user_booking_fewo_id.'"
data-customer_mail_id="'.$customer_fewo_mail->id.'"
data-action="show-customer-mail"
data-redirect="back"
data-route="'.route('customer_fewo_modal_load').'">
<span class="badge '.$badge.'">'
.($customer_fewo_mail->send ? '<i class="fa fa-check-circle"></i>' : '<i class="fa fa-times-circle"></i>').' '
.$customer_fewo_mail->sent_at.'</span>
</a>';
})
->orderColumn('booking_id', 'booking_id $1')
->orderColumn('send', 'send $1')
@ -202,7 +196,7 @@ class MailController extends Controller
$query->where('booking_id', 'LIKE', '%'.$keyword.'%');
}
})
->rawColumns(['action_edit', 'send', 'date', 'booking_id', 'action_see'])
->rawColumns(['action_edit', 'send', 'date', 'booking_id'])
->make(true);
}

View file

@ -3,6 +3,7 @@
namespace App\Http\Controllers;
use Request;
use App\Models\CMSContent;
use App\Models\GeneralFile;
use App\Models\IQContentSite;
use App\Models\TravelCountry;
@ -19,7 +20,7 @@ class ModalController extends Controller
public function __construct()
{
$this->middleware('auth');
$this->middleware(['admin', '2fa']);
}
public function load(){
@ -104,6 +105,17 @@ class ModalController extends Controller
$ret = view("admin.modal.iq_travel_program-item", compact('data', 'value'))->render();
}
if($data['action'] === 'modal-cms_booking_content_edit'){
if($data['id'] === 'new'){
$value = new CMSContent();
}else{
$value = CMSContent::find($data['id']);
}
$ret = view("admin.modal.cms_booking_content_edit", compact('data', 'value'))->render();
}
}
return response()->json(['response' => $data, 'html'=>$ret, 'status'=>$status]);
}

View file

@ -22,7 +22,7 @@ class RequestController extends Controller
public function __construct()
{
$this->middleware('admin');
$this->middleware(['admin', '2fa']);
}
public function index($step = false)
@ -111,7 +111,6 @@ class RequestController extends Controller
if(Request::get('travel_option_lead_status_id') != ""){
$query->whereHas('lead', function ($q) {
$q->whereIn('status_id', Request::get('travel_option_lead_status_id'));
});
}
if(Request::get('travel_option_paying_out') != ""){
@ -426,6 +425,8 @@ class RequestController extends Controller
->addColumn('last_customer_email', function (Booking $booking) {
if($booking->customer_mails->count()){
$customer_mail = $booking->customer_mails_sent_at->last();
$badge = $customer_mail->is_answer ? 'badge-default' : 'badge-secondary';
$badge = !$customer_mail->send ? $badge : 'badge-success';
return '<a data-order="'.$customer_mail->getSentAtRaw().'" href="#" data-toggle="modal"
data-target="#modals-load-content"
data-id="show-mail"
@ -436,7 +437,9 @@ class RequestController extends Controller
data-action="show-customer-mail"
data-redirect="back"
data-route="'.route('requests_modal_load').'">
<span class="badge '.($customer_mail->is_answer ? 'badge-default' : 'badge-secondary').'">'.$customer_mail->sent_at.'</span>
<span class="badge '.$badge.'">'
.($customer_mail->send ? '<i class="fa fa-check-circle"></i>' : '<i class="fa fa-times-circle"></i>').' '
.$customer_mail->sent_at.'</span>
</a>';
}
return '<span data-order="">-</span>';

View file

@ -13,8 +13,7 @@ class AirlineController extends Controller
{
public function __construct()
{
$this->middleware('admin');
$this->middleware(['superadmin', '2fa']);
}
public function index($step = false)

View file

@ -11,7 +11,7 @@ class BookingStatusController extends Controller
{
public function __construct()
{
$this->middleware('admin');
$this->middleware(['superadmin', '2fa']);
}
public function index($step = false)

View file

@ -12,7 +12,7 @@ class CategoryController extends Controller
{
public function __construct()
{
$this->middleware('admin');
$this->middleware(['superadmin', '2fa']);
}
public function index($step = false)

View file

@ -21,11 +21,11 @@ class EmailsController extends Controller
public function __construct()
{
$this->identifier_booking_file = 'booking-email-file';
$this->identifier_fewo_file = 'fewo-email-file';
$this->identifier_lead_file = 'lead-email-file';
$this->middleware(['superadmin', '2fa']);
$this->middleware('admin');
$this->identifier_booking_file = 'booking-email-file';
$this->identifier_fewo_file = 'fewo-email-file';
$this->identifier_lead_file = 'lead-email-file';
}

View file

@ -12,7 +12,7 @@ class InsuranceController extends Controller
{
public function __construct()
{
$this->middleware('admin');
$this->middleware(['superadmin', '2fa']);
}
public function index($step = false)

View file

@ -11,8 +11,7 @@ class KeywordController extends Controller
{
public function __construct()
{
$this->middleware('admin');
$this->middleware(['superadmin', '2fa']);
}
public function index($step = false)

View file

@ -13,7 +13,7 @@ class ServiceProviderController extends Controller
{
public function __construct()
{
$this->middleware('admin');
$this->middleware(['superadmin', '2fa']);
}
public function index($step = false)

View file

@ -12,8 +12,7 @@ class TravelAgendaController extends Controller
{
public function __construct()
{
$this->middleware('admin');
$this->middleware(['superadmin', '2fa']);
}
public function index($step = false)

View file

@ -13,7 +13,7 @@ class TravelCompanyController extends Controller
{
public function __construct()
{
$this->middleware('admin');
$this->middleware(['superadmin', '2fa']);
}
public function index($step = false)

View file

@ -25,8 +25,7 @@ class TravelCountryController extends Controller
*/
public function __construct()
{
$this->middleware('admin');
$this->middleware(['superadmin', '2fa']);
}
public function index($step = false)

View file

@ -12,8 +12,7 @@ class TravelNationalityController extends Controller
{
public function __construct()
{
$this->middleware('admin');
$this->middleware(['superadmin', '2fa']);
}
public function index($step = false)
@ -24,7 +23,6 @@ class TravelNationalityController extends Controller
return view('settings.travel_nationality.index', $data);
}
public function update(){
$data = Request::all();

View file

@ -13,7 +13,7 @@ class TravelPlaceController extends Controller
{
public function __construct()
{
$this->middleware('admin');
$this->middleware(['superadmin', '2fa']);
}
public function index($step = false)
@ -24,12 +24,9 @@ class TravelPlaceController extends Controller
return view('settings.place.index', $data);
}
public function update(){
$data = Request::all();
$data['active'] = isset($data['active']) ? true : false;
if($data['id'] === "new"){

View file

@ -29,7 +29,7 @@ class ContentLinkController extends Controller
*/
public function __construct()
{
// $this->middleware('auth');
$this->middleware(['sysadmin', '2fa']);
}
public function filterHTML(){

View file

@ -15,7 +15,7 @@ class TravelProgramController extends Controller
public function __construct(TravelProgramRepository $travelProgramRepo)
{
$this->middleware('admin');
$this->middleware(['admin', '2fa']);
$this->travelProgramRepo = $travelProgramRepo;
}

View file

@ -22,13 +22,11 @@ use Request;
class TravelUserBookingFewoController extends Controller
{
protected $userBookingFewoRepo;
// protected $identifier_fewo;
public function __construct(TravelUserBookingFewoRepository $userBookingFewoRepo)
{
$this->middleware('admin');
$this->userBookingFewoRepo = $userBookingFewoRepo;
// $this->identifier_fewo = 'fewo-pdf-';
$this->middleware(['admin', '2fa']);
$this->userBookingFewoRepo = $userBookingFewoRepo;
}
public function index($step = false)

View file

@ -11,8 +11,7 @@ class TravelUserController extends Controller
{
public function __construct()
{
$this->middleware('admin');
$this->middleware(['admin', '2fa']);
}
public function index($step = false)

View file

@ -52,8 +52,9 @@ class Kernel extends HttpKernel
* @var array
*/
protected $routeMiddleware = [
'auth' => \Illuminate\Auth\Middleware\Authenticate::class,
'auth' => \App\Http\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'2fa' => \App\Http\Middleware\MiddleGoogle2FA::class,
'admin' => \App\Http\Middleware\Admin::class,
'superadmin' => \App\Http\Middleware\SuperAdmin::class,
'sysadmin' => \App\Http\Middleware\SysAdmin::class,

View file

@ -0,0 +1,24 @@
<?php
namespace App\Http\Middleware;
use Auth;
use Closure;
use App\Services\AuthGoogle2FA;
class AuthGoogle2FA
{
public function handle($request, Closure $next)
{
$AuthGoogle2FA = app(AuthGoogle2FA::class)->init($request);
if(!Auth::user()->isGoogle2Fa()){
return $AuthGoogle2FA->makeActiveOneTimePasswordResponse();
}
if ($AuthGoogle2FA->isAuthenticated()) {
return $next($request);
}
return $AuthGoogle2FA->makeRequestOneTimePasswordResponse();
}
}

View file

@ -0,0 +1,99 @@
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Auth\AuthenticationException;
use Illuminate\Contracts\Auth\Factory as Auth;
use Illuminate\Contracts\Auth\Middleware\AuthenticatesRequests;
class Authenticate implements AuthenticatesRequests
{
/**
* The authentication factory instance.
*
* @var \Illuminate\Contracts\Auth\Factory
*/
protected $auth;
/**
* Create a new middleware instance.
*
* @param \Illuminate\Contracts\Auth\Factory $auth
* @return void
*/
public function __construct(Auth $auth)
{
$this->auth = $auth;
}
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @param string[] ...$guards
* @return mixed
*
* @throws \Illuminate\Auth\AuthenticationException
*/
public function handle($request, Closure $next, ...$guards)
{
$this->authenticate($request, $guards);
if(!$this->auth->user()->active){
abort(403, 'Konto ist nicht aktiv');
}
return $next($request);
}
/**
* Determine if the user is logged in to any of the given guards.
*
* @param \Illuminate\Http\Request $request
* @param array $guards
* @return void
*
* @throws \Illuminate\Auth\AuthenticationException
*/
protected function authenticate($request, array $guards)
{
if (empty($guards)) {
$guards = [null];
}
foreach ($guards as $guard) {
if ($this->auth->guard($guard)->check()) {
return $this->auth->shouldUse($guard);
}
}
$this->unauthenticated($request, $guards);
}
/**
* Handle an unauthenticated user.
*
* @param \Illuminate\Http\Request $request
* @param array $guards
* @return void
*
* @throws \Illuminate\Auth\AuthenticationException
*/
protected function unauthenticated($request, array $guards)
{
throw new AuthenticationException(
'Unauthenticated.', $guards, $this->redirectTo($request)
);
}
/**
* Get the path the user should be redirected to when they are not authenticated.
*
* @param \Illuminate\Http\Request $request
* @return string|null
*/
protected function redirectTo($request)
{
//
}
}

View file

@ -0,0 +1,24 @@
<?php
namespace App\Http\Middleware;
use Auth;
use Closure;
use App\Services\AuthGoogle2FA;
class Google2FA
{
public function handle($request, Closure $next)
{
$AuthGoogle2FA = app(AuthGoogle2FA::class)->init($request);
if(!Auth::user()->isGoogle2Fa()){
return $AuthGoogle2FA->makeActiveOneTimePasswordResponse();
}
if ($AuthGoogle2FA->isAuthenticated()) {
return $next($request);
}
return $AuthGoogle2FA->makeRequestOneTimePasswordResponse();
}
}

View file

@ -0,0 +1,25 @@
<?php
namespace App\Http\Middleware;
use Closure;
use PragmaRX\Google2FALaravel\Support\Authenticator;
use Auth;
class Google2FA
{
public function handle($request, Closure $next)
{
$authenticator = app(Authenticator::class)->boot($request);
dd(Auth::user()->isGoogle2Fa());
if(Auth::user()->isGoogle2Fa()){
}
if ($authenticator->isAuthenticated()) {
return $next($request);
}
return $authenticator->makeRequestOneTimePasswordResponse();
}
}

View file

@ -0,0 +1,24 @@
<?php
namespace App\Http\Middleware;
use Auth;
use Closure;
use App\Services\AuthGoogle2FA;
class MiddleGoogle2FA
{
public function handle($request, Closure $next)
{
$AuthGoogle2FA = app(AuthGoogle2FA::class)->init($request);
if(!Auth::user()->isGoogle2Fa()){
\App\Services\MyGoogle2FA::logout();
return $AuthGoogle2FA->makeActiveOneTimePasswordResponse();
}
if ($AuthGoogle2FA->isAuthenticated()) {
return $next($request);
}
return $AuthGoogle2FA->makeRequestOneTimePasswordResponse();
}
}