Implements password validation while network config password is MAX
This commit is contained in:
parent
0ce46df5a9
commit
b94f264f57
|
@ -27,6 +27,7 @@ use App\Models\NhPerformance;
|
|||
use App\Models\NhProviderClass;
|
||||
use App\Models\NhValidatingAgent;
|
||||
use App\Models\User;
|
||||
use App\Rules\PasswordValidation;
|
||||
use App\Traits\ApiResponser;
|
||||
use App\Traits\Helper;
|
||||
use GuzzleHttp\Client;
|
||||
|
@ -111,7 +112,7 @@ class AuthorizationCareRequestController extends Controller
|
|||
'act_id' => 'required|integer|exists:nh_acts,id',
|
||||
'insurance_id' => 'required|integer|exists:nh_insurances,id',
|
||||
'beneficiary_id' => 'nullable|int|exists:nh_having_rights,id',
|
||||
'password' => 'required|string'
|
||||
// 'password' => 'required|string'
|
||||
]);
|
||||
|
||||
$act_id = $request->input('act_id');
|
||||
|
@ -122,7 +123,11 @@ class AuthorizationCareRequestController extends Controller
|
|||
}
|
||||
|
||||
$user = $insurance->user;
|
||||
$this->userCredentialsVerification($user, $request->input('password'));
|
||||
$this->userIdentificationVerification($user);
|
||||
// Validation du mot de passe dépendamment de la configuration du réseau
|
||||
$this->validate($request, [
|
||||
'password' => [new PasswordValidation($insurance->network_id)]
|
||||
]);
|
||||
|
||||
$beneficiary_id = $request->input('beneficiary_id');
|
||||
if (!empty($beneficiary_id)) {
|
||||
|
|
|
@ -27,6 +27,7 @@ use App\Models\NhNetworksConfig;
|
|||
use App\Models\NhPerformance;
|
||||
use App\Models\NhProviderClass;
|
||||
use App\Models\NhTmpHealthCareSheet;
|
||||
use App\Rules\PasswordValidation;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Facades\Event;
|
||||
|
@ -598,7 +599,7 @@ class HealthCareSheetController extends Controller
|
|||
$this->validate($request, [
|
||||
'insured_id' => 'required|string',
|
||||
'network_agent_id' => 'required|integer|exists:networks_agents,id',
|
||||
'password' => 'required|string',
|
||||
// 'password' => 'required|string',
|
||||
'beneficiary_id' => 'nullable|int|exists:nh_having_rights,id',
|
||||
// 'patient_lastname' => 'required|string',
|
||||
// 'patient_firstname' => 'nullable|string',
|
||||
|
@ -632,7 +633,10 @@ class HealthCareSheetController extends Controller
|
|||
return $this->errorResponse(trans('errors.not_insured'));
|
||||
}
|
||||
|
||||
$this->agentCredentialsVerification($request->input('network_agent_id'), $request->input('password'));
|
||||
// Validation du mot de passe dépendamment de la configuration du réseau
|
||||
$this->validate($request, [
|
||||
'password' => [new PasswordValidation($insurance->network_id)]
|
||||
]);
|
||||
|
||||
$beneficiary_id = $request->input('beneficiary_id');
|
||||
if (!empty($beneficiary_id)) {
|
||||
|
@ -946,7 +950,7 @@ class HealthCareSheetController extends Controller
|
|||
$this->validate($request, [
|
||||
'health_care_sheet_id' => 'required|integer|exists:nh_health_care_sheets,id',
|
||||
'network_agent_id' => 'required|integer|exists:networks_agents,id',
|
||||
'password' => 'required|string',
|
||||
// 'password' => 'required|string',
|
||||
'practitioner_lastname' => 'required|string',
|
||||
'practitioner_firstname' => 'nullable|string',
|
||||
'practitioner_provider_class_id' => 'required|integer',
|
||||
|
@ -976,13 +980,16 @@ class HealthCareSheetController extends Controller
|
|||
return $this->errorResponse(trans('errors.sheet_not_comes_from_consultation'));
|
||||
}
|
||||
|
||||
$this->agentCredentialsVerification($request->input('network_agent_id'), $request->input('password'));
|
||||
|
||||
$nhConfig = NhNetworksConfig::where('network_id', $sheet->insurance->network_id)->first();
|
||||
if (!isset($nhConfig)) {
|
||||
return $this->errorResponse(trans('errors.nano_health_not_activated'));
|
||||
}
|
||||
|
||||
// Validation du mot de passe dépendamment de la configuration du réseau
|
||||
$this->validate($request, [
|
||||
'password' => [new PasswordValidation($sheet->insurance->network_id)]
|
||||
]);
|
||||
|
||||
$parts = $this->getConfigInsuranceParts($nhConfig, $sheet->care_condition);
|
||||
$currency_code = $this->getNetworkCurrency($sheet->insurance->network_id);
|
||||
|
||||
|
@ -1756,7 +1763,7 @@ class HealthCareSheetController extends Controller
|
|||
*/
|
||||
$this->validate($request, [
|
||||
'network_agent_id' => 'required|integer|exists:networks_agents,id',
|
||||
'password' => 'required|string',
|
||||
// 'password' => 'required|string',
|
||||
// 'beneficiary_id' => 'nullable|int|exists:nh_having_rights,id',
|
||||
'practitioner_lastname' => 'nullable|string',
|
||||
'practitioner_firstname' => 'nullable|string',
|
||||
|
@ -1796,9 +1803,6 @@ class HealthCareSheetController extends Controller
|
|||
if ($sheet->network_agent_id != $request->input('network_agent_id')) {
|
||||
return $this->errorResponse(__('errors.unauthorized_to_update_sheet'), 403);
|
||||
}
|
||||
|
||||
$this->agentCredentialsVerification($request->input('network_agent_id'), $request->input('password'));
|
||||
|
||||
// $beneficiary_id = $request->input('beneficiary_id');
|
||||
// if (!empty($beneficiary_id)) {
|
||||
// $beneficiary = $sheet->insurance->beneficiaries()->where('nh_having_rights.id', $beneficiary_id)->first();
|
||||
|
@ -1813,6 +1817,11 @@ class HealthCareSheetController extends Controller
|
|||
return $this->errorResponse(trans('errors.nano_health_not_activated'));
|
||||
}
|
||||
|
||||
// Validation du mot de passe dépendamment de la configuration du réseau
|
||||
$this->validate($request, [
|
||||
'password' => [new PasswordValidation($sheet->insurance->network_id)]
|
||||
]);
|
||||
|
||||
$performances = $request->input('performances', []);
|
||||
$prescriptions = $request->input('prescriptions', []);
|
||||
$exams = $request->input('exams', []);
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\AgentPlus;
|
||||
use App\Models\User;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
|
@ -75,4 +77,82 @@ class HelperController extends Controller
|
|||
$exclusion = current(DB::select("SELECT document FROM nh_exclusions WHERE network_id = :network_id LIMIT 1", ['network_id' => $network_id]));
|
||||
return $this->successResponse($exclusion);
|
||||
}
|
||||
|
||||
/**
|
||||
* @OA\Post(
|
||||
* path="/password-validation",
|
||||
* summary="Validation du mot de passe",
|
||||
* tags={"Validation du mot de passe"},
|
||||
* security={{"api_key":{}}},
|
||||
* @OA\RequestBody(
|
||||
* description="Corps de la requete",
|
||||
* required=true,
|
||||
* @OA\MediaType(
|
||||
* mediaType="application/json",
|
||||
* @OA\Schema(
|
||||
* schema="request_for_authorizations_of_care",
|
||||
* title = "Demande autorisation de prise en charge",
|
||||
* required={"password"},
|
||||
* @OA\Property(
|
||||
* property="password",
|
||||
* description = "Mot de passe",
|
||||
* type="string",
|
||||
* example= "1234"
|
||||
* ),
|
||||
* @OA\Property(
|
||||
* property="user_id",
|
||||
* description = "ID de l'utilisateur",
|
||||
* type="integer",
|
||||
* example= 5
|
||||
* ),
|
||||
* @OA\Property(
|
||||
* property="network_agent_id",
|
||||
* description = "ID de l'agent dans le reseau",
|
||||
* type="integer",
|
||||
* example= 43959
|
||||
* )
|
||||
* ),
|
||||
* ),
|
||||
* ),
|
||||
* @OA\Response(
|
||||
* response=200,
|
||||
* description="OK",
|
||||
* @OA\JsonContent(
|
||||
* ref="#/components/schemas/ApiResponse",
|
||||
* example = {
|
||||
* "status" : 200,
|
||||
* "response" : "Authentification réussie",
|
||||
* "error":null
|
||||
* }
|
||||
* )
|
||||
* )
|
||||
* )
|
||||
*/
|
||||
// Validation du mot de passe lors de l'ouverture du wallet coté front
|
||||
public function passwordValidation(Request $request)
|
||||
{
|
||||
$this->validate($request, [
|
||||
'password' => 'required|string',
|
||||
'user_id' => 'required_without:network_agent_id|integer|exists:users,id',
|
||||
'network_agent_id' => 'required_without:user_id|integer|exists:networks_agents,id',
|
||||
]);
|
||||
$password = $request->input('password');
|
||||
$user_id = $request->input('user_id');
|
||||
$network_agent_id = $request->input('network_agent_id');
|
||||
|
||||
if (!empty($user_id)) {
|
||||
$user = User::findOrFail($user_id);
|
||||
$check = checkPassword($password, $user->encrypted_password, $user->salt);
|
||||
} else {
|
||||
$agent = AgentPlus::where('network_agent_id', $network_agent_id)->firstOrFail();
|
||||
$check = checkPassword($password, $agent->encrypted_password, $agent->salt);
|
||||
}
|
||||
|
||||
if ($check) {
|
||||
return $this->successResponse(trans('messages.successful_authentification'));
|
||||
} else {
|
||||
return $this->errorResponse(trans('messages.incorrect_user_password'));
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -17,6 +17,7 @@ use App\Models\NhInsurancesSubscription;
|
|||
use App\Models\NhInsurancesSubscriptionsHistory;
|
||||
use App\Models\NhNetworksConfig;
|
||||
use App\Models\Wallet;
|
||||
use App\Rules\PasswordValidation;
|
||||
use App\Traits\Helper;
|
||||
use DateTime;
|
||||
use Exception;
|
||||
|
@ -339,7 +340,7 @@ class InsuranceController extends Controller
|
|||
*
|
||||
*/
|
||||
$this->validate($request, [
|
||||
'password' => 'required|string',
|
||||
// 'password' => 'required|string',
|
||||
'beneficiaries' => 'nullable|array',
|
||||
'beneficiaries.*.lastname' => 'required|string',
|
||||
'beneficiaries.*.gender' => 'required|in:M,F',
|
||||
|
@ -359,7 +360,11 @@ class InsuranceController extends Controller
|
|||
$this->latestSubscriptionVerification($request->input('network_id'), $request->input('user_id'));
|
||||
$user = $insurance->user;
|
||||
$identification = $insurance->user->identification;
|
||||
$this->userCredentialsVerification($user, $request->input('password'));
|
||||
$this->userIdentificationVerification($user);
|
||||
// Validation du mot de passe dépendamment de la configuration du réseau
|
||||
$this->validate($request, [
|
||||
'password' => [new PasswordValidation($insurance->network_id, 'user', $user)]
|
||||
]);
|
||||
|
||||
$nbOfBeneficiaries = $insurance->beneficiaries()->count();
|
||||
$networkConfig = NhNetworksConfig::where('network_id', $insurance->network_id)->first();
|
||||
|
@ -469,7 +474,7 @@ class InsuranceController extends Controller
|
|||
*
|
||||
*/
|
||||
$this->validate($request, [
|
||||
'password' => 'required|string',
|
||||
// 'password' => 'required|string',
|
||||
'beneficiaries_ids' => 'required|array',
|
||||
'beneficiaries_ids.*' => 'required|integer|exists:nh_having_rights,id',
|
||||
]);
|
||||
|
@ -477,7 +482,11 @@ class InsuranceController extends Controller
|
|||
$insurance = NhInsurance::findOrFail($id);
|
||||
$this->insuranceVerification($insurance);
|
||||
$user = $insurance->user;
|
||||
$this->userCredentialsVerification($user, $request->input('password'));
|
||||
$this->userIdentificationVerification($user);
|
||||
// Validation du mot de passe dépendamment de la configuration du réseau
|
||||
$this->validate($request, [
|
||||
'password' => [new PasswordValidation($insurance->network_id, 'user', $user)]
|
||||
]);
|
||||
|
||||
$current_beneficiaries_ids = array_map(function ($b) {
|
||||
return $b['id'];
|
||||
|
@ -561,14 +570,18 @@ class InsuranceController extends Controller
|
|||
*/
|
||||
public function stopInsurance(Request $request, $id)
|
||||
{
|
||||
$this->validate($request, [
|
||||
'password' => 'required|string',
|
||||
]);
|
||||
// $this->validate($request, [
|
||||
// 'password' => 'required|string',
|
||||
// ]);
|
||||
|
||||
$insurance = NhInsurance::findOrFail($id);
|
||||
$user = $insurance->user;
|
||||
$identification = $insurance->user->identification;
|
||||
$this->userCredentialsVerification($user, $request->input('password'));
|
||||
$this->userIdentificationVerification($user);
|
||||
// Validation du mot de passe dépendamment de la configuration du réseau
|
||||
$this->validate($request, [
|
||||
'password' => [new PasswordValidation($insurance->network_id, 'user', $user)]
|
||||
]);
|
||||
$this->insuranceVerification($insurance);
|
||||
$this->latestSubscriptionVerification($insurance->network_id, $insurance->user_id);
|
||||
try {
|
||||
|
@ -653,9 +666,9 @@ class InsuranceController extends Controller
|
|||
*/
|
||||
public function renewInsurance(Request $request, $id)
|
||||
{
|
||||
$this->validate($request, [
|
||||
'password' => 'required|string',
|
||||
]);
|
||||
// $this->validate($request, [
|
||||
// 'password' => 'required|string',
|
||||
// ]);
|
||||
|
||||
$insurance = NhInsurance::findOrFail($id);
|
||||
if (!in_array($insurance->state, [InsuranceState::STOPPED, InsuranceState::EXPIRED])) {
|
||||
|
@ -663,7 +676,11 @@ class InsuranceController extends Controller
|
|||
}
|
||||
|
||||
$user = $insurance->user;
|
||||
$this->userCredentialsVerification($user, $request->input('password'));
|
||||
$this->userIdentificationVerification($user);
|
||||
// Validation du mot de passe dépendamment de la configuration du réseau
|
||||
$this->validate($request, [
|
||||
'password' => [new PasswordValidation($insurance->network_id, 'user', $user)]
|
||||
]);
|
||||
|
||||
$networkConfig = NhNetworksConfig::where('network_id', $insurance->network_id)->first();
|
||||
if (!isset($networkConfig) || $networkConfig->configWallet->type != 'ilink_sante')
|
||||
|
|
|
@ -22,6 +22,7 @@ use App\Models\NhMonthsPricesGrid;
|
|||
use App\Models\NhNetworksConfig;
|
||||
use App\Models\User;
|
||||
use App\Models\Wallet;
|
||||
use App\Rules\PasswordValidation;
|
||||
use App\Traits\Helper;
|
||||
use Carbon\Carbon;
|
||||
use DateTime;
|
||||
|
@ -201,9 +202,9 @@ class InsuranceInvoiceController extends Controller
|
|||
*/
|
||||
public function payInvoice($id, Request $request)
|
||||
{
|
||||
$this->validate($request, [
|
||||
'password' => 'required|string',
|
||||
]);
|
||||
// $this->validate($request, [
|
||||
// 'password' => 'required|string',
|
||||
// ]);
|
||||
|
||||
$invoice = NhInsurancesInvoice::findOrFail($id);
|
||||
$datetime = $this->getCurrentTimeByCountryCode($invoice->insurance->network->country->code_country);
|
||||
|
@ -217,7 +218,12 @@ class InsuranceInvoiceController extends Controller
|
|||
// }
|
||||
|
||||
$user = $invoice->insurance->user;
|
||||
$this->userCredentialsVerification($user, $request->input('password'));
|
||||
$this->userIdentificationVerification($user);
|
||||
|
||||
// Validation du mot de passe dépendamment de la configuration du réseau
|
||||
$this->validate($request, [
|
||||
'password' => [new PasswordValidation($invoice->insurance->network_id, 'user', $user)]
|
||||
]);
|
||||
|
||||
$currency = $this->getNetworkCurrency($invoice->insurance->network_id);
|
||||
|
||||
|
|
|
@ -22,6 +22,7 @@ use App\Models\NhMonthsPricesGrid;
|
|||
use App\Models\NhNetworksConfig;
|
||||
use App\Models\User;
|
||||
use App\Models\Wallet;
|
||||
use App\Rules\PasswordValidation;
|
||||
use App\Traits\Helper;
|
||||
use Carbon\Carbon;
|
||||
use DateTime;
|
||||
|
@ -280,7 +281,7 @@ class InsuranceSubscriptionController extends Controller
|
|||
$this->validate($request, [
|
||||
'network_id' => 'required|integer|exists:networks,id',
|
||||
'user_id' => 'required|integer|exists:users,id',
|
||||
'password' => 'required|string',
|
||||
// 'password' => 'required|string',
|
||||
'month_price_id' => 'required|integer|exists:nh_months_prices_grid,id',
|
||||
'beneficiaries' => 'nullable|array',
|
||||
'beneficiaries.*.lastname' => 'required|string',
|
||||
|
@ -298,7 +299,11 @@ class InsuranceSubscriptionController extends Controller
|
|||
|
||||
$user = User::findOrFail($request->input('user_id'));
|
||||
$identification = $user->identification;
|
||||
$this->userCredentialsVerification($user, $request->input('password'));
|
||||
$this->userIdentificationVerification($user);
|
||||
// Validation du mot de passe dépendamment de la configuration du réseau
|
||||
$this->validate($request, [
|
||||
'password' => [new PasswordValidation($request->input('network_id'), 'user', $user)]
|
||||
]);
|
||||
|
||||
$networkConfig = NhNetworksConfig::where('network_id', $request->input('network_id'))->first();
|
||||
if (!isset($networkConfig) || $networkConfig->configWallet->type != 'ilink_sante')
|
||||
|
@ -627,9 +632,9 @@ class InsuranceSubscriptionController extends Controller
|
|||
*/
|
||||
public function paySubscription($id, Request $request)
|
||||
{
|
||||
$this->validate($request, [
|
||||
'password' => 'required|string',
|
||||
]);
|
||||
// $this->validate($request, [
|
||||
// 'password' => 'required|string',
|
||||
// ]);
|
||||
|
||||
$subscription = NhInsurancesSubscription::findOrFail($id);
|
||||
if ($subscription->state != InsuranceSubscriptionState::ACCEPTED) {
|
||||
|
@ -641,7 +646,11 @@ class InsuranceSubscriptionController extends Controller
|
|||
}
|
||||
|
||||
$user = $subscription->user;
|
||||
$this->userCredentialsVerification($user, $request->input('password'));
|
||||
$this->userIdentificationVerification($user);
|
||||
// Validation du mot de passe dépendamment de la configuration du réseau
|
||||
$this->validate($request, [
|
||||
'password' => [new PasswordValidation($subscription->network_id, 'user', $user)]
|
||||
]);
|
||||
|
||||
$currency = $this->getNetworkCurrency($subscription->network_id);
|
||||
|
||||
|
|
|
@ -0,0 +1,87 @@
|
|||
<?php
|
||||
|
||||
namespace App\Rules;
|
||||
|
||||
use App\Exceptions\AppException;
|
||||
use App\Models\AgentPlus;
|
||||
use App\Models\NhNetworksConfig;
|
||||
use Illuminate\Contracts\Validation\DataAwareRule;
|
||||
use Illuminate\Contracts\Validation\ImplicitRule;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
|
||||
class PasswordValidation implements ImplicitRule, DataAwareRule
|
||||
{
|
||||
/**
|
||||
* All of the data under validation.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $data = [];
|
||||
private $network_id;
|
||||
private $type;
|
||||
private $user;
|
||||
|
||||
public function __construct($network_id, $type = 'agent', $user = null)
|
||||
{
|
||||
$this->network_id = $network_id;
|
||||
$this->type = $type;
|
||||
$this->user = $user;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Set the data under validation.
|
||||
*
|
||||
* @param array $data
|
||||
* @return $this
|
||||
*/
|
||||
public function setData($data)
|
||||
{
|
||||
$this->data = $data;
|
||||
return $this;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Determine if the validation rule passes.
|
||||
*
|
||||
* @param string $attribute
|
||||
* @param mixed $value
|
||||
* @return bool
|
||||
* @throws AppException
|
||||
*/
|
||||
public function passes($attribute, $value)
|
||||
{
|
||||
$config = NhNetworksConfig::where('network_id', $this->network_id)->first();
|
||||
|
||||
if (isset($config) && $config->password_validation == 'MAX') {
|
||||
$validator = Validator::make($this->data, [
|
||||
'password' => 'required|string'
|
||||
]);
|
||||
if ($validator->fails()) {
|
||||
throw new AppException(trans('validation.required', ['attribute' => 'password']), 422);
|
||||
}
|
||||
|
||||
if ($this->type == 'agent') {
|
||||
$network_agent_id = $this->data['network_agent_id'] ?? $this->data['issuer_network_agent_id'];
|
||||
$agent = AgentPlus::where('network_agent_id', $network_agent_id)->first();
|
||||
return checkPassword($value, $agent->encrypted_password, $agent->salt);
|
||||
} else {
|
||||
return checkPassword($value, $this->user->encrypted_password, $this->user->salt);
|
||||
}
|
||||
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the validation error message.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function message()
|
||||
{
|
||||
return trans('messages.incorrect_user_password');
|
||||
}
|
||||
}
|
|
@ -214,13 +214,13 @@ trait Helper
|
|||
/**
|
||||
* @throws AppException
|
||||
*/
|
||||
public function userCredentialsVerification(User $user, $password)
|
||||
public function userIdentificationVerification(User $user)
|
||||
{
|
||||
if (!isset($user->identification) || $user->identification->status == 0)
|
||||
throw new AppException(trans('errors.user_identification_required'));
|
||||
|
||||
if (!checkPassword($password, $user->encrypted_password, $user->salt))
|
||||
throw new AppException(trans('messages.incorrect_user_password'));
|
||||
// if (!checkPassword($password, $user->encrypted_password, $user->salt))
|
||||
// throw new AppException(trans('messages.incorrect_user_password'));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -253,5 +253,6 @@ Your insurance has expired.
|
|||
'insurance_invoice_generated_mail_title' => "Your :deadline insurance invoice has been issued",
|
||||
'the_invoice' => "the invoice",
|
||||
'the_payment' => "the payment",
|
||||
'care_request_already_been_processed' => "The care request has already been processed"
|
||||
'care_request_already_been_processed' => "The care request has already been processed",
|
||||
'successful_authentification' => "Successful authentication"
|
||||
];
|
||||
|
|
|
@ -270,5 +270,6 @@ Votre assurance est arrivée à échéance.
|
|||
'insurance_invoice_generated_mail_title' => "La facture de votre assurance d'échéance :deadline a été émise.",
|
||||
'the_invoice' => "la facture",
|
||||
'the_payment' => "le paiement",
|
||||
'care_request_already_been_processed' => "La demande de prise en charge a deja ete traitée"
|
||||
'care_request_already_been_processed' => "La demande de prise en charge a deja ete traitée",
|
||||
'successful_authentification' => "Authentification réussie"
|
||||
];
|
||||
|
|
|
@ -74,4 +74,5 @@ $router->group(['prefix' => '', 'middleware' => 'auth'], function () use ($route
|
|||
$router->put('authorizations-care-requests', 'AuthorizationCareRequestController@treatRequest');
|
||||
|
||||
$router->get('exclusions/{network_id}', 'HelperController@getNetworkExclusions');
|
||||
$router->post('password-validation', 'HelperController@passwordValidation');
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue