coolify/app/Livewire/Team/Member.php

41 lines
1.0 KiB
PHP
Raw Normal View History

2023-06-02 12:34:45 +02:00
<?php
2023-12-07 19:06:32 +01:00
namespace App\Livewire\Team;
2023-06-02 12:34:45 +02:00
use App\Models\User;
2023-09-15 11:19:36 +02:00
use Illuminate\Support\Facades\Cache;
2023-06-02 12:34:45 +02:00
use Livewire\Component;
class Member extends Component
{
public User $member;
2023-06-09 15:55:21 +02:00
public function makeAdmin()
{
2023-08-22 17:44:49 +02:00
$this->member->teams()->updateExistingPivot(currentTeam()->id, ['role' => 'admin']);
2023-12-07 19:06:32 +01:00
$this->dispatch('reloadWindow');
2023-06-09 15:55:21 +02:00
}
public function makeOwner()
{
$this->member->teams()->updateExistingPivot(currentTeam()->id, ['role' => 'owner']);
$this->dispatch('reloadWindow');
}
2024-06-10 22:43:34 +02:00
2023-06-09 15:55:21 +02:00
public function makeReadonly()
{
2023-08-22 17:44:49 +02:00
$this->member->teams()->updateExistingPivot(currentTeam()->id, ['role' => 'member']);
2023-12-07 19:06:32 +01:00
$this->dispatch('reloadWindow');
2023-06-09 15:55:21 +02:00
}
2023-06-08 11:43:14 +02:00
public function remove()
2023-06-02 12:34:45 +02:00
{
2023-08-22 17:44:49 +02:00
$this->member->teams()->detach(currentTeam());
2023-09-15 11:19:36 +02:00
Cache::forget("team:{$this->member->id}");
2024-06-10 22:43:34 +02:00
Cache::remember('team:'.$this->member->id, 3600, function () {
2023-09-15 11:19:36 +02:00
return $this->member->teams()->first();
});
2023-12-07 19:06:32 +01:00
$this->dispatch('reloadWindow');
2023-06-02 12:34:45 +02:00
}
}