diff --git a/app/Livewire/Team/Member.php b/app/Livewire/Team/Member.php index 7d02dbf66..0f0774898 100644 --- a/app/Livewire/Team/Member.php +++ b/app/Livewire/Team/Member.php @@ -16,6 +16,11 @@ public function makeAdmin() $this->dispatch('reloadWindow'); } + public function makeOwner() + { + $this->member->teams()->updateExistingPivot(currentTeam()->id, ['role' => 'owner']); + $this->dispatch('reloadWindow'); + } public function makeReadonly() { $this->member->teams()->updateExistingPivot(currentTeam()->id, ['role' => 'member']); @@ -26,7 +31,7 @@ public function remove() { $this->member->teams()->detach(currentTeam()); Cache::forget("team:{$this->member->id}"); - Cache::remember('team:' . $this->member->id, 3600, function() { + Cache::remember('team:' . $this->member->id, 3600, function () { return $this->member->teams()->first(); }); $this->dispatch('reloadWindow'); diff --git a/app/Models/User.php b/app/Models/User.php index c099eb2b6..ad5120a3d 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -67,7 +67,7 @@ public function createToken(string $name, array $abilities = ['*'], DateTimeInte 'team_id' => session('currentTeam')->id ]); - return new NewAccessToken($token, $token->getKey().'|'.$plainTextToken); + return new NewAccessToken($token, $token->getKey() . '|' . $plainTextToken); } public function teams() { @@ -103,9 +103,13 @@ public function sendPasswordResetNotification($token): void public function isAdmin() { - return data_get($this->pivot, 'role') === 'admin' || data_get($this->pivot, 'role') === 'owner'; + return $this->role() === 'admin' || $this->role() === 'owner'; } + public function isOwner() + { + return $this->role() === 'owner'; + } public function isAdminFromSession() { if (auth()->user()->id === 0) { @@ -155,6 +159,6 @@ public function otherTeams() public function role() { - return session('currentTeam')->pivot->role; + return auth()->user()->teams->where('id', currentTeam()->id)->first()->pivot->role; } } diff --git a/resources/views/livewire/team/invitations.blade.php b/resources/views/livewire/team/invitations.blade.php index 8fc8f9cf3..84cd3287c 100644 --- a/resources/views/livewire/team/invitations.blade.php +++ b/resources/views/livewire/team/invitations.blade.php @@ -1,39 +1,55 @@
@if ($invitations->count() > 0) -

Pending Invitations

-
- - - - - - - - - - - - @foreach ($invitations as $invite) - - - - - - - - @endforeach - -
EmailViaRoleInvitation LinkActions
{{ $invite->email }}{{ $invite->via }}{{ $invite->role }} - - - - Revoke - Invitation - -
+

Pending Invitations

+
+
+
+
+
+ + + + + + + + + + + + @foreach ($invitations as $invite) + + + + + + + + @endforeach + +
Email + + ViaRoleInvitation Link + Actions +
{{ $invite->email }}{{ $invite->via }}{{ $invite->role }} + + + + Revoke + Invitation + +
+
+
+
+
@endif
diff --git a/resources/views/livewire/team/invite-link.blade.php b/resources/views/livewire/team/invite-link.blade.php index f35af72ff..cb67f6b41 100644 --- a/resources/views/livewire/team/invite-link.blade.php +++ b/resources/views/livewire/team/invite-link.blade.php @@ -2,6 +2,7 @@
+ diff --git a/resources/views/livewire/team/member.blade.php b/resources/views/livewire/team/member.blade.php index e86b2202f..dab5df404 100644 --- a/resources/views/livewire/team/member.blade.php +++ b/resources/views/livewire/team/member.blade.php @@ -1,25 +1,47 @@ - - - {{ $member->name }} - {{ $member->email }} - - {{ data_get($member, 'pivot.role') }} - - {{-- TODO: This is not good --}} + $member->id == auth()->user()->id, +])> + + {{ $member->name }} + + + {{ $member->email }} + + + {{ data_get($member, 'pivot.role') }} + + @if (auth()->user()->isAdminFromSession()) @if ($member->id !== auth()->user()->id) - @if (data_get($member, 'pivot.role') !== 'owner') - @if (data_get($member, 'pivot.role') !== 'admin') - Convert to Admin - @else - Convert to Member + @if (auth()->user()->isOwner()) + @if (data_get($member, 'pivot.role') === 'owner') + To Admin + To Member + Remove + @endif + @if (data_get($member, 'pivot.role') === 'admin') + To Owner + To Member + Remove + @endif + @if (data_get($member, 'pivot.role') === 'member') + To Owner + To Admin + Remove + @endif + @elseif (auth()->user()->isAdmin()) + @if (data_get($member, 'pivot.role') === 'admin') + To Member + Remove + @endif + @if (data_get($member, 'pivot.role') === 'member') + To Admin + Remove @endif - Remove - @else - Remove @endif @else - Remove +
(This is you)
@endif @endif diff --git a/resources/views/livewire/team/member/index.blade.php b/resources/views/livewire/team/member/index.blade.php index 72d7864c6..6345cab02 100644 --- a/resources/views/livewire/team/member/index.blade.php +++ b/resources/views/livewire/team/member/index.blade.php @@ -1,29 +1,39 @@

Members

-
- - - - - - - - - - - @foreach (currentTeam()->members->sortBy('name') as $member) - - @endforeach - -
NameEmailRoleActions
+ +
+
+
+
+
+ + + + + + + + + + + @foreach (currentTeam()->members as $member) + + @endforeach + +
Name + EmailRoleActions
+
+
+
+
@if (auth()->user()->isAdminFromSession())
@if (is_transactional_emails_active()) -

Invite a new member

+

Invite New Member

@else -

Invite a new member

+

Invite New Member

@if (isInstanceAdmin())
You need to configure (as root team) Transactional