kris@sentientgeeks.com 501a8e18e0 initial commit
2021-02-08 19:09:14 +05:30

76 lines
2.3 KiB
PHP

<?php
namespace App\Http\Requests\SuperAdmin\Companies;
use App\Http\Requests\SuperAdmin\SuperAdminBaseRequest;
use App\Scopes\CompanyScope;
use App\User;
use Illuminate\Validation\Rule;
use Illuminate\Validation\Validator;
class StoreRequest extends SuperAdminBaseRequest
{
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
\Illuminate\Support\Facades\Validator::extend('check_client', function($attribute, $value, $parameters, $validator) {
$user = User::withoutGlobalScopes(['active', CompanyScope::class])
->join('client_details', 'client_details.user_id', 'users.id')
->where('users.email', $value)
->first();
$userTable = User::withoutGlobalScopes(['active', CompanyScope::class])
->where('users.email', $value)->first();
if(!is_null($user) && (!is_null($userTable) && !$userTable->hasRole('admin'))){
return true;
}
elseif((!is_null($userTable) && is_null($user) && $userTable->hasRole('admin')) ){
return false;
}
elseif(is_null($userTable) && is_null($user)){
return true;
}
return false;
});
return [
"company_name" => "required",
"company_email" => "required|email|unique:companies",
'sub_domain' => module_enabled('Subdomain') ?'required|min:4|unique:companies,sub_domain|max:50|sub_domain':'',
"company_phone" => "required",
"address" => "required",
"status" => "required",
'email' => 'required|check_client',
'password' => 'required|min:6'
];
}
public function prepareForValidation()
{
if (empty($this->sub_domain)) {
return;
}
// Add servername domain suffix at the end
$subdomain = trim($this->sub_domain, '.') . '.' . get_domain();
$this->merge(['sub_domain' => $subdomain]);
request()->merge(['sub_domain' => $subdomain]);
}
public function messages()
{
return [
'email.check_client' => 'The email has already been taken.'
];
}
}