mirror of
https://github.com/VueFileManager/vuefilemanager.git
synced 2026-04-29 19:25:57 +00:00
invitation page implementation
This commit is contained in:
@@ -22,6 +22,7 @@ class InviteMembersIntoTeamFolderAction
|
||||
'permission' => $member['permission'],
|
||||
'email' => $member['email'],
|
||||
'parent_id' => $folder->id,
|
||||
'inviter_id' => $folder->user_id,
|
||||
]);
|
||||
|
||||
// Invite user
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
namespace Domain\Teams\Controllers;
|
||||
|
||||
use App\Users\Models\User;
|
||||
use Domain\Teams\Resources\TeamInvitationResource;
|
||||
use Illuminate\Http\Response;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use App\Http\Controllers\Controller;
|
||||
@@ -10,6 +11,15 @@ use Illuminate\Contracts\Routing\ResponseFactory;
|
||||
|
||||
class InvitationsController extends Controller
|
||||
{
|
||||
public function show(TeamFolderInvitation $invitation)
|
||||
{
|
||||
if ($invitation->status === 'accepted') {
|
||||
abort(410);
|
||||
}
|
||||
|
||||
return new TeamInvitationResource($invitation);
|
||||
}
|
||||
|
||||
public function update(
|
||||
TeamFolderInvitation $invitation
|
||||
): ResponseFactory | Response {
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
<?php
|
||||
namespace Domain\Teams\Models;
|
||||
|
||||
use App\Users\Models\User;
|
||||
use Illuminate\Database\Eloquent\Relations\HasOne;
|
||||
use Illuminate\Support\Str;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Database\Factories\TeamFolderInvitationFactory;
|
||||
@@ -34,6 +36,11 @@ class TeamFolderInvitation extends Model
|
||||
return TeamFolderInvitationFactory::new();
|
||||
}
|
||||
|
||||
public function inviter(): HasOne
|
||||
{
|
||||
return $this->hasOne(User::class, 'id', 'inviter_id');
|
||||
}
|
||||
|
||||
protected static function boot()
|
||||
{
|
||||
parent::boot();
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
namespace Domain\Teams\Resources;
|
||||
|
||||
use Illuminate\Http\Resources\Json\JsonResource;
|
||||
@@ -9,14 +10,30 @@ class TeamInvitationResource extends JsonResource
|
||||
{
|
||||
return [
|
||||
'data' => [
|
||||
'id' => $this->id,
|
||||
'type' => 'invitation',
|
||||
'attributes' => [
|
||||
'id' => $this->id,
|
||||
'type' => 'invitation',
|
||||
'attributes' => [
|
||||
'parent_id' => $this->parent_id,
|
||||
'email' => $this->email,
|
||||
'color' => $this->color,
|
||||
'status' => $this->status,
|
||||
'permission' => $this->permission,
|
||||
],
|
||||
'relationships' => [
|
||||
$this->mergeWhen($this->inviter, fn() => [
|
||||
'inviter' => [
|
||||
'data' => [
|
||||
'type' => 'user',
|
||||
'id' => $this->inviter->id,
|
||||
'attributes' => [
|
||||
'name' => $this->inviter->settings->name,
|
||||
'avatar' => $this->inviter->settings->avatar,
|
||||
'color' => $this->inviter->settings->color,
|
||||
],
|
||||
],
|
||||
],
|
||||
]),
|
||||
],
|
||||
],
|
||||
];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user