示例#1
1
 /**
  * Get the base validator instance for a register request.
  *
  * @return \Illuminate\Validation\Validator
  */
 public function baseValidator()
 {
     $validator = Spark::interact(CreateUser::class . '@validator', [$this]);
     $validator->sometimes('plan', 'required|in:' . Spark::activePlanIdList(), function () {
         return Spark::needsCardUpFront();
     });
     return $validator;
 }
示例#2
0
 /**
  * Subscribe the given user to a subscription plan.
  *
  * @param  RegisterRequest  $request
  * @param  \Illuminate\Contracts\Auth\Authenticatable  $user
  * @return \Illuminate\Contracts\Auth\Authenticatable
  */
 protected function subscribe($request, $user)
 {
     if (!$request->hasPaidPlan()) {
         return $user;
     }
     Spark::interact(Subscribe::class, [$user, $request->plan(), true, $request->all()]);
     return $user;
 }
示例#3
0
 /**
  * Execute the given interaction.
  *
  * This performs the common validate and handle flow of some interactions.
  *
  * @param  Request  $request
  * @param  string  $interaction
  * @param  array  $parameters
  * @return void
  */
 public function interaction(Request $request, $interaction, array $parameters)
 {
     $validator = Spark::interact($interaction . '@validator', $parameters);
     if ($validator->fails()) {
         $this->throwValidationException($request, $validator);
     }
     return Spark::interact($interaction, $parameters);
 }
示例#4
0
 /**
  * Get the team matching the given ID.
  *
  * @param  Request  $request
  * @param  string  $teamId
  * @return Response
  */
 public function show(Request $request, $teamId)
 {
     $team = Spark::interact(TeamRepository::class . '@find', [$teamId]);
     abort_unless($request->user()->onTeam($team), 404);
     if ($request->user()->ownsTeam($team)) {
         $team->load('subscriptions');
         $team->shouldHaveOwnerVisibility();
     }
     return $team;
 }
 /**
  * Redeem the given coupon code.
  *
  * @param  Request  $request
  * @return Response
  */
 public function redeem(Request $request)
 {
     $this->validate($request, ['coupon' => 'required']);
     // We will verify that the coupon can actually be redeemed. In some cases even
     // valid coupons can not get redeemed by an existing user if this coupon is
     // running as a promotion for brand new registrations to the application.
     if (!$this->coupons->canBeRedeemed($request->coupon)) {
         return response()->json(['coupon' => ['This coupon code is invalid.']], 422);
     }
     Spark::interact(RedeemCoupon::class, [$request->user(), $request->coupon]);
 }
 /**
  * Disable two-factor authentication for the user.
  *
  * @param  Request  $request
  * @return Response
  */
 public function disable(Request $request)
 {
     Spark::interact(DisableTwoFactorAuth::class, [$request->user()]);
     $request->user()->forceFill(['uses_two_factor_auth' => false])->save();
 }
示例#7
0
 /**
  * {@inheritdoc}
  */
 public function handle($user, array $data)
 {
     event(new TeamCreated($team = Spark::interact(TeamRepository::class . '@create', [$user, $data])));
     Spark::interact(AddTeamMemberContract::class, [$team, $user, 'owner']);
     return $team;
 }
示例#8
0
 /**
  * Create the subscription for the team.
  *
  * @param  CreateSubscriptionRequest  $request
  * @param  Team  $team
  * @return Response
  */
 public function store(CreateSubscriptionRequest $request, Team $team)
 {
     Spark::interact(SubscribeTeam::class, [$team, $request->plan(), $request->all()]);
 }
 /**
  * Get the current team for the user.
  *
  * @param  \Illuminate\Contracts\Auth\Authenticatable  $user
  * @return \Laravel\Spark\Team|null
  */
 protected function currentTeam($user)
 {
     if (Spark::usesTeams() && $user->currentTeam()) {
         return Spark::interact(TeamRepository::class . '@find', [$user->currentTeam()->id]);
     }
 }
 /**
  * Accept the given invitations.
  *
  * @param  Request  $request
  * @param  \Laravel\Spark\Invitation  $invitation
  * @return Response
  */
 public function accept(Request $request, Invitation $invitation)
 {
     abort_unless($request->user()->id == $invitation->user_id, 404);
     Spark::interact(AddTeamMember::class, [$invitation->team, $request->user()]);
     $invitation->delete();
 }
 /**
  * Create a new invitation.
  *
  * @param  CreateInvitationRequest  $request
  * @param  \Laravel\Spark\Team  $team
  * @return Response
  */
 public function store(CreateInvitationRequest $request, $team)
 {
     Spark::interact(SendInvitation::class, [$team, $request->email]);
 }
