⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.142
Server IP:
217.76.53.76
Server:
Linux vmi1397931.contaboserver.net 5.4.0-105-generic #119-Ubuntu SMP Mon Mar 7 18:49:24 UTC 2022 x86_64
Server Software:
Apache
PHP Version:
8.2.27
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
www
/
wwwroot
/
mydetails.com.ng
/
app
/
Repositories
/
View File Name :
UserRepository.php
fieldSearchable; } /** * {@inheritDoc} */ public function model() { return User::class; } /** * @return mixed */ public function store($input) { try { DB::beginTransaction(); $tenant = MultiTenant::create(['tenant_username' => $input['first_name']]); $userDefaultLanguage = Setting::where('key', 'user_default_language')->first()->value ?? 'en'; $input['tenant_id'] = $tenant->id; $input['language'] = $userDefaultLanguage; $input['password'] = Hash::make($input['password']); if (isset($input['role'])) { $user = User::create($input)->assignRole(Role::ROLE_SUPER_ADMIN); $user->email_verified_at = Carbon::now(); $user->is_active = true; $user->save(); } else { $input['affiliate_code'] = generateUniqueAffiliateCode(); $user = User::create($input)->assignRole(Role::ROLE_ADMIN); } if (isset($input['profile']) && ! empty($input['profile'])) { $user->addMedia($input['profile'])->toMediaCollection(User::PROFILE, config('app.media_disc')); } if (isset($input['is_admin']) == 'false') { $user->sendEmailVerificationNotification(); } if (isset($input['plan_id'])) { $plan = Plan::whereId($input['plan_id'])->first(); } else { $plan = Plan::whereIsDefault(true)->first(); } if(!isset($input['role'])){ $subscription = new Subscription(); $subscription->plan_id = $plan->id; $subscription->starts_at = Carbon::now(); $subscription->ends_at = $plan->frequency == Plan::UNLIMITED ? Carbon::now()->addYears(100) : Carbon::now()->addDays($plan->trial_days); $subscription->plan_amount = $plan->price; $subscription->plan_frequency = $plan->frequency; $subscription->trial_ends_at = $plan->frequency == Plan::UNLIMITED ? Carbon::now()->addYears(100) : Carbon::now()->addDays($plan->trial_days); $subscription->no_of_vcards = $plan->no_of_vcards; $subscription->tenant_id = $input['tenant_id']; $subscription->status = Subscription::ACTIVE; $subscription->saveQuietly(); } DB::commit(); return $user; } catch (Exception $e) { DB::rollBack(); throw new UnprocessableEntityHttpException($e->getMessage()); } } /** * @return Builder|Builder[]|Collection|Model|int */ public function update($input,$user) { if (isset($input['contact'])) { $input['contact'] = str_replace(' ', '', $input['contact']); } $currentPlan = Subscription::with(['plan']) ->whereTenantId($user->tenant_id) ->where('status', Subscription::ACTIVE)->latest()->first(); if (isset($input['plan_id']) && $input['plan_id'] != $currentPlan->plan_id) { $subscription = Subscription::whereTenantId($user->tenant_id)->first(); $plan = Plan::whereId($input['plan_id'])->first(); $subscription->update([ 'plan_id' => $plan->id, 'starts_at' => Carbon::now(), 'ends_at' => $plan->frequency == Plan::UNLIMITED ? Carbon::now()->addYears(100) : Carbon::now()->addDays($plan->trial_days), 'plan_amount' => $plan->price, 'plan_frequency' => $plan->frequency, 'trial_ends_at' => $plan->frequency == Plan::UNLIMITED ? Carbon::now()->addYears(100) : Carbon::now()->addDays($plan->trial_days), 'no_of_vcards' => $plan->no_of_vcards, 'status' => Subscription::ACTIVE, ]); } $user->update($input); if (isset($input['profile']) && ! empty($input['profile'])) { $user->clearMediaCollection(User::PROFILE); $user->addMedia($input['profile'])->toMediaCollection(User::PROFILE, config('app.media_disc')); } return $user; } public function updateProfile($userInput): bool { try { DB::beginTransaction(); $user = Auth::user(); $userInput['contact'] = str_replace(' ', '', $userInput['contact']); if ($userInput['email'] != $user->email) { $token = Str::random(60); EmailVerification::create([ 'user_id' => $user->id, 'email' => $userInput['email'], 'token' => $token, ]); $url = url(config('app_domain').'/change-email-verification/'.$user->id.'/'.$token); $data = [ 'user' => $user, 'url' => $url, ]; Mail::to($userInput['email']) ->send(new VerifyMail($data)); } $userInput['email'] = $user->email; $user->update($userInput); if (isset($userInput['profile']) && ! empty($userInput['profile'])) { $user->clearMediaCollection(User::PROFILE); $user->addMedia($userInput['profile'])->toMediaCollection(User::PROFILE, config('app.media_disc')); } DB::commit(); return true; } catch (\Exception $e) { DB::rollBack(); throw new UnprocessableEntityHttpException($e->getMessage()); } } }