12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- <?php
- namespace App\Http\Controllers;
- use Illuminate\Http\Request;
- use Auth;
- use App\UserInvite;
- use Illuminate\Support\Str;
- class UserInviteController extends Controller
- {
- public function __construct()
- {
- abort_if(!config('pixelfed.user_invites.enabled'), 404);
- }
- public function create(Request $request)
- {
- abort_unless(Auth::check(), 403);
- return view('settings.invites.create');
- }
- public function show(Request $request)
- {
- abort_unless(Auth::check(), 403);
- $invites = UserInvite::whereUserId(Auth::id())->paginate(10);
- $limit = config('pixelfed.user_invites.limit.total');
- $used = UserInvite::whereUserId(Auth::id())->count();
- return view('settings.invites.home', compact('invites', 'limit', 'used'));
- }
- public function store(Request $request)
- {
- abort_unless(Auth::check(), 403);
- $this->validate($request, [
- 'email' => 'required|email|unique:users|unique:user_invites',
- 'message' => 'nullable|string|max:500',
- 'tos' => 'required|accepted'
- ]);
- $invite = new UserInvite;
- $invite->user_id = Auth::id();
- $invite->profile_id = Auth::user()->profile->id;
- $invite->email = $request->input('email');
- $invite->message = $request->input('message');
- $invite->key = (string) Str::uuid();
- $invite->token = str_random(32);
- $invite->save();
- return redirect(route('settings.invites'));
- }
- }
|