Server IP : / Your IP : 10.244.4.16 [ Web Server : nginx/1.25.3 System : Linux escuela-portal-app-54f56585bc-kst6g 5.15.0-1084-azure #93-Ubuntu SMP Sat Mar 15 14:12:29 UTC 2025 x86_64 User : root ( 0) PHP Version : 8.2.13 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals, Domains : 0 Domains MySQL : OFF | cURL : ON | WGET : OFF | Perl : ON | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /proc/449/root/var/www/app/vendor/laravel/jetstream/src/Http/Livewire/ |
Upload File : |
<?php namespace Laravel\Jetstream\Http\Livewire; use Illuminate\Support\Facades\Auth; use Laravel\Jetstream\Actions\UpdateTeamMemberRole; use Laravel\Jetstream\Contracts\AddsTeamMembers; use Laravel\Jetstream\Contracts\InvitesTeamMembers; use Laravel\Jetstream\Contracts\RemovesTeamMembers; use Laravel\Jetstream\Features; use Laravel\Jetstream\Jetstream; use Laravel\Jetstream\Role; use Livewire\Component; class TeamMemberManager extends Component { /** * The team instance. * * @var mixed */ public $team; /** * Indicates if a user's role is currently being managed. * * @var bool */ public $currentlyManagingRole = false; /** * The user that is having their role managed. * * @var mixed */ public $managingRoleFor; /** * The current role for the user that is having their role managed. * * @var string */ public $currentRole; /** * Indicates if the application is confirming if a user wishes to leave the current team. * * @var bool */ public $confirmingLeavingTeam = false; /** * Indicates if the application is confirming if a team member should be removed. * * @var bool */ public $confirmingTeamMemberRemoval = false; /** * The ID of the team member being removed. * * @var int|null */ public $teamMemberIdBeingRemoved = null; /** * The "add team member" form state. * * @var array */ public $addTeamMemberForm = [ 'email' => '', 'role' => null, ]; /** * Mount the component. * * @param mixed $team * @return void */ public function mount($team) { $this->team = $team; } /** * Add a new team member to a team. * * @return void */ public function addTeamMember() { $this->resetErrorBag(); if (Features::sendsTeamInvitations()) { app(InvitesTeamMembers::class)->invite( $this->user, $this->team, $this->addTeamMemberForm['email'], $this->addTeamMemberForm['role'] ); } else { app(AddsTeamMembers::class)->add( $this->user, $this->team, $this->addTeamMemberForm['email'], $this->addTeamMemberForm['role'] ); } $this->addTeamMemberForm = [ 'email' => '', 'role' => null, ]; $this->team = $this->team->fresh(); $this->emit('saved'); } /** * Cancel a pending team member invitation. * * @param int $invitationId * @return void */ public function cancelTeamInvitation($invitationId) { if (! empty($invitationId)) { $model = Jetstream::teamInvitationModel(); $model::whereKey($invitationId)->delete(); } $this->team = $this->team->fresh(); } /** * Allow the given user's role to be managed. * * @param int $userId * @return void */ public function manageRole($userId) { $this->currentlyManagingRole = true; $this->managingRoleFor = Jetstream::findUserByIdOrFail($userId); $this->currentRole = $this->managingRoleFor->teamRole($this->team)->key; } /** * Save the role for the user being managed. * * @param \Laravel\Jetstream\Actions\UpdateTeamMemberRole $updater * @return void */ public function updateRole(UpdateTeamMemberRole $updater) { $updater->update( $this->user, $this->team, $this->managingRoleFor->id, $this->currentRole ); $this->team = $this->team->fresh(); $this->stopManagingRole(); } /** * Stop managing the role of a given user. * * @return void */ public function stopManagingRole() { $this->currentlyManagingRole = false; } /** * Remove the currently authenticated user from the team. * * @param \Laravel\Jetstream\Contracts\RemovesTeamMembers $remover * @return void */ public function leaveTeam(RemovesTeamMembers $remover) { $remover->remove( $this->user, $this->team, $this->user ); $this->confirmingLeavingTeam = false; $this->team = $this->team->fresh(); return redirect(config('fortify.home')); } /** * Confirm that the given team member should be removed. * * @param int $userId * @return void */ public function confirmTeamMemberRemoval($userId) { $this->confirmingTeamMemberRemoval = true; $this->teamMemberIdBeingRemoved = $userId; } /** * Remove a team member from the team. * * @param \Laravel\Jetstream\Contracts\RemovesTeamMembers $remover * @return void */ public function removeTeamMember(RemovesTeamMembers $remover) { $remover->remove( $this->user, $this->team, $user = Jetstream::findUserByIdOrFail($this->teamMemberIdBeingRemoved) ); $this->confirmingTeamMemberRemoval = false; $this->teamMemberIdBeingRemoved = null; $this->team = $this->team->fresh(); } /** * Get the current user of the application. * * @return mixed */ public function getUserProperty() { return Auth::user(); } /** * Get the available team member roles. * * @return array */ public function getRolesProperty() { return collect(Jetstream::$roles)->transform(function ($role) { return with($role->jsonSerialize(), function ($data) { return (new Role( $data['key'], $data['name'], $data['permissions'] ))->description($data['description']); }); })->values()->all(); } /** * Render the component. * * @return \Illuminate\View\View */ public function render() { return view('teams.team-member-manager'); } }