This commit is contained in:
Louis Mazin 2026-10-14 02:52:33 +02:00
parent 8f99ce8961
commit 607c793b40
2 changed files with 5 additions and 2 deletions

View File

@ -174,7 +174,7 @@ def revoke_invitation(request,invitation_id):
def get_valid_invitation(token,lock=False):
qs=SpaceInvitation.objects.select_related('parent_space')
qs=SpaceInvitation.objects.select_related('parent_space', 'created_by')
if lock:qs=qs.select_for_update()
try:inv=qs.get(token_hash=hash_token(token))
except SpaceInvitation.DoesNotExist:return None
@ -190,7 +190,10 @@ def get_valid_invitation(token,lock=False):
def invitation_preview(request,token):
inv=get_valid_invitation(token)
if inv is None:return error('Invitation invalide ou expirée.',404)
inviter = inv.created_by
inviter_name = inviter.get_full_name().strip() or inviter.get_username()
return Response({'parent_name':inv.parent_space.display_name,
'inviter_name':inviter_name,
'can_view_parent':inv.can_view_parent,
'can_write_parent':inv.can_write_parent,
'can_invite':inv.can_invite,

View File

@ -40,7 +40,7 @@ export default function InvitationPage({ token }) {
className="block size-full object-contain"
/></div><div><h1 className="text-xl font-bold">GoodDrive</h1><p className="text-xs text-muted-foreground">Un espace pour ceux qui en ont besoin.</p></div></div>
{done ? <div className="space-y-4"><h2 className="text-2xl font-semibold">Bienvenue sur GoodDrive !</h2><p>Ton espace personnel et ton espace partagé sont prêts. Tu peux maintenant te connecter.</p><Button onClick={() => window.location.assign('/')} className="w-full">Se connecter <ArrowRight /></Button></div>
: info ? <><div><h2 className="text-2xl font-semibold">Créer mon espace</h2><p className="mt-2 text-sm text-muted-foreground">Tu es invité dans l'arborescence de « {info.parent_name} ». Tu disposeras de « Mes fichiers », privé, et d’un accès à l’espace partagé attribué.</p></div>
: info ? <><div><h2 className="text-2xl font-semibold">Créer mon espace</h2><p className="mt-2 text-sm text-muted-foreground">Tu as été invité par <span className="font-medium text-foreground">{info.inviter_name}</span>. Tu auras un espace privé de 50 Go à disposition, ainsi qu'un accès à l'espace « {info.parent_name} ».</p></div>
<form onSubmit={submit} className="space-y-3">
<div className="grid grid-cols-1 gap-3 sm:grid-cols-2"><label className="block text-sm font-medium">Prénom<Input required maxLength={150} autoComplete="given-name" value={firstName} onChange={e=>setFirstName(e.target.value)}/></label><label className="block text-sm font-medium">Nom<Input required maxLength={150} autoComplete="family-name" value={lastName} onChange={e=>setLastName(e.target.value)}/></label></div>
<label className="block text-sm font-medium">Identifiant<Input required maxLength={150} autoComplete="username" value={username} onChange={e=>setUsername(e.target.value)} /></label>