/**
  * Run the migrations.
  *
  * @return void
  */
 public function up()
 {
     $admin = \GoProp\Models\User::where('username', 'admin')->first();
     if (!$admin->profile) {
         $admin->profile()->save(new \GoProp\Models\Profile(['first_name' => 'GoProp', 'last_name' => 'Admin']));
     }
 }
Esempio n. 2
0
 protected function findOrCreateUser($socialUser)
 {
     $authUser = User::where('facebook_id', $socialUser->getId())->orWhere('email', $socialUser->getEmail())->first();
     if ($authUser) {
         return $authUser;
     }
     $user = User::create(['email' => $socialUser->getEmail(), 'facebook_id' => $socialUser->getId()]);
     $user->assignRole('authenticated_user');
     //Set Name
     $exploded = explode(' ', $socialUser->getName());
     $profile = new Profile();
     $profile->first_name = $exploded[0];
     unset($exploded[0]);
     if (isset($exploded[1])) {
         $profile->last_name = implode(' ', $exploded);
     }
     $profile->user()->associate($user);
     /*
     if(!empty($data['profile']['profile_picture']) && $data['profile']['profile_picture']->isValid()){
         $profile->profile_picture = $profile->saveProfilePicture($data['profile']['profile_picture']);
     }
     */
     $profile->profile_picture = $profile->saveRemoteProfilePicture($socialUser->getAvatar());
     $profile->save();
     $extendedProfile = new ExtendedProfile();
     $profile->extendedProfile()->save($extendedProfile);
     $subscriptions = Subscription::all()->pluck('id')->all();
     $user->subscriptions()->sync($subscriptions);
     return $user;
 }
Esempio n. 3
0
 public function update(PropertyFormRequest $request, $id)
 {
     $user = Auth::user();
     $property = Property::withTrashed()->findOrFail($id);
     if ($user->is('property_manager') && $user->profile->province != $property->province) {
         abort(401, 'Unauthorized access.');
     }
     $ownerEmail = $request->get('owner', $user->email);
     $owner = User::where('email', $ownerEmail)->firstOrFail();
     $property->user()->associate($owner);
     if ($request->has('listing_referral')) {
         $listingReferral = User::where('email', $request->input('listing_referral'))->firstOrFail();
         $property->referralList()->associate($listingReferral);
     }
     if ($request->has('selling_agent')) {
         $agentSelling = User::where('email', $request->input('selling_agent'))->firstOrFail();
         $property->agentSell()->associate($agentSelling);
     }
     if ($request->has('selling_referral')) {
         $agentReferral = User::where('email', $request->input('selling_referral'))->firstOrFail();
         $property->referralSell()->associate($agentReferral);
     }
     $data = $request->all();
     if ($request->input('point_map') != 1) {
         $data['latitude'] = NULL;
         $data['longitude'] = NULL;
     }
     $property->fill($data);
     $property->processViewingSchedule($request->all());
     $property->save();
     $checkedPortals = [];
     foreach ($request->input('property_portals', []) as $checkedPortal) {
         $checkedPortals[$checkedPortal] = ['user_id' => $user->id];
     }
     $property->propertyPortals()->sync($checkedPortals);
     //Clear all packages
     $property->packages()->detach();
     if ($request->input('for_sell') && $request->has('sell_package')) {
         $property->packages()->attach([$request->input('sell_package') => ['addons' => implode('|', $request->input('features.sell', []))]]);
     }
     if ($request->input('for_rent') && $request->has('rent_package')) {
         $property->packages()->attach([$request->input('rent_package') => ['addons' => implode('|', $request->input('features.rent', []))]]);
     }
     return redirect($request->input('backUrl'))->with('messages', ['Property is successfully saved.']);
 }
Esempio n. 4
0
 public function notifySignedUpReferralAgents()
 {
     $submissions = FormSubmission::groupBy('email')->get();
     foreach ($submissions as $submission) {
         if (User::where('email', $submission->email)->count() < 1) {
             $password = str_random(8);
             $user = new User(['email' => $submission->email, 'status' => User::STATUS_ACTIVE, 'password' => bcrypt($password)]);
             $user->manage_property = FALSE;
             $user->save();
             $user->assignRole('agent');
             $names = explode(' ', $submission->getData('name'));
             $profile = new Profile();
             $profile->fill(['first_name' => array_shift($names), 'last_name' => !empty($names) ? implode(' ', $names) : '', 'mobile_phone_number' => $submission->getData('contact_number'), 'address' => $submission->getData('address') . ', ' . $submission->getData('city')]);
             $profile->user()->associate($user);
             $profile->save();
             $user->load('profile');
             $this->notifyReferralAgent($user, $password);
         }
     }
 }