Esempio n. 1
0
 /**
  * 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);
     }
 }