/** * Bootstrap any application services. * * @return void */ public function boot() { User::created(function (User $user) { Folder::create(['name' => '/', 'user_id' => $user->id]); Activity::create(['type' => 'user_created', 'user_id' => $user->id]); }); Folder::deleting(function (Folder $folder) { foreach ($folder->folders as $_folder) { $_folder->_delete(); } foreach ($folder->files as $file) { $file->delete(); } }); File::deleting(function (File $file) { $file = updateFile($file, fileInfo($file)); $filenames = []; if ($file->type == 'image') { $altImages = ['opt', 'xs']; foreach ($altImages as $suffix) { $name = explode('.', $file->filename)[0]; $extension = explode('.', $file->filename)[1]; array_push($filenames, "{$name}.{$suffix}.{$extension}"); } } Storage::delete($file->filename); if (!empty($filenames)) { foreach ($filenames as $filename) { Storage::delete($filename); } } }); }
public function index() { $activities = Activity::orderBy('updated_at', 'desc')->get(); $activities = $activities->unique(function ($item) { return $item->user_id . $item->type . $item->item_id; }); $users = User::all(); $userIds = array_map(function ($user) { return $user['id']; }, $users->toArray()); foreach ($activities as $index => $activity) { if (!in_array($activity->user_id, $userIds)) { unset($activities[$index]); } if ($activity->item_id) { $file = FileModel::find($activity->item_id); if (!$file || !$file->shared) { unset($activities[$index]); } } } return view('home', ['activities' => $activities]); }
private function _share(FileModel $file, $value, $createActivity = true, $redirect = true) { $this->authorize('all', $file); $file->shared = $value; $file->save(); if ($value) { if ($createActivity) { Activity::create(['type' => 'file_shared', 'item_id' => $file->id, 'user_id' => $this->user->id]); } fmsgs(['title' => 'File Shared', 'type' => 'success', 'text' => 'The ' . $file->name . ' file successfully shared!']); } else { fmsgs(['title' => 'Unshared File', 'type' => 'success', 'text' => 'The ' . $file->name . ' file successfully unshared!']); } if ($redirect) { return redirect()->back(); } }