This repository has been archived on 2024-04-08. You can view files and clone it, but cannot push or open issues or pull requests.
Files
site-base/spark/src/Http/Controllers/Settings/Teams/MailedInvitationController.php
2017-11-03 16:26:07 +11:00

75 lines
1.9 KiB
PHP

<?php
namespace Laravel\Spark\Http\Controllers\Settings\Teams;
use Laravel\Spark\Spark;
use Illuminate\Http\Request;
use Laravel\Spark\Invitation;
use Laravel\Spark\Http\Controllers\Controller;
use Laravel\Spark\Contracts\Repositories\TeamRepository;
use Laravel\Spark\Http\Requests\Settings\Teams\CreateInvitationRequest;
use Laravel\Spark\Contracts\Interactions\Settings\Teams\SendInvitation;
class MailedInvitationController extends Controller
{
/**
* The team repository implementation.
*
* @var \Laravel\Spark\Contracts\Repositories\TeamRepository
*/
protected $teams;
/**
* Create a new controller instance.
*
* @param TeamRepository $teams
* @return void
*/
public function __construct(TeamRepository $teams)
{
$this->teams = $teams;
$this->middleware('auth');
}
/**
* Get all of the mailed invitations for the given team.
*
* @param Request $request
* @param \Laravel\Spark\Team $team
* @return Response
*/
public function all(Request $request, $team)
{
abort_unless($request->user()->onTeam($team), 404);
return $team->invitations;
}
/**
* 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]);
}
/**
* Cancel / delete the given invitation.
*
* @param Request $request
* @param \Laravel\Spark\Invitation $invitation
* @return Response
*/
public function destroy(Request $request, Invitation $invitation)
{
abort_unless($request->user()->ownsTeam($invitation->team), 404);
$invitation->delete();
}
}