/** * Check if user has been activated or suspended * * @param $token * @return \Illuminate\Http\RedirectResponse */ public function checkContributorStatus($token) { $contributor = Contributor::whereToken($token)->firstOrFail(); if ($contributor->status != 'pending') { return redirect(route('login.form'))->with('status', 'Your account has been ' . $contributor->status); } return $contributor; }
/** * Register via twitter. * * @param Request $request * @return mixed */ public function registerTwitter(Request $request) { $twitterId = $request->input('id'); $contributor = Contributor::whereVendor('twitter')->whereToken($twitterId)->first(); if (empty($contributor)) { $isInvalid = Contributor::whereEmail($request->input('email'))->orWhere('username', '=', $request->input('username'))->first(); if ($isInvalid) { return response()->json(['request_id' => uniqid(), 'status' => 'exist', 'login' => 'restrict', 'message' => 'Email is already exist, registered via ' . $isInvalid->vendor, 'timestamp' => Carbon::now()], 400); } $contributor = new Contributor(); $cover = file_get_contents($request->input('cover')); file_put_contents('images/covers/twitter-' . $twitterId . '.jpg', $cover); $avatar = file_get_contents($request->input('avatar')); file_put_contents('images/contributors/twitter-' . $twitterId . '.jpg', $avatar); $contributor->token = $twitterId; $contributor->api_token = str_random(60); $contributor->name = $request->input('name'); $contributor->username = $request->input('username'); $contributor->password = Hash::make(uniqid()); $contributor->email = $request->input('username') . '@twitter.com'; $contributor->vendor = 'twitter'; $contributor->status = 'activated'; $contributor->location = $request->input('location'); $contributor->about = $request->input('about'); $contributor->twitter = 'https://www.twitter.com/' . $request->input('username'); $contributor->avatar = 'twitter-' . $twitterId . '.jpg'; $contributor->cover = 'twitter-' . $twitterId . '.jpg'; if ($contributor->save()) { Activity::create(['contributor_id' => $contributor->id, 'activity' => Activity::registerActivity($contributor->username, 'twitter')]); $this->sendAdminContributorNotification($contributor); $facebookUser = Contributor::whereToken($twitterId)->firstOrFail(); $user = $contributor->profile($facebookUser->username, true); $user->article_total = $user->articles()->where('status', 'published')->count(); $user->followers_total = $user->followers()->count(); $user->following_total = $user->following()->count(); return response()->json(['request_id' => uniqid(), 'status' => $user->status, 'login' => 'granted', 'message' => 'Registering twitter is success', 'timestamp' => Carbon::now(), 'user' => $user], 200); } else { return response()->json(['request_id' => uniqid(), 'status' => 'failure', 'login' => 'restrict', 'message' => Lang::get('alert.database.generic'), 'timestamp' => Carbon::now()], 500); } } else { $user = $contributor->profile($contributor->username, true); $user->article_total = $user->articles()->where('status', 'published')->count(); $user->followers_total = $user->followers()->count(); $user->following_total = $user->following()->count(); return response()->json(['request_id' => uniqid(), 'status' => $user->status, 'login' => 'granted', 'message' => 'Login twitter is success', 'timestamp' => Carbon::now(), 'user' => $user], 200); } }