user()->isAdmin(); } public function rules() { $rules = []; $rules['first_name'] = 'required|string|max:100'; $rules['last_name'] = 'required|string|max:100'; if (config('ninja.db.multi_db_enabled')) { $rules['email'] = ['email', new ValidUserForCompany(), new AttachableUser()]; } else { $rules['email'] = ['email', new AttachableUser()]; } if (auth()->user()->company()->account->isFreeHostedClient()) { $rules['hosted_users'] = new CanAddUserRule(auth()->user()->company()->account); } return $rules; } protected function prepareForValidation() { $input = $this->all(); //unique user rule - check company_user table for user_id / company_id / account_id if none exist we can add the user. ELSE return false //nlog($this->all()); //nlog($this->input('company_user.account')); // nlog($this->input('company_user.account.id')); // nlog($this->input('company_user.account.id')); if (isset($input['company_user'])) { if (! isset($input['company_user']['is_admin'])) { $input['company_user']['is_admin'] = false; } if (! isset($input['company_user']['permissions'])) { $input['company_user']['permissions'] = ''; } if (! isset($input['company_user']['settings'])) { //$input['company_user']['settings'] = DefaultSettings::userSettings(); $input['company_user']['settings'] = null; } } else { $input['company_user'] = [ //'settings' => DefaultSettings::userSettings(), 'settings' => null, 'permissions' => '', ]; } $this->replace($input); } //@todo make sure the user links back to the account ID for this company!!!!!! public function fetchUser() :User { $user = MultiDB::hasUser(['email' => $this->input('email')]); if (! $user) { $user = UserFactory::create(auth()->user()->account->id); } return $user; } }