diff --git a/app/Http/Controllers/Auth/LoginController.php b/app/Http/Controllers/Auth/LoginController.php index 3041b1e3fd80..6e6419becf98 100644 --- a/app/Http/Controllers/Auth/LoginController.php +++ b/app/Http/Controllers/Auth/LoginController.php @@ -476,4 +476,62 @@ class LoginController extends BaseController ->header('X-App-Version', config('ninja.app_version')) ->header('X-Api-Version', config('ninja.minimum_client_version')); } + + public function redirectToProvider(string $provider) + { + //'https://www.googleapis.com/auth/gmail.send','email','profile','openid' + $scopes = []; + + if($provider == 'google'){ + $scopes = ['https://www.googleapis.com/auth/gmail.send','email','profile','openid']; + } + + if (request()->has('code')) { + return $this->handleProviderCallback($provider); + } else { + return Socialite::driver($provider)->scopes($scopes)->redirect(); + } + } + + public function handleProviderCallback(string $provider) + { + $socialite_user = Socialite::driver($provider) + ->stateless() + ->user(); + + // if($user = OAuth::handleAuth($socialite_user, $provider)) + // { + // Auth::login($user, true); + + // return redirect($this->redirectTo); + // } + // else if(MultiDB::checkUserEmailExists($socialite_user->getEmail())) + // { + // Session::flash('error', 'User exists in system, but not with this authentication method'); //todo add translations + + // return view('auth.login'); + // } + // else { + // //todo + // $name = OAuth::splitName($socialite_user->getName()); + + // $new_account = [ + // 'first_name' => $name[0], + // 'last_name' => $name[1], + // 'password' => '', + // 'email' => $socialite_user->getEmail(), + // 'oauth_user_id' => $socialite_user->getId(), + // 'oauth_provider_id' => $provider + // ]; + + // $account = CreateAccount::dispatchNow($new_account); + + // Auth::login($account->default_company->owner(), true); + + // $cookie = cookie('db', $account->default_company->db); + + // return redirect($this->redirectTo)->withCookie($cookie); + // } + + } } diff --git a/app/Http/Controllers/BaseController.php b/app/Http/Controllers/BaseController.php index ae8b7293042c..79726b5b21b2 100644 --- a/app/Http/Controllers/BaseController.php +++ b/app/Http/Controllers/BaseController.php @@ -164,7 +164,7 @@ class BaseController extends Controller */ public function notFoundClient() { - return abort(404); + abort(404, 'Page not found in client portal.'); } /** diff --git a/app/Http/Controllers/ClientPortal/DocumentController.php b/app/Http/Controllers/ClientPortal/DocumentController.php index d2087292a41d..d866767c3eba 100644 --- a/app/Http/Controllers/ClientPortal/DocumentController.php +++ b/app/Http/Controllers/ClientPortal/DocumentController.php @@ -68,7 +68,7 @@ class DocumentController extends Controller $documents->map(function ($document) { if (auth()->user('contact')->client->id != $document->documentable->id) { - abort(401); + abort(401, 'Permission denied'); } }); diff --git a/app/Http/Controllers/ClientPortal/EntityViewController.php b/app/Http/Controllers/ClientPortal/EntityViewController.php index 42c0596b8bf0..3308e8a5c613 100644 --- a/app/Http/Controllers/ClientPortal/EntityViewController.php +++ b/app/Http/Controllers/ClientPortal/EntityViewController.php @@ -31,7 +31,7 @@ class EntityViewController extends Controller public function index(string $entity_type, string $invitation_key) { if (! in_array($entity_type, $this->entity_types)) { - abort(404); + abort(404, 'Entity not found'); } $invitation_entity = sprintf('App\\Models\\%sInvitation', ucfirst($entity_type)); @@ -91,7 +91,7 @@ class EntityViewController extends Controller public function handlePassword(string $entity_type, string $invitation_key) { if (! in_array($entity_type, $this->entity_types)) { - abort(404); + abort(404, 'Entity not found'); } $invitation_entity = sprintf('App\\Models\\%sInvitation', ucfirst($entity_type)); diff --git a/app/Http/Controllers/ClientPortal/PaymentMethodController.php b/app/Http/Controllers/ClientPortal/PaymentMethodController.php index 12a60bbd50a8..14b4221497d5 100644 --- a/app/Http/Controllers/ClientPortal/PaymentMethodController.php +++ b/app/Http/Controllers/ClientPortal/PaymentMethodController.php @@ -149,6 +149,6 @@ class PaymentMethodController extends Controller return $gateway = auth()->user()->client->getBankTransferGateway(); } - return abort(404); + abort(404, 'Gateway not found.'); } } diff --git a/app/Http/Controllers/Contact/LoginController.php b/app/Http/Controllers/Contact/LoginController.php index f6934a1839b1..229714886698 100644 --- a/app/Http/Controllers/Contact/LoginController.php +++ b/app/Http/Controllers/Contact/LoginController.php @@ -93,11 +93,16 @@ class LoginController extends BaseController public function redirectToProvider(string $provider) { //'https://www.googleapis.com/auth/gmail.send','email','profile','openid' - // + $scopes = []; + + if($provider == 'google'){ + $scopes = ['https://www.googleapis.com/auth/gmail.send','email','profile','openid']; + } + if (request()->has('code')) { return $this->handleProviderCallback($provider); } else { - return Socialite::driver($provider)->scopes()->redirect(); + return Socialite::driver($provider)->scopes($scopes)->redirect(); } } @@ -231,43 +236,5 @@ class LoginController extends BaseController } } - /* - * Received the returning object from the provider - * which we will use to resolve the user, we return the response in JSON format - * - * @return json - public function handleProviderCallbackApiUser(string $provider) - { - $socialite_user = Socialite::driver($provider)->stateless()->user(); - - if($user = OAuth::handleAuth($socialite_user, $provider)) - { - return $this->itemResponse($user); - } - else if(MultiDB::checkUserEmailExists($socialite_user->getEmail())) - { - - return $this->errorResponse(['message'=>'User exists in system, but not with this authentication method'], 400); - - } - else { - //todo - $name = OAuth::splitName($socialite_user->getName()); - - $new_account = [ - 'first_name' => $name[0], - 'last_name' => $name[1], - 'password' => '', - 'email' => $socialite_user->getEmail(), - ]; - - $account = CreateAccount::dispatchNow($new_account); - - return $this->itemResponse($account->default_company->owner()); - } - - - } - */ } diff --git a/app/Http/Controllers/TaskController.php b/app/Http/Controllers/TaskController.php index 7bd10084893c..59778047a259 100644 --- a/app/Http/Controllers/TaskController.php +++ b/app/Http/Controllers/TaskController.php @@ -643,18 +643,12 @@ class TaskController extends BaseController $sort_status_id = $this->decodePrimaryKey($key); - // nlog($task_list); - foreach ($task_list as $key => $task) { - - // nlog($task); $task_record = Task::where('id', $this->decodePrimaryKey($task)) ->where('company_id', auth()->user()->company()->id) ->first(); - - // nlog($task_record->id); $task_record->status_order = $key; $task_record->status_id = $sort_status_id; @@ -663,6 +657,6 @@ class TaskController extends BaseController } - return response()->json(['message' => 'Ok'],200); + return response()->json(['message' => 'Ok'], 200); } } diff --git a/app/Http/Middleware/ContactRegister.php b/app/Http/Middleware/ContactRegister.php index 33c9549a781a..b19840b74ffb 100644 --- a/app/Http/Middleware/ContactRegister.php +++ b/app/Http/Middleware/ContactRegister.php @@ -52,6 +52,6 @@ class ContactRegister return $next($request); } - return abort(404); + abort(404, 'ContactRegister Middlware'); } } diff --git a/app/Http/Requests/ClientPortal/RegisterRequest.php b/app/Http/Requests/ClientPortal/RegisterRequest.php index 5a0405f6e06f..440ff6bccc4d 100644 --- a/app/Http/Requests/ClientPortal/RegisterRequest.php +++ b/app/Http/Requests/ClientPortal/RegisterRequest.php @@ -53,6 +53,6 @@ class RegisterRequest extends FormRequest return $company; } - abort(404); + abort(404, 'Register request not found.'); } } diff --git a/app/Jobs/Company/CreateCompany.php b/app/Jobs/Company/CreateCompany.php index 80abe9b56948..66ef334fdfb6 100644 --- a/app/Jobs/Company/CreateCompany.php +++ b/app/Jobs/Company/CreateCompany.php @@ -12,7 +12,9 @@ namespace App\Jobs\Company; use App\DataMapper\CompanySettings; +use App\Libraries\MultiDB; use App\Models\Company; +use App\Utils\Ninja; use App\Utils\Traits\MakesHash; use Illuminate\Foundation\Bus\Dispatchable; use Illuminate\Http\Request; @@ -60,6 +62,12 @@ class CreateCompany $company->subdomain = isset($this->request['subdomain']) ? $this->request['subdomain'] : ''; $company->custom_fields = new \stdClass; $company->default_password_timeout = 1800000; + + if(Ninja::isHosted()) + $company->subdomain = MultiDB::randomSubdomainGenerator(); + else + $company->subdomain = ''; + $company->save(); return $company; diff --git a/app/Listeners/Activity/VendorUpdatedActivity.php b/app/Listeners/Activity/VendorUpdatedActivity.php index 6f45b9bba682..5a68154e54c0 100644 --- a/app/Listeners/Activity/VendorUpdatedActivity.php +++ b/app/Listeners/Activity/VendorUpdatedActivity.php @@ -45,7 +45,7 @@ class VendorUpdatedActivity implements ShouldQueue $fields = new stdClass; -$user_id = array_key_exists('user_id', $event->event_vars) ? $event->event_vars['user_id'] : $event->vendor->user_id; + $user_id = array_key_exists('user_id', $event->event_vars) ? $event->event_vars['user_id'] : $event->vendor->user_id; $fields->vendor_id = $vendor->id; $fields->user_id = $user_id; diff --git a/routes/web.php b/routes/web.php index f0110eca2253..af15b87590b9 100644 --- a/routes/web.php +++ b/routes/web.php @@ -24,7 +24,7 @@ Route::post('password/reset', 'Auth\ResetPasswordController@reset')->middleware( * Social authentication */ -// Route::get('auth/{provider}', 'Auth\LoginController@redirectToProvider'); +Route::get('auth/{provider}', 'Auth\LoginController@redirectToProvider'); // Route::get('auth/{provider}/create', 'Auth\LoginController@redirectToProviderAndCreate'); /*