5
5
use Illuminate \Support \Facades \Gate ;
6
6
use Illuminate \Support \Facades \Mail ;
7
7
use Illuminate \Support \Facades \Validator ;
8
+ use Illuminate \Validation \Rule ;
8
9
use Laravel \Jetstream \Contracts \InvitesTeamMembers ;
9
10
use Laravel \Jetstream \Events \InvitingTeamMember ;
10
11
use Laravel \Jetstream \Jetstream ;
@@ -51,7 +52,7 @@ protected function validate($team, string $email, ?string $role)
51
52
Validator::make ([
52
53
'email ' => $ email ,
53
54
'role ' => $ role ,
54
- ], $ this ->rules (), [
55
+ ], $ this ->rules ($ team ), [
55
56
'email.unique ' => __ ('This user has already been invited to the team. ' ),
56
57
])->after (
57
58
$ this ->ensureUserIsNotAlreadyOnTeam ($ team , $ email )
@@ -61,12 +62,15 @@ protected function validate($team, string $email, ?string $role)
61
62
/**
62
63
* Get the validation rules for inviting a team member.
63
64
*
65
+ * @param mixed $team
64
66
* @return array
65
67
*/
66
- protected function rules ()
68
+ protected function rules ($ team )
67
69
{
68
70
return array_filter ([
69
- 'email ' => ['required ' , 'email ' , 'unique:team_invitations ' ],
71
+ 'email ' => ['required ' , 'email ' , Rule::unique ('team_invitations ' )->where (function ($ query ) use ($ team ) {
72
+ $ query ->where ('team_id ' , $ team ->id );
73
+ })],
70
74
'role ' => Jetstream::hasRoles ()
71
75
? ['required ' , 'string ' , new Role ]
72
76
: null ,
0 commit comments