Josh 4 anni fa
parent
commit
5b59baf8e8

+ 8 - 3
app/Http/Controllers/Controller.php

@@ -17,13 +17,18 @@ class Controller extends BaseController
 {
     use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
 
+    protected $performer = null;
+
+    protected $pro = null;
 
     public function __construct()
     {
-        $session = get_current_session();
-        if($session && $session->pro) {
-            view()->share('pro', $session->pro);
+        $this->performer = get_current_session();
+        if($this->performer && $this->performer->pro) {
+            $this->pro = $this->performer->pro;
+            view()->share('pro', $this->performer->pro);
         }
+        view()->share('performer', $this->performer);
         view()->share('pros', Pro::all());
         view()->share('notes', Note::all());
         

+ 112 - 53
app/Http/Controllers/HomeController.php

@@ -4,12 +4,14 @@ namespace App\Http\Controllers;
 
 use App\Lib\Backend;
 use App\Models\Appointment;
+use App\Models\AppSession;
 use App\Models\ClientSMS;
 use DateTime;
 
 use App\Models\Client;
 use App\Models\Bill;
 use App\Models\Note;
+use App\Models\Pro;
 use App\Models\ProTransaction;
 use GuzzleHttp\Cookie\CookieJar;
 use Illuminate\Http\Request;
@@ -35,7 +37,8 @@ class HomeController extends Controller
         return view('app/set_security_questions');
     }
 
-    public function postConfirmSmsAuthToken(Request $request) {
+    public function postConfirmSmsAuthToken(Request $request)
+    {
 
         try {
 
@@ -47,24 +50,22 @@ class HomeController extends Controller
             ];
 
             $response = Http::asForm()
-                ->withHeaders(['sessionKey'=>$request->cookie('sessionKey')])
+                ->withHeaders(['sessionKey' => $request->cookie('sessionKey')])
                 ->post($url, $data)
                 ->json();
 
-            if(!isset($response['success']) || !$response['success']){
+            if (!isset($response['success']) || !$response['success']) {
                 $message = 'API error';
-                if(isset($response['error'])) {
+                if (isset($response['error'])) {
                     $message = $response['error'];
-                    if(isset($response['path'])) $message .= ': ' . $response['path'];
-                }
-                else if(isset($response['message'])) $message = $response['message'];
+                    if (isset($response['path'])) $message .= ': ' . $response['path'];
+                } else if (isset($response['message'])) $message = $response['message'];
                 return redirect('/confirm_sms_auth_token')
                     ->withInput()
                     ->with('message', $message);
             }
 
             return redirect('/');
-
         } catch (\Exception $e) {
             return redirect()->back()
                 ->with('message', 'Unable to process your request at the moment. Please try again later.')
@@ -72,7 +73,8 @@ class HomeController extends Controller
         }
     }
 
-    public function resendSmsAuthToken(Request $request) {
+    public function resendSmsAuthToken(Request $request)
+    {
 
         try {
 
@@ -81,24 +83,22 @@ class HomeController extends Controller
             $data = [];
 
             $response = Http::asForm()
-                ->withHeaders(['sessionKey'=>$request->cookie('sessionKey')])
+                ->withHeaders(['sessionKey' => $request->cookie('sessionKey')])
                 ->post($url, $data)
                 ->json();
 
-            if(!isset($response['success']) || !$response['success']){
+            if (!isset($response['success']) || !$response['success']) {
                 $message = 'API error';
-                if(isset($response['error'])) {
+                if (isset($response['error'])) {
                     $message = $response['error'];
-                    if(isset($response['path'])) $message .= ': ' . $response['path'];
-                }
-                else if(isset($response['message'])) $message = $response['message'];
+                    if (isset($response['path'])) $message .= ': ' . $response['path'];
+                } else if (isset($response['message'])) $message = $response['message'];
                 return redirect('/confirm_sms_auth_token')
                     ->withInput()
                     ->with('message', $message);
             }
 
             return redirect()->back()->withInput()->with('message', "SMS Auth Token sent.");
-
         } catch (\Exception $e) {
             return redirect()->back()
                 ->with('message', 'Unable to process your request at the moment. Please try again later.')
@@ -106,7 +106,8 @@ class HomeController extends Controller
         }
     }
 
-    public function postSetPassword(Request $request) {
+    public function postSetPassword(Request $request)
+    {
         try {
 
             $url = env('BACKEND_URL', 'http://localhost:8080/api') . '/pro/selfPutPassword';
@@ -117,31 +118,30 @@ class HomeController extends Controller
             ];
 
             $response = Http::asForm()
-                ->withHeaders(['sessionKey'=>$request->cookie('sessionKey')])
+                ->withHeaders(['sessionKey' => $request->cookie('sessionKey')])
                 ->post($url, $data)
                 ->json();
 
-            if(!isset($response['success']) || !$response['success']){
+            if (!isset($response['success']) || !$response['success']) {
                 $message = 'API error';
-                if(isset($response['error'])) {
+                if (isset($response['error'])) {
                     $message = $response['error'];
-                    if(isset($response['path'])) $message .= ': ' . $response['path'];
-                }
-                else if(isset($response['message'])) $message = $response['message'];
+                    if (isset($response['path'])) $message .= ': ' . $response['path'];
+                } else if (isset($response['message'])) $message = $response['message'];
                 return redirect('/set_password')
                     ->withInput()
                     ->with('message', $message);
             }
 
             return redirect('/');
-
         } catch (\Exception $e) {
             return redirect()->back()
                 ->with('message', 'Unable to process your request at the moment. Please try again later.')
                 ->withInput($request->input());
         }
     }
-    public function postSetSecurityQuestions(Request $request) {
+    public function postSetSecurityQuestions(Request $request)
+    {
 
         try {
 
@@ -155,30 +155,27 @@ class HomeController extends Controller
             ];
 
             $response = Http::asForm()
-                ->withHeaders(['sessionKey'=>$request->cookie('sessionKey')])
+                ->withHeaders(['sessionKey' => $request->cookie('sessionKey')])
                 ->post($url, $data)
                 ->json();
 
-            if(!isset($response['success']) || !$response['success']){
+            if (!isset($response['success']) || !$response['success']) {
                 $message = 'API error';
-                if(isset($response['error'])) {
+                if (isset($response['error'])) {
                     $message = $response['error'];
-                    if(isset($response['path'])) $message .= ': ' . $response['path'];
-                }
-                else if(isset($response['message'])) $message = $response['message'];
+                    if (isset($response['path'])) $message .= ': ' . $response['path'];
+                } else if (isset($response['message'])) $message = $response['message'];
                 return redirect('/set_password')
                     ->withInput()
                     ->with('message', $message);
             }
 
             return redirect('/');
-
         } catch (\Exception $e) {
             return redirect()->back()
                 ->with('message', 'Unable to process your request at the moment. Please try again later.')
                 ->withInput($request->input());
         }
-
     }
 
     public function dashboard(Request $request)
@@ -272,7 +269,7 @@ class HomeController extends Controller
             $appointment->newStatus = $appointment->status;
             $appointment->dateYMD = date('Y-m-d', strtotime($appointment->start_time));
             $appointment->clientName = $appointment->client->displayName();
-            $appointment->clientInitials = substr($appointment->client->name_first, 0, 1).substr($appointment->client->name_last, 0, 1);
+            $appointment->clientInitials = substr($appointment->client->name_first, 0, 1) . substr($appointment->client->name_last, 0, 1);
             $appointment->friendlyStartTime = friendly_time($appointment->start_time);
             $appointment->friendlyEndTime = friendly_time($appointment->end_time);
             $appointment->clientSummary = friendly_date_time($appointment->client->dob, false) . ' (' .
@@ -281,18 +278,16 @@ class HomeController extends Controller
                 ')';
 
             $appointment->started = false;
-            $appointment->inHowManyHours = date_diff(date_create('now'), date_create($appointment->start_time),false)
+            $appointment->inHowManyHours = date_diff(date_create('now'), date_create($appointment->start_time), false)
                 ->format('%R%h h, %i m');
-            if($appointment->inHowManyHours[0] === '-') {
+            if ($appointment->inHowManyHours[0] === '-') {
                 $appointment->inHowManyHours = substr($appointment->inHowManyHours, 1) . ' ago';
                 $appointment->started = true;
-            }
-            else {
+            } else {
                 $appointment->inHowManyHours = 'Appt. in ' . substr($appointment->inHowManyHours, 1);
             }
             $appointment->clientUid = $appointment->client->uid;
             $appointment->proUid = $appointment->pro->uid;
-
         }
 
         $milliseconds = strtotime(date('Y-m-d')) . '000';
@@ -303,11 +298,10 @@ class HomeController extends Controller
     public function patients(Request $request, $filter = '')
     {
         $proID = $this->performer()->pro->id;
-        if($this->performer()->pro->pro_type === 'ADMIN') {
+        if ($this->performer()->pro->pro_type === 'ADMIN') {
             $query = Client::where('id', '>', 0);
-        }
-        else {
-            $query = Client::where(function ($q) use($proID) {
+        } else {
+            $query = Client::where(function ($q) use ($proID) {
                 $q->where('mcp_pro_id', $proID)
                     ->orWhere('cm_pro_id', $proID)
                     ->orWhere('rmm_pro_id', $proID)
@@ -320,7 +314,7 @@ class HomeController extends Controller
                 $query = $query->where('has_mcp_done_onboarding_visit', '<>', 'YES');
                 break;
 
-            // more cases can be added as needed
+                // more cases can be added as needed
             default:
                 break;
         }
@@ -328,23 +322,24 @@ class HomeController extends Controller
         return view('app/patients', compact('patients', 'filter'));
     }
 
-    public function patientsSuggest(Request $request) {
+    public function patientsSuggest(Request $request)
+    {
         $term = $request->input('term') ? trim($request->input('term')) : '';
-        if(empty($term)) return '';
-        $clients = Client::where(function ($q) use($term) {
+        if (empty($term)) return '';
+        $clients = Client::where(function ($q) use ($term) {
             $q->where('name_first', 'ILIKE', '%' . $term . '%')
                 ->orWhere('name_last', 'ILIKE', '%' . $term . '%');
         })->get();
         return view('app/patient-suggest', compact('clients'));
     }
 
-    public function unmappedSMS(Request $request, $filter = '') {
+    public function unmappedSMS(Request $request, $filter = '')
+    {
         $proID = $this->performer()->pro->id;
-        if($this->performer()->pro->pro_type === 'ADMIN') {
+        if ($this->performer()->pro->pro_type === 'ADMIN') {
             $query = Client::where('id', '>', 0);
-        }
-        else {
-            $query = Client::where(function ($q) use($proID) {
+        } else {
+            $query = Client::where(function ($q) use ($proID) {
                 $q->where('mcp_pro_id', $proID)
                     ->orWhere('cm_pro_id', $proID)
                     ->orWhere('rmm_pro_id', $proID)
@@ -376,10 +371,74 @@ class HomeController extends Controller
         return view('app/blank');
     }
 
-    public function noteTemplateSet(Request $request, $section, $template) {
+    public function noteTemplateSet(Request $request, $section, $template)
+    {
         return view('app/patient/note/_template', [
             "sectionInternalName" => $section,
             "templateName" => $template
         ]);
     }
+
+    public function logInAs(Request $request)
+    {
+        if($this->pro->pro_type != 'ADMIN'){
+            return redirect()->to(route('dashboard'));
+        }
+
+        $pros =  Pro::where('pro_type', '!=', 'ADMIN')->orWhereNull('pro_type')->get();
+        return view('app/log-in-as', compact('pros'));
+    }
+
+    public function processLogInAs(Request $request)
+    {
+
+        $api = new Backend();
+
+        try {
+            $apiResponse = $api->post('session/proLogInAs', [
+                'proUid' => $request->post('proUid')
+            ],
+            [
+                'sessionKey'=>$this->performer()->session_key
+            ]);
+
+            $data = json_decode($apiResponse->getContents());
+
+            if (!property_exists($data, 'success') || !$data->success) {
+                return redirect()->to(route('log-in-as'))->with('message', $data->message)
+                    ->withInput($request->input());
+            }
+
+            Cookie::queue('sessionKey', $data->data->sessionKey);
+
+            return redirect('/mc');
+        } catch (\Exception $e) {
+            return redirect()->to(route('log-in-as'))
+                ->with('message', 'Unable to process your request at the moment. Please try again later.')
+                ->withInput($request->input());
+        }
+    }
+
+    public function backToAdminPro(Request $request){
+        $adminPerformerId = $this->performer->logged_in_as_pro_from_admin_pro_app_session_id;
+        $adminPerformer = AppSession::where('id', $adminPerformerId)->first();
+        $url = "/session/pro_log_in_with_session_key/".$adminPerformer->session_key;
+        $api = new Backend();
+        try {
+            $apiResponse = $api->post($url, []);
+            $data = json_decode($apiResponse->getContents());
+
+            if (!property_exists($data, 'success') || !$data->success) {
+                return redirect('/mc');
+            }
+
+
+            Cookie::queue('sessionKey', $data->data->sessionKey);
+
+            return redirect(route('dashboard'));
+
+        } catch (\Exception $e) {
+            return redirect(route('dashboard'));
+        }
+    }
 }

+ 3 - 2
app/Lib/Backend.php

@@ -10,6 +10,7 @@ namespace App\Lib;
 
 
 use GuzzleHttp\Client as Guzzle;
+use GuzzleHttp\Cookie\CookieJar;
 use Psr\Http\Message\StreamInterface;
 use GuzzleHttp\Exception\ClientException;
 
@@ -24,9 +25,9 @@ class Backend
     }
 
 
-    public function post(string $url, array $data)
+    public function post(string $url, array $data, $headers = null)
     {
-        return $this->sendRequest($url, 'POST', ['form_params' => $data]);
+        return $this->sendRequest($url, 'POST', ['form_params' => $data, 'headers'=>$headers]);
     }
 
     public function get(string $url,  array $data = [])

+ 41 - 0
resources/views/app/log-in-as.blade.php

@@ -0,0 +1,41 @@
+@extends ('layouts/template')
+
+@section('content')
+
+    <div class="p-3 mcp-theme-1">
+    <div class="card">
+        @if(session('message'))
+        <div class="alert alert-info">{{session('message')}}</div>
+        @endif
+        <table class="table table-sm table-striped">
+            <thead>
+                <tr>
+                    <th>First Name</th>
+                    <th>Last Name</th>
+                    <th>Cell Number</th>
+                    <th>Email</th>
+                    <th></th>
+                </tr>
+            </thead>
+            <tbody>
+                @foreach($pros as $pro)
+                <tr>
+                    <td>{{$pro->name_first}}</td>
+                    <td>{{$pro->name_last}}</td>
+                    <td>{{$pro->cell_number}}</td>
+                    <td>{{$pro->email}}</td>
+                    <td>
+                        <form action="{{route('process-log-in-as')}}" method="POST">
+                            @csrf
+                            <input type="hidden" name="proUid" value="{{$pro->uid}}">
+                            <button class="btn btn-primary">Login</button>
+                        </form>
+                    </td>
+                </tr>
+                @endforeach
+            </tbody>
+        </table>
+    </div>
+    </div>
+
+@endsection

+ 106 - 97
resources/views/layouts/template.blade.php

@@ -46,10 +46,10 @@
 </head>
 
 <body>
-<div id="mask" style="background: rgba(0, 0, 0, 0) url(&quot;/vanillaspin.gif&quot;) no-repeat scroll center center; position: fixed; top: 0px; left: 0px; z-index: 9999; width: 100%; height: 100%; display: none;">
-</div>
-<div id="moe-form-mask" style="background: rgba(0, 0, 0, .1) no-repeat scroll center center; position: fixed; top: 0px; left: 0px; z-index: 99; width: 100%; height: 100%; display: none;">
-</div>
+    <div id="mask" style="background: rgba(0, 0, 0, 0) url(&quot;/vanillaspin.gif&quot;) no-repeat scroll center center; position: fixed; top: 0px; left: 0px; z-index: 9999; width: 100%; height: 100%; display: none;">
+    </div>
+    <div id="moe-form-mask" style="background: rgba(0, 0, 0, .1) no-repeat scroll center center; position: fixed; top: 0px; left: 0px; z-index: 99; width: 100%; height: 100%; display: none;">
+    </div>
 
     <nav class="navbar navbar-expand-md navbar-dark stag-primary-bg py-1">
         <a class="navbar-brand" href="{{ route('dashboard') }}">Scholar</a>
@@ -63,8 +63,7 @@
                 <li class="nav-item"><a class="nav-link" href="{{ route('patients') }}"><i class="mr-1 fas fa-user-injured"></i> Patients</a> </li>
                 <li class="nav-item"><a class="nav-link" href="{{ route('new-patient') }}"><i class="mr-1 fas fa-user-plus"></i> New Patient</a> </li>
                 <li class="nav-item dropdown">
-                    <a class="nav-link dropdown-toggle" href="#" id="practice-management" data-toggle="dropdown"
-                       aria-haspopup="true" aria-expanded="false"><i class="mr-1 fas fa-tasks"></i> Practice</a>
+                    <a class="nav-link dropdown-toggle" href="#" id="practice-management" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><i class="mr-1 fas fa-tasks"></i> Practice</a>
                     <div class="dropdown-menu" aria-labelledby="practice-management">
                         {{--<a class="dropdown-item" href="{{ route('practice-management.dashboard') }}">Dashboard</a>--}}
                         <a class="dropdown-item" href="{{ route('practice-management.rates') }}">Payment Rates</a>
@@ -80,10 +79,7 @@
             </ul>
             <a href="#" class="mr-3 text-white small" onclick="fastReload()"><i class="fa fa-sync"></i></a>
             <div class="d-inline-flex pr-3 mcp-theme-1 position-relative">
-                <input id="patient-search" type="search"
-                       class="form-control form-control-sm outline-0"
-                       autocomplete="off"
-                       placeholder="Search Patients">
+                <input id="patient-search" type="search" class="form-control form-control-sm outline-0" autocomplete="off" placeholder="Search Patients">
                 <div class="suggestions-outer position-absolute d-none">
 
                 </div>
@@ -98,6 +94,22 @@
                     </button>
                 </form>
             </div>
+            @if($pro->pro_type == 'ADMIN')
+            <div class="mr-2 d-inline-block">|</div>
+            <div class="d-flex align-items-center">
+                <a href="{{route('log-in-as')}}" class="text-white">Log In As</a>
+            </div>
+            @endif
+
+            @if($performer->logged_in_as_pro_from_admin_pro_app_session_id)
+            <form action="{{route('back-to-admin-pro')}}" method="post" target="_top">
+                @csrf
+                <button class="btn btn-sm btn-link text-light">
+                    <i class="fas fa-sign-out-alt"></i>
+                    <span class="small"></span>Back to Admin
+                </button>
+            </form>
+            @endif
         </div>
 
         <a href="#" class="stag_rhs_toggle d-none d-md-block" title="Toggle Video Pane">
@@ -136,101 +148,98 @@
         </div>
     </form>
 
-<script>
-    $(document).ready(function() {
-        const debounce = (func, wait) => {
-            let timeout;
-            return function executedFunction(...args) {
-                const later = () => {
+    <script>
+        $(document).ready(function() {
+            const debounce = (func, wait) => {
+                let timeout;
+                return function executedFunction(...args) {
+                    const later = () => {
+                        clearTimeout(timeout);
+                        func(...args);
+                    };
                     clearTimeout(timeout);
-                    func(...args);
+                    timeout = setTimeout(later, wait);
                 };
-                clearTimeout(timeout);
-                timeout = setTimeout(later, wait);
             };
-        };
-        var lastTerm = '';
-        var returnedFunction = debounce(function() {
-            var term = $.trim($('#patient-search').val());
-            if(!!term && lastTerm !== term) {
-                $.get('/patients-suggest?term=' + term, function(_data) {
-                    $('.suggestions-outer').html(_data).removeClass('d-none');
-                });
-                lastTerm = term;
-            }
-            else {
-                $('.suggestions-outer').addClass('d-none');
-            }
-        }, 250);
-        $('#patient-search')
-            .on('keydown', function(e) {
-                var term = $.trim($('#patient-search').val());
-                var activeItem = $('.suggestions-outer .suggest-item.active');
-                switch(e.which) {
-                    case 27:
-                        $('.suggestions-outer').addClass('d-none');
-                        return false;
-                    case 38:
-                        if(activeItem.prev().length) {
-                            activeItem.prev()
-                                .addClass('active')
-                                .siblings().removeClass('active');
-                            activeItem = $('.suggestions-outer .suggest-item.active');
-                            if(activeItem.length) {
-                                activeItem[0].scrollIntoView();
-                            }
-                        }
-                        return false;
-                    case 40:
-                        if(activeItem.next().length) {
-                            activeItem.next()
-                                .addClass('active')
-                                .siblings().removeClass('active');
-                            activeItem = $('.suggestions-outer .suggest-item.active');
-                            if(activeItem.length) {
-                                activeItem[0].scrollIntoView();
-                            }
-                        }
-                        return false;
-                    case 13:
-                        if(activeItem.length) {
-                            activeItem.first().click();
-                        }
-                        return false;
-                    default:
-                        if(!!term) {
-                            $('.suggestions-outer')
-                                .html('<span class="d-block no-suggest-items">Searching...</span>')
-                                .removeClass('d-none');
-                            returnedFunction();
-                        }
-                        else {
-                            $('.suggestions-outer').addClass('d-none');
-                        }
-                        break;
-                }
-            })
-            .on('keypress', function(e) {
+            var lastTerm = '';
+            var returnedFunction = debounce(function() {
                 var term = $.trim($('#patient-search').val());
-                if(!!term) {
-                    $('.suggestions-outer')
-                        .html('<span class="d-block no-suggest-items">Searching...</span>')
-                        .removeClass('d-none');
-                    returnedFunction();
-                }
-                else {
+                if (!!term && lastTerm !== term) {
+                    $.get('/patients-suggest?term=' + term, function(_data) {
+                        $('.suggestions-outer').html(_data).removeClass('d-none');
+                    });
+                    lastTerm = term;
+                } else {
                     $('.suggestions-outer').addClass('d-none');
                 }
+            }, 250);
+            $('#patient-search')
+                .on('keydown', function(e) {
+                    var term = $.trim($('#patient-search').val());
+                    var activeItem = $('.suggestions-outer .suggest-item.active');
+                    switch (e.which) {
+                        case 27:
+                            $('.suggestions-outer').addClass('d-none');
+                            return false;
+                        case 38:
+                            if (activeItem.prev().length) {
+                                activeItem.prev()
+                                    .addClass('active')
+                                    .siblings().removeClass('active');
+                                activeItem = $('.suggestions-outer .suggest-item.active');
+                                if (activeItem.length) {
+                                    activeItem[0].scrollIntoView();
+                                }
+                            }
+                            return false;
+                        case 40:
+                            if (activeItem.next().length) {
+                                activeItem.next()
+                                    .addClass('active')
+                                    .siblings().removeClass('active');
+                                activeItem = $('.suggestions-outer .suggest-item.active');
+                                if (activeItem.length) {
+                                    activeItem[0].scrollIntoView();
+                                }
+                            }
+                            return false;
+                        case 13:
+                            if (activeItem.length) {
+                                activeItem.first().click();
+                            }
+                            return false;
+                        default:
+                            if (!!term) {
+                                $('.suggestions-outer')
+                                    .html('<span class="d-block no-suggest-items">Searching...</span>')
+                                    .removeClass('d-none');
+                                returnedFunction();
+                            } else {
+                                $('.suggestions-outer').addClass('d-none');
+                            }
+                            break;
+                    }
+                })
+                .on('keypress', function(e) {
+                    var term = $.trim($('#patient-search').val());
+                    if (!!term) {
+                        $('.suggestions-outer')
+                            .html('<span class="d-block no-suggest-items">Searching...</span>')
+                            .removeClass('d-none');
+                        returnedFunction();
+                    } else {
+                        $('.suggestions-outer').addClass('d-none');
+                    }
+                });
+            $(document).on('click', '.suggest-item[data-target-uid]', function() {
+                $('#patient-search').val('');
+                $('.suggestions-outer').addClass('d-none');
+                fastLoad('/patients/view/' + $(this).attr('data-target-uid'), true, false, false);
+                return false;
             });
-        $(document).on('click', '.suggest-item[data-target-uid]', function() {
-            $('#patient-search').val('');
-            $('.suggestions-outer').addClass('d-none');
-            fastLoad('/patients/view/' + $(this).attr('data-target-uid'), true, false, false);
-            return false;
         });
-    });
-</script>
+    </script>
 
 </body>
 
-</html>
+</html>

+ 4 - 0
routes/web.php

@@ -130,4 +130,8 @@ Route::middleware('pro.auth')->group(function () {
     Route::get('/section_create_form/{note_uid}/{section_template_uid}', 'NoteController@sectionCreateForm')->name('section_create_form');
     Route::get('/section_update_form/{section_uid}', 'NoteController@sectionUpdateForm')->name('section_update_form');
     Route::post("/process_form_submit", 'NoteController@processFormSubmit')->name('process_form_submit');
+
+    Route::get("/log_in_as", 'HomeController@logInAs')->name('log-in-as');
+    Route::post("/process-log_in_as", 'HomeController@processLogInAs')->name('process-log-in-as');
+    Route::post("/back_to_admin_pro", 'HomeController@backToAdminPro')->name('back-to-admin-pro');
 });