示例#12
0
 /**
  * {@inheritdoc}
  */
 public function handle($request)
 {
     return Spark::interact(UserRepository::class . '@create', [$request->all()]);
 }
示例#13
0
 /**
  * Create the subscription for the user.
  *
  * @param  CreateSubscriptionRequest  $request
  * @return Response
  */
 public function store(CreateSubscriptionRequest $request)
 {
     $plan = Spark::plans()->where('id', $request->plan)->first();
     Spark::interact(Subscribe::class, [$request->user(), $plan, false, $request->all()]);
 }
 /**
  * Disable two-factor authentication for the given user.
  *
  * @param  \Illuminate\Contracts\Auth\Authenticatable  $user
  * @return void
  */
 protected function disableTwoFactorAuth($user)
 {
     Spark::interact(DisableTwoFactorAuth::class, [$user]);
     $user->forceFill(['uses_two_factor_auth' => false])->save();
 }
 /**
  * Update the payment method for the user.
  *
  * @param  UpdatePaymentMethodRequest  $request
  * @return Response
  */
 public function update(UpdatePaymentMethodRequest $request)
 {
     Spark::interact(UpdatePaymentMethod::class, [$request->user(), $request->all()]);
 }
示例#16
0
 /**
  * Get the users based on the incoming search query.
  *
  * @param  Request  $request
  * @return Response
  */
 public function performBasicSearch(Request $request)
 {
     $query = str_replace('*', '%', $request->input('query'));
     return Spark::interact(UserRepository::class . '@search', [$query, $request->user()]);
 }
示例#17
0
 /**
  * Handle a registration request for the application.
  *
  * @param  RegisterRequest  $request
  * @return Response
  */
 public function register(RegisterRequest $request)
 {
     Auth::login($user = Spark::interact(Register::class, [$request]));
     event(new UserRegistered($user));
     return response()->json(['redirect' => $this->redirectPath()]);
 }
示例#18
0
 /**
  * Verify the given authentication token.
  *
  * @param  Request  $request
  * @return Response
  */
 public function verifyToken(Request $request)
 {
     $this->validate($request, ['token' => 'required']);
     // If there is no authentication ID stored in the session, it means that the user
     // hasn't made it through the login screen so we'll just redirect them back to
     // the login view. They must have hit the route manually via a specific URL.
     if (!$request->session()->has('spark:auth:id')) {
         return redirect('login');
     }
     $user = Spark::user()->findOrFail($request->session()->pull('spark:auth:id'));
     // Next, we'll verify the actual token with our two-factor authentication service
     // to see if the token is valid. If it is, we can login the user and send them
     // to their intended location within the protected part of this application.
     if (Spark::interact(Verify::class, [$user, $request->token])) {
         Auth::login($user, $request->session()->pull('spark:auth:remember', false));
         return redirect()->intended($this->redirectPath());
     } else {
         return back();
     }
 }
示例#19
0
 /**
  * Get the current user of the appliation.
  *
  * @return Response
  */
 public function current()
 {
     return Spark::interact(UserRepository::class . '@current');
 }
 /**
  * Update the payment method for the user.
  *
  * @param  UpdatePaymentMethodRequest  $request
  * @param  Team  $team
  * @return Response
  */
 public function update(UpdatePaymentMethodRequest $request, Team $team)
 {
     abort_unless($request->user()->ownsTeam($team), 403);
     Spark::interact(UpdatePaymentMethod::class, [$team, $request->all()]);
 }