%PDF- %PDF-
Direktori : /var/www/html/camillo/camillo-api-master/app/Observers/ |
Current File : /var/www/html/camillo/camillo-api-master/app/Observers/UserObserver.php |
<?php namespace App\Observers; use App\Enums\UsertypeEnum; use App\User; use Chatkit\Chatkit; use Illuminate\Support\Facades\Hash; use Illuminate\Support\Facades\Log; class UserObserver { /** * Handle the user "created" event. * * @param \App\User $user * @return void */ public function creating(User $user) { $current_user = auth()->user() ? auth()->user() : auth('api')->user(); $involved_roles = [UsertypeEnum::PRINCIPAL, UsertypeEnum::ADMIN]; if (in_array($current_user->usertype->role, $involved_roles)){ $user->password = Hash::make($user->name); if($user->usertype->role === UsertypeEnum::ADMIN){ $user->active = true; } } } /** * Handle the user "updated" event. * * @param \App\User $user * * @return void * @throws \Chatkit\Exceptions\MissingArgumentException */ public function updated(User $user) { if ($user->pusher_id && $user->isDirty('active') && !$user->active) { $chatkit = new Chatkit([ 'instance_locator' => env('PUSHER_APP_KEY'), 'key' => env('PUSHER_APP_SECRET'), ]); $chatkitUsers = $chatkit->getUsersByID([ 'user_ids' => [$user->pusher_id] ]); if (count($chatkitUsers['body']) > 0) { $rooms = $chatkit->getUserRooms([ 'id' => $user->pusher_id]); foreach ($rooms['body'] as $room) { $chatkit->removeUsersFromRoom([ 'user_ids' => [$user->pusher_id], 'room_id' => $room['id'], ]); } } } } /** * Handle the user "deleted" event. * * @param \App\User $user * * @return void * @throws \Chatkit\Exceptions\MissingArgumentException */ public function deleted(User $user) { if ($user->pusher_id) { $chatkit = new Chatkit([ 'instance_locator' => env('PUSHER_APP_KEY'), 'key' => env('PUSHER_APP_SECRET'), ]); $chatkitUsers = $chatkit->getUsersByID([ 'user_ids' => [$user->pusher_id] ]); if (count($chatkitUsers['body']) > 0) { $rooms = $chatkit->getUserRooms([ 'id' => $user->pusher_id]); foreach ($rooms['body'] as $room) { $chatkit->removeUsersFromRoom([ 'user_ids' => [$user->pusher_id], 'room_id' => $room['id'], ]); } } } } /** * Handle the user "restored" event. * * @param \App\User $user * @return void */ public function restored(User $user) { // } /** * Handle the user "force deleted" event. * * @param \App\User $user * @return void */ public function forceDeleted(User $user) { // } }